diff options
author | Peter Stephenson <pws@zsh.org> | 2016-10-05 17:46:42 +0100 |
---|---|---|
committer | Peter Stephenson <pws@zsh.org> | 2016-10-05 17:46:42 +0100 |
commit | bcb52460f3069e2e4e3b05f966a2efd40471e366 (patch) | |
tree | 8f8750eddc0f65ffb7c5912b943a39faa767f330 /Test/C03traps.ztst | |
parent | 0854ee56bc559d7fd614eb7d59b61da84a9ce51f (diff) | |
download | zsh-bcb52460f3069e2e4e3b05f966a2efd40471e366.tar.gz zsh-bcb52460f3069e2e4e3b05f966a2efd40471e366.tar.xz zsh-bcb52460f3069e2e4e3b05f966a2efd40471e366.zip |
39571: Fix ERR_EXIT bug with && and function.
"foo && bar" inside a function could cause the code outside the function not to perform ERR_EXIT or ERR_RETURN when needed.
Diffstat (limited to 'Test/C03traps.ztst')
-rw-r--r-- | Test/C03traps.ztst | 31 |
1 files changed, 22 insertions, 9 deletions
diff --git a/Test/C03traps.ztst b/Test/C03traps.ztst index 0faec02e9..5057dcf6e 100644 --- a/Test/C03traps.ztst +++ b/Test/C03traps.ztst @@ -476,7 +476,7 @@ fi } fn -0:ERRRETURN not triggered in if condition +0:ERR_RETURN not triggered in if condition >Oh, yes fn() { @@ -490,7 +490,7 @@ fi } fn -1:ERRRETURN in "if" +1:ERR_RETURN in "if" fn() { emulate -L zsh @@ -503,7 +503,7 @@ fi } fn -1:ERRRETURN in "else" branch (regression test) +1:ERR_RETURN in "else" branch (regression test) $ZTST_testdir/../Src/zsh -f =(<<<" if false; then @@ -515,7 +515,7 @@ print Yes fi ") -0:ERRRETURN when false "if" is the first statement in an "else" (regression) +0:ERR_RETURN when false "if" is the first statement in an "else" (regression) >Yes F:Must be tested with a top-level script rather than source or function @@ -527,7 +527,7 @@ F:Must be tested with a top-level script rather than source or function print after } fn -1:ERRRETURN, basic case +1:ERR_RETURN, basic case >before fn() { @@ -539,7 +539,7 @@ F:Must be tested with a top-level script rather than source or function print after } fn -0:ERRETURN with "!" +0:ERR_RETURN with "!" >before >after @@ -553,7 +553,7 @@ F:Must be tested with a top-level script rather than source or function print after } fn -1:ERRETURN with "!" and a following false +1:ERR_RETURN with "!" and a following false >before fn() { @@ -566,7 +566,7 @@ F:Must be tested with a top-level script rather than source or function print after } fn -0:ERRETURN with "!" suppressed inside complex structure +0:ERR_RETURN with "!" suppressed inside complex structure >before >after @@ -580,9 +580,22 @@ F:Must be tested with a top-level script rather than source or function print after } fn -1:ERRETURN with no "!" suppression (control case) +1:ERR_RETURN with no "!" suppression (control case) >before + (setopt err_return + fn() { + print before-in + false && false + } + print before-out + fn + print after-out + ) +1:ERR_RETURN with "&&" in function (regression test) +>before-out +>before-in + %clean rm -f TRAPEXIT |