summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorJens Axboe <axboe@kernel.dk>2020-05-19 18:38:40 -0600
committerJens Axboe <axboe@kernel.dk>2020-05-19 18:38:40 -0600
commitbd1cc8f03cff0ca66e212688979f8e82abb31dab (patch)
treee26dd1e1e6f6e2c75095fb7f36978ec59638e75e /test
parenta2141fc6718696db79101db358380a0490f6c506 (diff)
downloadliburing-bd1cc8f03cff0ca66e212688979f8e82abb31dab.tar.gz
liburing-bd1cc8f03cff0ca66e212688979f8e82abb31dab.tar.bz2
test: add option to run with defined test files / devices
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'test')
-rw-r--r--test/config3
-rwxr-xr-xtest/runtests.sh36
2 files changed, 30 insertions, 9 deletions
diff --git a/test/config b/test/config
new file mode 100644
index 0000000..fb66ee1
--- /dev/null
+++ b/test/config
@@ -0,0 +1,3 @@
+# Define raw test devices (or files) for test cases, if any
+#
+# TEST_FILES="/dev/nvme0n1p2 /data/file"
diff --git a/test/runtests.sh b/test/runtests.sh
index ada668e..69d9ad6 100755
--- a/test/runtests.sh
+++ b/test/runtests.sh
@@ -12,28 +12,46 @@ if ! [ $(id -u) = 0 ]; then
do_kmsg="no"
fi
-for t in $TESTS; do
+TEST_DIR=$(dirname $0)
+TEST_FILES=""
+if [ -f "$TEST_DIR/config" ]; then
+ . $TEST_DIR/config
+fi
+
+run_test()
+{
+ T="$1"
+ D="$2"
if [ "$do_kmsg" = "yes" ]; then
- echo Running test $t | tee /dev/kmsg
+ echo Running test $T $D | tee /dev/kmsg
else
- echo Running test $t
+ echo Running test $T $D
fi
- timeout --preserve-status -s INT $TIMEOUT ./$t
+ timeout --preserve-status -s INT $TIMEOUT ./$T $D
r=$?
if [ "${r}" -eq 124 ]; then
- echo "Test $t timed out (may not be a failure)"
+ echo "Test $T timed out (may not be a failure)"
elif [ "${r}" -ne 0 ]; then
- echo "Test $t failed with ret ${r}"
- FAILED="$FAILED $t"
+ echo "Test $T failed with ret ${r}"
+ FAILED="$FAILED $T"
RET=1
- else
+ elif [ ! -z "$D" ]; then
sleep .1
ps aux | grep "\[io_wq_manager\]" > /dev/null
R="$?"
if [ "$R" -eq 0 ]; then
- MAYBE_FAILED="$MAYBE_FAILED $t"
+ MAYBE_FAILED="$MAYBE_FAILED $T"
fi
fi
+}
+
+for t in $TESTS; do
+ run_test $t
+ if [ ! -z "$TEST_FILES" ]; then
+ for dev in $TEST_FILES; do
+ run_test $t $dev
+ done
+ fi
done
if [ "${RET}" -ne 0 ]; then