aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Fomichev <dmitry.fomichev@wdc.com>2024-02-06 19:57:55 +0900
committerVincent Fu <vincent.fu@samsung.com>2024-02-07 08:43:13 -0500
commit12067650d11d4777dee0cd64a136923c2fd2d073 (patch)
treed1fc88e6e71198117d0e1c487e09282017b48b21
parent7d5a66e1be864ef16fb9e9b6e0b9234da1e2a199 (diff)
downloadfio-12067650d11d4777dee0cd64a136923c2fd2d073.tar.gz
t/zbd: add -s option to test-zbd-support script
The total number of ZBD tests in test-zbd-support script has grown considerably over the years and zoned drive capacity has significantly increased as well. Today, the test run duration may reach one hour for large drives. If a terminal session failure happens during a run, it is more efficient to restart the tests from the point where the last run stopped rather than from the beginning. Add -s option to the script command line to specify the starting test number. Signed-off-by: Dmitry Fomichev <dmitry.fomichev@wdc.com> Reviewed-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com> Tested-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com> Link: https://lore.kernel.org/r/20240206105755.214891-6-dmitry.fomichev@wdc.com Signed-off-by: Vincent Fu <vincent.fu@samsung.com>
-rwxr-xr-xt/zbd/test-zbd-support5
1 files changed, 5 insertions, 0 deletions
diff --git a/t/zbd/test-zbd-support b/t/zbd/test-zbd-support
index defb36527..c27d2ad68 100755
--- a/t/zbd/test-zbd-support
+++ b/t/zbd/test-zbd-support
@@ -15,6 +15,7 @@ usage() {
echo -e "\t-w Reset all zones before executing each write test case"
echo -e "\t-o <max_open_zones> Run fio with max_open_zones limit"
echo -e "\t-t <test #> Run only a single test case with specified number"
+ echo -e "\t-s <test #> Start testing from the case with the specified number"
echo -e "\t-q Quit the test run after any failed test"
echo -e "\t-z Run fio with debug=zbd option"
echo -e "\t-u Use io_uring ioengine in place of libaio"
@@ -1602,6 +1603,7 @@ zbd_debug=
max_open_zones_opt=
quit_on_err=
force_io_uring=
+start_test=1
while [ "${1#-}" != "$1" ]; do
case "$1" in
@@ -1615,6 +1617,7 @@ while [ "${1#-}" != "$1" ]; do
-w) reset_before_write=1; shift;;
-t) tests+=("$2"); shift; shift;;
-o) max_open_zones_opt="${2}"; shift; shift;;
+ -s) start_test=$2; shift; shift;;
-v) dynamic_analyzer=(valgrind "--read-var-info=yes");
shift;;
-q) quit_on_err=1; shift;;
@@ -1694,6 +1697,7 @@ if [[ -b "$realdev" ]]; then
set_io_scheduler "$basename" none || exit $?
;;
esac
+
elif [[ -c "$realdev" ]]; then
# For an SG node, we must have libzbc option specified
if [[ ! -n "$use_libzbc" ]]; then
@@ -1772,6 +1776,7 @@ trap 'intr=1' SIGINT
ret=0
for test_number in "${tests[@]}"; do
+ [ "${test_number}" -lt "${start_test}" ] && continue
rm -f "${logfile}.${test_number}"
unset SKIP_REASON
echo -n "Running test $(printf "%02d" $test_number) ... "