t/zbd: Avoid magic number of test case count
authorShin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
Thu, 26 Sep 2019 01:00:44 +0000 (10:00 +0900)
committerJens Axboe <axboe@kernel.dk>
Thu, 26 Sep 2019 06:47:14 +0000 (00:47 -0600)
In the test script t/zbd/test-zbd-support, the number of test cases is
defined as a raw constant. Every time a new test case is added, need to
update the constant but this chore tends to be overlooked. When test
case 47 was added recently, the number was not incremented from 46. Then
the test script does not run the test case 47.

To avoid the constant increment chore, automate the test case number
counting. List bash functions which implement test cases and convert the
list to test case numbers.

Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
t/zbd/test-zbd-support

index 90f9f87b06da9d9e4c4e5490c07118bf2dac383c..5d079a8b787375d8b9e0bb6572ff909975be2fb6 100755 (executable)
@@ -826,9 +826,8 @@ case "$(<"/sys/class/block/$basename/queue/zoned")" in
 esac
 
 if [ "${#tests[@]}" = 0 ]; then
-    for ((i=1;i<=46;i++)); do
-       tests+=("$i")
-    done
+    readarray -t tests < <(declare -F | grep "test[0-9]*" | \
+                                  tr -c -d "[:digit:]\n" | sort -n)
 fi
 
 logfile=$0.log