test: use a map to define test files / devices we need
Different tests need different files / devices, use a map to indicate
what each test need.
Signed-off-by: Hao Xu <haoxu@linux.alibaba.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
diff --git a/test/config b/test/config
index cab2703..1bd9b40 100644
--- a/test/config
+++ b/test/config
@@ -4,4 +4,4 @@
# TEST_EXCLUDE=""
#
# Define raw test devices (or files) for test cases, if any
-# TEST_FILES="/dev/nvme0n1p2 /data/file"
+# declare -A TEST_FILES=()
diff --git a/test/runtests.sh b/test/runtests.sh
index 7ed8852..071bd35 100755
--- a/test/runtests.sh
+++ b/test/runtests.sh
@@ -5,10 +5,10 @@
TIMEOUT=60
DMESG_FILTER="cat"
TEST_DIR=$(dirname $0)
-TEST_FILES=""
FAILED=""
SKIPPED=""
MAYBE_FAILED=""
+declare -A TEST_FILES
# Only use /dev/kmsg if running as root
DO_KMSG="1"
@@ -17,7 +17,7 @@
# Include config.local if exists and check TEST_FILES for valid devices
if [ -f "$TEST_DIR/config.local" ]; then
. $TEST_DIR/config.local
- for dev in $TEST_FILES; do
+ for dev in ${TEST_FILES[@]}; do
if [ ! -e "$dev" ]; then
echo "Test file $dev not valid"
exit 1
@@ -109,11 +109,10 @@
# Run all specified tests
for tst in $TESTS; do
- run_test $tst
- if [ ! -z "$TEST_FILES" ]; then
- for dev in $TEST_FILES; do
- run_test $tst $dev
- done
+ if [ ! -n "${TEST_FILES[$tst]}" ]; then
+ run_test $tst
+ else
+ run_test $tst ${TEST_FILES[$tst]}
fi
done