diff options
author | Junio C Hamano <gitster@pobox.com> | 2019-02-13 18:18:42 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2019-02-13 18:18:42 -0800 |
commit | feb9a9b202c12289150de45473846f4272aac1bd (patch) | |
tree | 1d320a306783104f678ec9993dbbf6dbdf1fd29e | |
parent | Merge branch 'kd/t0028-octal-del-is-377-not-777' (diff) | |
parent | test-lib: fix non-portable pattern bracket expressions (diff) | |
download | tgif-feb9a9b202c12289150de45473846f4272aac1bd.tar.xz |
Merge branch 'sg/stress-test'
Test improvement.
* sg/stress-test:
test-lib: fix non-portable pattern bracket expressions
test-lib: make '--stress' more bisect-friendly
-rw-r--r-- | t/README | 5 | ||||
-rw-r--r-- | t/test-lib-functions.sh | 2 | ||||
-rw-r--r-- | t/test-lib.sh | 20 |
3 files changed, 23 insertions, 4 deletions
@@ -211,6 +211,11 @@ appropriately before running "make". '.stress-<nr>' suffix, and the trash directory of the failed test job is renamed to end with a '.stress-failed' suffix. +--stress-limit=<N>:: + When combined with --stress run the test script repeatedly + this many times in each of the parallel jobs or until one of + them fails, whichever comes first. + You can also set the GIT_TEST_INSTALLED environment variable to the bindir of an existing git installation to test that installation. You still need to have built this git sandbox, from which various diff --git a/t/test-lib-functions.sh b/t/test-lib-functions.sh index 92cf8f812c..969e2ba6da 100644 --- a/t/test-lib-functions.sh +++ b/t/test-lib-functions.sh @@ -1289,7 +1289,7 @@ test_set_port () { port=$(($port + 10000)) fi ;; - *[^0-9]*|0*) + *[!0-9]*|0*) error >&7 "invalid port number: $port" ;; *) diff --git a/t/test-lib.sh b/t/test-lib.sh index 42b1a0aa7f..8665b0a9b6 100644 --- a/t/test-lib.sh +++ b/t/test-lib.sh @@ -149,7 +149,7 @@ do --stress=*) stress=${opt#--*=} case "$stress" in - *[^0-9]*|0*|"") + *[!0-9]*|0*|"") echo "error: --stress=<N> requires the number of jobs to run" >&2 exit 1 ;; @@ -157,6 +157,17 @@ do ;; esac ;; + --stress-limit=*) + stress_limit=${opt#--*=} + case "$stress_limit" in + *[!0-9]*|0*|"") + echo "error: --stress-limit=<N> requires the number of repetitions" >&2 + exit 1 + ;; + *) # Good. + ;; + esac + ;; *) echo "error: unknown test option '$opt'" >&2; exit 1 ;; esac @@ -242,8 +253,10 @@ then exit 1 ' TERM INT - cnt=0 - while ! test -e "$stressfail" + cnt=1 + while ! test -e "$stressfail" && + { test -z "$stress_limit" || + test $cnt -le $stress_limit ; } do $TEST_SHELL_PATH "$0" "$@" >"$TEST_RESULTS_BASE.stress-$job_nr.out" 2>&1 & test_pid=$! @@ -266,6 +279,7 @@ then if test -f "$stressfail" then + stress_exit=1 echo "Log(s) of failed test run(s):" for failed_job_nr in $(sort -n "$stressfail") do |