From 67f7186403dec3f61f6ea9e9a3f555bd0b0541bc Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Fri, 25 Sep 2009 14:21:06 +0200 Subject: hush: do not reset to default "" traps in subshell function old new delta reset_traps_to_defaults 164 211 +47 builtin_umask 123 121 -2 Signed-off-by: Denys Vlasenko --- shell/hush_test/hush-trap/subshell.right | 6 ++++++ shell/hush_test/hush-trap/subshell.tests | 20 ++++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 shell/hush_test/hush-trap/subshell.right create mode 100755 shell/hush_test/hush-trap/subshell.tests (limited to 'shell/hush_test') diff --git a/shell/hush_test/hush-trap/subshell.right b/shell/hush_test/hush-trap/subshell.right new file mode 100644 index 000000000..0d20ed4e9 --- /dev/null +++ b/shell/hush_test/hush-trap/subshell.right @@ -0,0 +1,6 @@ +Ok +Ok +Ok +Ok +TERM +Done diff --git a/shell/hush_test/hush-trap/subshell.tests b/shell/hush_test/hush-trap/subshell.tests new file mode 100755 index 000000000..b5d6094d6 --- /dev/null +++ b/shell/hush_test/hush-trap/subshell.tests @@ -0,0 +1,20 @@ +# 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 + +# using bash, becuase we don't have $PPID (yet) +(bash -c 'kill -HUP $PPID'; echo Ok) +(bash -c 'kill -QUIT $PPID'; echo Ok) +(bash -c 'kill -SYS $PPID'; echo Ok) +(bash -c 'kill -WINCH $PPID'; echo Ok) +(bash -c 'kill -TERM $PPID'; echo Bad: TERM is not reset) +echo Done -- cgit v1.2.3