summaryrefslogtreecommitdiff
path: root/shell/hush_test/hush-signals/subshell.tests
diff options
context:
space:
mode:
authorDenys Vlasenko2016-10-01 22:36:14 +0200
committerDenys Vlasenko2016-10-01 22:36:14 +0200
commit3ed7e2749a3f9fd315d8f46a3b0a25ff10caf726 (patch)
treefccfb21b43b61d48da4832a6dc319e366e6127e7 /shell/hush_test/hush-signals/subshell.tests
parent04b46bced991f802a17c0fc43c8f8448e4eb2c8f (diff)
downloadbusybox-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/hush_test/hush-signals/subshell.tests')
-rwxr-xr-xshell/hush_test/hush-signals/subshell.tests19
1 files changed, 19 insertions, 0 deletions
diff --git a/shell/hush_test/hush-signals/subshell.tests b/shell/hush_test/hush-signals/subshell.tests
new file mode 100755
index 0000000..d877f2b
--- /dev/null
+++ b/shell/hush_test/hush-signals/subshell.tests
@@ -0,0 +1,19 @@
+# Non-empty traps should be reset in subshell
+
+# HUP is special in interactive shells
+trap '' HUP
+# QUIT is always special
+trap '' QUIT
+# SYS is not special
+trap '' SYS
+# WINCH is harmless
+trap 'bad: caught WINCH' WINCH
+# With TERM we'll check whether it is reset
+trap 'bad: caught TERM' TERM
+
+(trap; "$THIS_SH" -c 'kill -HUP $PPID'; echo Ok)
+(trap; "$THIS_SH" -c 'kill -QUIT $PPID'; echo Ok)
+(trap; "$THIS_SH" -c 'kill -SYS $PPID'; echo Ok)
+(trap; "$THIS_SH" -c 'kill -WINCH $PPID'; echo Ok)
+(trap; "$THIS_SH" -c 'kill -TERM $PPID'; echo Bad: TERM is not reset)
+echo Done