From 9b298bdf540f29a0571998dfd150dc614ef7f34b Mon Sep 17 00:00:00 2001 From: Ritesh Harjani Date: Thu, 11 Feb 2021 09:01:44 +0530 Subject: [PATCH] check: add CLI option to repeat and stop tests in case of failure Currently with -i option the test can run for many iterations, but in case if we want to stop the iteration in case of a failure, it is much easier to have such an option which could check the failed status and stop the test from further proceeding. This patch adds such an option (-I ) thereby extending the -i option functionality. Signed-off-by: Ritesh Harjani Reviewed-by: Eryu Guan Signed-off-by: Eryu Guan --- check | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/check b/check index 106ec8e1..ba192042 100755 --- a/check +++ b/check @@ -28,6 +28,7 @@ brief_test_summary=false do_report=false DUMP_OUTPUT=false iterations=1 +istop=false # This is a global variable used to pass test failure text to reporting gunk _err_msg="" @@ -70,6 +71,7 @@ check options -r randomize test order --exact-order run tests in the exact order specified -i iterate the test list times + -I iterate the test list times, but stops iterating further in case of any test failure -d dump test output to stdout -b brief test summary -R fmt[,fmt] generate report in formats specified. Supported format: [xunit] @@ -326,6 +328,7 @@ while [ $# -gt 0 ]; do exact_order=true ;; -i) iterations=$2; shift ;; + -I) iterations=$2; istop=true; shift ;; -T) timestamp=true ;; -d) DUMP_OUTPUT=true ;; -b) brief_test_summary=true;; @@ -952,6 +955,11 @@ function run_section() for ((iters = 0; iters < $iterations; iters++)) do for section in $HOST_OPTIONS_SECTIONS; do run_section $section + if [ "$sum_bad" != 0 ] && [ "$istop" = true ]; then + interrupt=false + status=`expr $sum_bad != 0` + exit + fi done done