diff options
author | Peter Stephenson <pws@zsh.org> | 2016-12-05 11:21:01 +0000 |
---|---|---|
committer | Peter Stephenson <pws@zsh.org> | 2016-12-05 11:21:01 +0000 |
commit | c03228f9ed28dfaa9ded49eabb93c04def5ac547 (patch) | |
tree | 7ea3ee905bf9531dce1e4e46b206ac9eb438d566 /Test | |
parent | f71de84f1d9f7c2d63226a2e5534fc12d05ec716 (diff) | |
download | zsh-c03228f9ed28dfaa9ded49eabb93c04def5ac547.tar.gz zsh-c03228f9ed28dfaa9ded49eabb93c04def5ac547.tar.xz zsh-c03228f9ed28dfaa9ded49eabb93c04def5ac547.zip |
Extra case for ERR_RETURN and ERR_EXIT.
Don't trigger just because status is non-zero at end of complex shell construct as this may be a case we've already suppressed.
Diffstat (limited to 'Test')
-rw-r--r-- | Test/C03traps.ztst | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/Test/C03traps.ztst b/Test/C03traps.ztst index c3bedb06c..e94fb6f85 100644 --- a/Test/C03traps.ztst +++ b/Test/C03traps.ztst @@ -626,6 +626,76 @@ F:Must be tested with a top-level script rather than source or function >before-out >before-in + (setopt err_exit + for x in y; do + false && true + done + print OK + ) +0:ERR_EXIT not triggered by status 1 at end of for +>OK + + (setopt err_exit + integer x=0 + while (( ! x++ )); do + false && true + done + print OK + ) +0:ERR_EXIT not triggered by status 1 at end of while +>OK + + (setopt err_exit + repeat 1; do + false && true + done + print OK + ) +0:ERR_EXIT not triggered by status 1 at end of repeat +>OK + + (setopt err_exit + if true; then + false && true + fi + print OK + ) +0:ERR_EXIT not triggered by status 1 at end of if +>OK + + (setopt err_exit + for x in y; do + false + done + print OK + ) +1:ERR_EXIT triggered by status 1 within for + + (setopt err_exit + integer x=0 + while (( ! x++ )); do + false + done + print OK + ) +1:ERR_EXIT triggered by status 1 within while + + (setopt err_exit + repeat 1; do + false + done + print OK + ) +1:ERR_EXIT triggered by status 1 within repeat + + (setopt err_exit + if true; then + false + fi + print OK + ) +1:ERR_EXIT triggered by status 1 within if + if zmodload zsh/system 2>/dev/null; then ( trap 'echo TERM; exit 2' TERM |