summaryrefslogtreecommitdiff
path: root/release/src/router/busybox/shell/hush_test/hush-trap
diff options
context:
space:
mode:
Diffstat (limited to 'release/src/router/busybox/shell/hush_test/hush-trap')
-rw-r--r--release/src/router/busybox/shell/hush_test/hush-trap/catch.right4
-rwxr-xr-xrelease/src/router/busybox/shell/hush_test/hush-trap/catch.tests20
-rw-r--r--release/src/router/busybox/shell/hush_test/hush-trap/exit.right2
-rwxr-xr-xrelease/src/router/busybox/shell/hush_test/hush-trap/exit.tests3
-rw-r--r--release/src/router/busybox/shell/hush_test/hush-trap/save-ret.right2
-rwxr-xr-xrelease/src/router/busybox/shell/hush_test/hush-trap/save-ret.tests4
-rw-r--r--release/src/router/busybox/shell/hush_test/hush-trap/usage.right14
-rwxr-xr-xrelease/src/router/busybox/shell/hush_test/hush-trap/usage.tests23
8 files changed, 72 insertions, 0 deletions
diff --git a/release/src/router/busybox/shell/hush_test/hush-trap/catch.right b/release/src/router/busybox/shell/hush_test/hush-trap/catch.right
new file mode 100644
index 00000000..9e34c4c4
--- /dev/null
+++ b/release/src/router/busybox/shell/hush_test/hush-trap/catch.right
@@ -0,0 +1,4 @@
+sending USR2
+caught
+sending USR2
+sending USR2
diff --git a/release/src/router/busybox/shell/hush_test/hush-trap/catch.tests b/release/src/router/busybox/shell/hush_test/hush-trap/catch.tests
new file mode 100755
index 00000000..d2a21d17
--- /dev/null
+++ b/release/src/router/busybox/shell/hush_test/hush-trap/catch.tests
@@ -0,0 +1,20 @@
+# avoid ugly warnings about signals not being caught
+trap ":" USR1 USR2
+
+"$THIS_SH" -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/release/src/router/busybox/shell/hush_test/hush-trap/exit.right b/release/src/router/busybox/shell/hush_test/hush-trap/exit.right
new file mode 100644
index 00000000..b4932fb7
--- /dev/null
+++ b/release/src/router/busybox/shell/hush_test/hush-trap/exit.right
@@ -0,0 +1,2 @@
+cow
+moo
diff --git a/release/src/router/busybox/shell/hush_test/hush-trap/exit.tests b/release/src/router/busybox/shell/hush_test/hush-trap/exit.tests
new file mode 100755
index 00000000..092543c2
--- /dev/null
+++ b/release/src/router/busybox/shell/hush_test/hush-trap/exit.tests
@@ -0,0 +1,3 @@
+"$THIS_SH" -c 'trap "echo cow" 0'
+"$THIS_SH" -c 'trap "echo moo" EXIT'
+"$THIS_SH" -c 'trap "echo no" 0; trap 0'
diff --git a/release/src/router/busybox/shell/hush_test/hush-trap/save-ret.right b/release/src/router/busybox/shell/hush_test/hush-trap/save-ret.right
new file mode 100644
index 00000000..a3e12ce5
--- /dev/null
+++ b/release/src/router/busybox/shell/hush_test/hush-trap/save-ret.right
@@ -0,0 +1,2 @@
+YEAH
+0
diff --git a/release/src/router/busybox/shell/hush_test/hush-trap/save-ret.tests b/release/src/router/busybox/shell/hush_test/hush-trap/save-ret.tests
new file mode 100755
index 00000000..0786b6d9
--- /dev/null
+++ b/release/src/router/busybox/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/release/src/router/busybox/shell/hush_test/hush-trap/usage.right b/release/src/router/busybox/shell/hush_test/hush-trap/usage.right
new file mode 100644
index 00000000..c0dbd6c3
--- /dev/null
+++ b/release/src/router/busybox/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/release/src/router/busybox/shell/hush_test/hush-trap/usage.tests b/release/src/router/busybox/shell/hush_test/hush-trap/usage.tests
new file mode 100755
index 00000000..d29c6e74
--- /dev/null
+++ b/release/src/router/busybox/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