diff options
author | Dave Chinner <dchinner@redhat.com> | 2020-07-08 15:35:13 +1000 |
---|---|---|
committer | Eryu Guan <guaneryu@gmail.com> | 2020-07-20 00:49:26 +0800 |
commit | ffa3e99f229438d4ce33cdf156f51a33a2917347 (patch) | |
tree | 04d79642a22daacf2cfdf85144a1c26fd95ebaa8 /check | |
parent | 7db17edfbac914d38d1e01060d3411ac38c39df8 (diff) |
check: add CLI option to repeat tests
Frequently when trying to reproduce a problem I want to run a set of
specific tests in a loop, over and over again. I run fstests from a
set of run scripts that have non-trivial overhead (e.g. patterning
block devices before the runs start), so if all I want to do is run
the same test 100x, using a shell loop over the entire run
scripts reduces the iteration rate substantially.
Hence add an option to check to allow fstests to loop a number of
times over the configured test set without stopping.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Diffstat (limited to 'check')
-rwxr-xr-x | check | 21 |
1 files changed, 17 insertions, 4 deletions
@@ -26,6 +26,7 @@ subdir_xfile="" brief_test_summary=false do_report=false DUMP_OUTPUT=false +iterations=1 # This is a global variable used to pass test failure text to reporting gunk _err_msg="" @@ -66,6 +67,7 @@ check options -n show me, do not run tests -T output timestamps -r randomize test order + -i <n> iterate the test list <n> times -d dump test output to stdout -b brief test summary -R fmt[,fmt] generate report in formats specified. Supported format: [xunit] @@ -297,7 +299,7 @@ while [ $# -gt 0 ]; do -n) showme=true ;; -r) randomize=true ;; - + -i) iterations=$2; shift ;; -T) timestamp=true ;; -d) DUMP_OUTPUT=true ;; -b) brief_test_summary=true;; @@ -525,7 +527,10 @@ else trap "_wrapup; exit \$status" 0 1 2 3 15 fi -for section in $HOST_OPTIONS_SECTIONS; do +function run_section() +{ + local section=$1 + OLD_FSTYP=$FSTYP OLD_TEST_FS_MOUNT_OPTS=$TEST_FS_MOUNT_OPTS get_next_config $section @@ -540,7 +545,7 @@ for section in $HOST_OPTIONS_SECTIONS; do fi done if $skip; then - continue + return fi fi @@ -554,7 +559,7 @@ for section in $HOST_OPTIONS_SECTIONS; do fi done if $skip; then - continue + return fi fi @@ -700,6 +705,8 @@ for section in $HOST_OPTIONS_SECTIONS; do seqres="$REPORT_DIR/$seqnum" mkdir -p $RESULT_DIR + rm -f ${RESULT_DIR}/require_scratch* + rm -f ${RESULT_DIR}/require_test* echo -n "$seqnum" if $showme; then @@ -858,6 +865,12 @@ for section in $HOST_OPTIONS_SECTIONS; do _test_unmount 2> /dev/null _scratch_unmount 2> /dev/null +} + +for ((iters = 0; iters < $iterations; iters++)) do + for section in $HOST_OPTIONS_SECTIONS; do + run_section $section + done done interrupt=false |