diff options
author | Jun-ichi Takimoto <takimoto-j@kba.biglobe.ne.jp> | 2022-04-12 16:30:40 +0900 |
---|---|---|
committer | Jun-ichi Takimoto <takimoto-j@kba.biglobe.ne.jp> | 2022-04-12 16:30:40 +0900 |
commit | 3622551e0270372cc3b0b6e974d85ab1288a2aa7 (patch) | |
tree | acf4b53db4e0c293fe7182dbbe4cf79d848f31a5 | |
parent | f5b2d65337c81ef3b58f376d2128a6ab8f1ccaf4 (diff) | |
download | zsh-3622551e0270372cc3b0b6e974d85ab1288a2aa7.tar.gz zsh-3622551e0270372cc3b0b6e974d85ab1288a2aa7.tar.xz zsh-3622551e0270372cc3b0b6e974d85ab1288a2aa7.zip |
49996 (Peter) + 50012: add ZTST_continue
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | Test/README | 7 | ||||
-rwxr-xr-x | Test/ztst.zsh | 28 |
3 files changed, 31 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog index d46d8aa8f..f91be1413 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2022-04-12 Jun-ichi Takimoto <takimoto-j@kba.biglobe.ne.jp> + * 49996 (Peter) + 50012: Test/README, Test/ztst.zsh: add + ZTST_continue to continue tests after a failure + * 50017: Completion/Unix/Type/_time_zone: allow lowercase to match with uppercase diff --git a/Test/README b/Test/README index 726d68e72..670434ac3 100644 --- a/Test/README +++ b/Test/README @@ -20,6 +20,13 @@ more information about the tests being performed with ZTST_verbose=1 make check (`test' is equivalent to `check') or change 1 to 2 for even more detail. +A test file is usually aborted on the first error. To continue to the +end, run with + ZTST_continue=1 make check +This can usefully be combined with ZTST_verbose. The test is always +aborted on a syntax error as in that case it is not obvoius how to +continue. + Individual or groups of tests can be performed with make TESTNUM=C02 check or diff --git a/Test/ztst.zsh b/Test/ztst.zsh index 89fe69b5b..cdc84b160 100755 --- a/Test/ztst.zsh +++ b/Test/ztst.zsh @@ -17,6 +17,9 @@ # Defined in such a way that any value from the environment is used. : ${ZTST_verbose:=0} +# If non-zero, continue the tests even after a test fails. +: ${ZTST_continue:=0} + # We require all options to be reset, not just emulation options. # Unfortunately, due to the crud which may be in /etc/zshenv this might # still not be good enough. Maybe we should trick it somehow. @@ -143,6 +146,10 @@ ZTST_testfailed() { $ZTST_failmsg" fi ZTST_testfailed=1 + # if called from within ZTST_Test() this will increment ZTST_Test's local + # ZTST_failures. Otherwise global ZTST_failures will be incremented + # (but currently its value is not used). + (( ++ZTST_failures )) return 1 } ZTST_testxpassed() { @@ -156,6 +163,7 @@ ZTST_testxpassed() { $ZTST_failmsg" fi ZTST_testfailed=1 + (( ++ZTST_failures )) return 1 } @@ -373,12 +381,12 @@ ZTST_diff() { return "$diff_ret" } - + ZTST_test() { local last match mbegin mend found substlines local diff_out diff_err local ZTST_skip - integer expected_to_fail + integer expected_to_fail ZTST_failures while true; do rm -f $ZTST_in $ZTST_out $ZTST_err @@ -492,7 +500,7 @@ $ZTST_curline" $ZTST_code${$(<$ZTST_terr):+ Error output: $(<$ZTST_terr)}" - return 1 + if (( ZTST_continue ));then continue; else return 1; fi fi ZTST_verbose 2 "ZTST_test: test produced standard output: @@ -515,7 +523,7 @@ $(<$ZTST_terr)" $ZTST_code${$(<$ZTST_terr):+ Error output: $(<$ZTST_terr)}" - return 1 + if (( ZTST_continue ));then continue; else return 1; fi fi if [[ $ZTST_flags = *q* && -s $ZTST_err ]]; then substlines="$(<$ZTST_err)" @@ -529,21 +537,27 @@ $(<$ZTST_terr)}" fi ZTST_testfailed "error output differs from expected as shown above for: $ZTST_code" - return 1 + if (( ZTST_continue ));then continue; else return 1; fi fi if (( expected_to_fail )); then ZTST_testxpassed - return 1 + if (( ZTST_continue ));then continue; else return 1; fi fi fi ZTST_verbose 1 "Test successful." [[ -n $last ]] && break done - ZTST_verbose 2 "ZTST_test: all tests successful" + if (( ZTST_failures )); then + ZTST_verbose 1 "ZTST_test: $ZTST_failures test(s) failed" + else + ZTST_verbose 2 "ZTST_test: all tests successful" + fi # reset message to keep ZTST_testfailed output correct ZTST_message='' + + return ZTST_failures } |