1303 files changed, 32187 insertions, 57138 deletions
diff --git a/shell/hush_test/hush-signals/return_in_trap1.tests b/shell/hush_test/hush-signals/return_in_trap1.tests new file mode 100755 index 0000000..4c0d53b --- a/dev/null +++ b/shell/hush_test/hush-signals/return_in_trap1.tests @@ -0,0 +1,18 @@ +a() { + (exit 2) + echo a:$? + (kill -s USR1 $$; echo b:$?; exit 3) + echo c:$? # does not execute + (exit 4) +} + +trap "echo Trap; return" USR1 +a + +echo d:$? +# It's debatable what is the correct value above. +# Does 'return' in trap see $? == 2 or $? == 3? +# IOW: after (kill..), does shell first wait for its completion +# and sets $?, then checks pending signals and runs a trap handler, +# or does it first check pending signals and runs handler? +# hush does the former, and prints 3. |