diff options
author | Denys Vlasenko | 2016-10-01 22:36:14 +0200 |
---|---|---|
committer | Denys Vlasenko | 2016-10-01 22:36:14 +0200 |
commit | 3ed7e2749a3f9fd315d8f46a3b0a25ff10caf726 (patch) | |
tree | fccfb21b43b61d48da4832a6dc319e366e6127e7 /shell/ash_test | |
parent | 04b46bced991f802a17c0fc43c8f8448e4eb2c8f (diff) | |
download | busybox-3ed7e2749a3f9fd315d8f46a3b0a25ff10caf726.zip busybox-3ed7e2749a3f9fd315d8f46a3b0a25ff10caf726.tar.gz |
ash testsuite: add return_in_trap1.tests
Currently it fails
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'shell/ash_test')
-rw-r--r-- | shell/ash_test/ash-signals/return_in_trap1.right | 4 | ||||
-rwxr-xr-x | shell/ash_test/ash-signals/return_in_trap1.tests | 18 |
2 files changed, 22 insertions, 0 deletions
diff --git a/shell/ash_test/ash-signals/return_in_trap1.right b/shell/ash_test/ash-signals/return_in_trap1.right new file mode 100644 index 0000000..a6e6378 --- /dev/null +++ b/shell/ash_test/ash-signals/return_in_trap1.right @@ -0,0 +1,4 @@ +a:2 +b:0 +Trap +d:3 diff --git a/shell/ash_test/ash-signals/return_in_trap1.tests b/shell/ash_test/ash-signals/return_in_trap1.tests new file mode 100755 index 0000000..f249802 --- /dev/null +++ b/shell/ash_test/ash-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 sees $? == 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 checks pending signals and runs handler? +# hush does the former, and prints 3. |