diff options
Diffstat (limited to 'shell')
-rw-r--r-- | shell/hush_test/hush-trap/catch.right | 4 | ||||
-rw-r--r-- | shell/hush_test/hush-trap/catch.tests | 20 | ||||
-rw-r--r-- | shell/hush_test/hush-trap/exit.right | 2 | ||||
-rw-r--r-- | shell/hush_test/hush-trap/exit.tests | 3 | ||||
-rw-r--r-- | shell/hush_test/hush-trap/save-ret.right | 2 | ||||
-rw-r--r-- | shell/hush_test/hush-trap/save-ret.tests | 4 | ||||
-rw-r--r-- | shell/hush_test/hush-trap/usage.right | 14 | ||||
-rw-r--r-- | shell/hush_test/hush-trap/usage.tests | 23 |
8 files changed, 72 insertions, 0 deletions
diff --git a/shell/hush_test/hush-trap/catch.right b/shell/hush_test/hush-trap/catch.right new file mode 100644 index 000000000..9e34c4c49 --- /dev/null +++ b/shell/hush_test/hush-trap/catch.right @@ -0,0 +1,4 @@ +sending USR2 +caught +sending USR2 +sending USR2 diff --git a/shell/hush_test/hush-trap/catch.tests b/shell/hush_test/hush-trap/catch.tests new file mode 100644 index 000000000..b1a4ed95b --- /dev/null +++ b/shell/hush_test/hush-trap/catch.tests @@ -0,0 +1,20 @@ +# avoid ugly warnings about signals not being caught +trap ":" USR1 USR2 + +hush -c ' +trap "echo caught" USR2 +echo "sending USR2" +kill -USR2 $$ + +trap "" USR2 +echo "sending USR2" +kill -USR2 $$ + +trap "-" USR2 +echo "sending USR2" +kill -USR2 $$ + +echo "not reached" +' + +trap "-" USR1 USR2 diff --git a/shell/hush_test/hush-trap/exit.right b/shell/hush_test/hush-trap/exit.right new file mode 100644 index 000000000..b4932fb7f --- /dev/null +++ b/shell/hush_test/hush-trap/exit.right @@ -0,0 +1,2 @@ +cow +moo diff --git a/shell/hush_test/hush-trap/exit.tests b/shell/hush_test/hush-trap/exit.tests new file mode 100644 index 000000000..174e74f45 --- /dev/null +++ b/shell/hush_test/hush-trap/exit.tests @@ -0,0 +1,3 @@ +hush -c 'trap "echo cow" 0' +hush -c 'trap "echo moo" EXIT' +hush -c 'trap "echo no" 0; trap 0' diff --git a/shell/hush_test/hush-trap/save-ret.right b/shell/hush_test/hush-trap/save-ret.right new file mode 100644 index 000000000..a3e12ce5e --- /dev/null +++ b/shell/hush_test/hush-trap/save-ret.right @@ -0,0 +1,2 @@ +YEAH +0 diff --git a/shell/hush_test/hush-trap/save-ret.tests b/shell/hush_test/hush-trap/save-ret.tests new file mode 100644 index 000000000..0786b6d96 --- /dev/null +++ b/shell/hush_test/hush-trap/save-ret.tests @@ -0,0 +1,4 @@ +# make sure we do not corrupt $? across traps +trap "echo YEAH; false" USR1 +kill -USR1 $$ +echo $? diff --git a/shell/hush_test/hush-trap/usage.right b/shell/hush_test/hush-trap/usage.right new file mode 100644 index 000000000..c0dbd6c3c --- /dev/null +++ b/shell/hush_test/hush-trap/usage.right @@ -0,0 +1,14 @@ +___ +___ +___ +trap -- 'a' EXIT +trap -- 'a' INT +trap -- 'a' USR1 +trap -- 'a' USR2 +___ +___ +trap -- 'a' USR1 +trap -- 'a' USR2 +___ +___ +trap -- 'a' USR2 diff --git a/shell/hush_test/hush-trap/usage.tests b/shell/hush_test/hush-trap/usage.tests new file mode 100644 index 000000000..d29c6e74a --- /dev/null +++ b/shell/hush_test/hush-trap/usage.tests @@ -0,0 +1,23 @@ +# no output -- default state +echo ___ +trap + +# assign some traps +echo ___ +trap "a" EXIT INT USR1 USR2 + +# show them all +echo ___ +trap + +# clear one +echo ___ +trap 0 INT +echo ___ +trap + +# clear another +echo ___ +trap "-" USR1 +echo ___ +trap |