From fd303b11efb2c87ed239b36c432566a36f859c8e Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Sun, 29 Mar 2009 09:54:40 +0000 Subject: [PATCH] add test cases for `trap` ... but disabled for now until trap support is committed --- shell/hush_test/hush-trap/catch.right | 4 ++++ shell/hush_test/hush-trap/catch.tests | 20 ++++++++++++++++++++ shell/hush_test/hush-trap/exit.right | 2 ++ shell/hush_test/hush-trap/exit.tests | 3 +++ shell/hush_test/hush-trap/save-ret.right | 2 ++ shell/hush_test/hush-trap/save-ret.tests | 4 ++++ shell/hush_test/hush-trap/usage.right | 14 ++++++++++++++ shell/hush_test/hush-trap/usage.tests | 23 +++++++++++++++++++++++ 8 files changed, 72 insertions(+) create mode 100644 shell/hush_test/hush-trap/catch.right create mode 100644 shell/hush_test/hush-trap/catch.tests create mode 100644 shell/hush_test/hush-trap/exit.right create mode 100644 shell/hush_test/hush-trap/exit.tests create mode 100644 shell/hush_test/hush-trap/save-ret.right create mode 100644 shell/hush_test/hush-trap/save-ret.tests create mode 100644 shell/hush_test/hush-trap/usage.right create mode 100644 shell/hush_test/hush-trap/usage.tests 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