add test cases for `trap` ... but disabled for now until trap support is committed
authorMike Frysinger <vapier@gentoo.org>
Sun, 29 Mar 2009 09:54:40 +0000 (09:54 -0000)
committerMike Frysinger <vapier@gentoo.org>
Sun, 29 Mar 2009 09:54:40 +0000 (09:54 -0000)
shell/hush_test/hush-trap/catch.right [new file with mode: 0644]
shell/hush_test/hush-trap/catch.tests [new file with mode: 0644]
shell/hush_test/hush-trap/exit.right [new file with mode: 0644]
shell/hush_test/hush-trap/exit.tests [new file with mode: 0644]
shell/hush_test/hush-trap/save-ret.right [new file with mode: 0644]
shell/hush_test/hush-trap/save-ret.tests [new file with mode: 0644]
shell/hush_test/hush-trap/usage.right [new file with mode: 0644]
shell/hush_test/hush-trap/usage.tests [new file with mode: 0644]

diff --git a/shell/hush_test/hush-trap/catch.right b/shell/hush_test/hush-trap/catch.right
new file mode 100644 (file)
index 0000000..9e34c4c
--- /dev/null
@@ -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 (file)
index 0000000..b1a4ed9
--- /dev/null
@@ -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 (file)
index 0000000..b4932fb
--- /dev/null
@@ -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 (file)
index 0000000..174e74f
--- /dev/null
@@ -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 (file)
index 0000000..a3e12ce
--- /dev/null
@@ -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 (file)
index 0000000..0786b6d
--- /dev/null
@@ -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 (file)
index 0000000..c0dbd6c
--- /dev/null
@@ -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 (file)
index 0000000..d29c6e7
--- /dev/null
@@ -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