aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2017-07-24 19:42:46 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2017-07-24 19:42:46 +0200
commit8d2191c6aedf60c29dc0a6ee8c452fee7e460ee7 (patch)
tree245e7bef11c2bdfcf770d8db3e52d9819582e855
parentca50caacad8354fe97eb0da23075521156c0c0d6 (diff)
downloadbusybox-w32-8d2191c6aedf60c29dc0a6ee8c452fee7e460ee7.tar.gz
busybox-w32-8d2191c6aedf60c29dc0a6ee8c452fee7e460ee7.tar.bz2
busybox-w32-8d2191c6aedf60c29dc0a6ee8c452fee7e460ee7.zip
ash: copy three tests from hush_test/hush-signals/*
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--shell/ash_test/ash-signals/catch.right5
-rwxr-xr-xshell/ash_test/ash-signals/catch.tests20
-rw-r--r--shell/ash_test/ash-signals/signal_read2.right2
-rwxr-xr-xshell/ash_test/ash-signals/signal_read2.tests7
-rw-r--r--shell/ash_test/ash-signals/subshell.right21
-rwxr-xr-xshell/ash_test/ash-signals/subshell.tests19
6 files changed, 74 insertions, 0 deletions
diff --git a/shell/ash_test/ash-signals/catch.right b/shell/ash_test/ash-signals/catch.right
new file mode 100644
index 000000000..68530c6e7
--- /dev/null
+++ b/shell/ash_test/ash-signals/catch.right
@@ -0,0 +1,5 @@
1sending USR2
2caught
3sending USR2
4sending USR2
5User defined signal 2
diff --git a/shell/ash_test/ash-signals/catch.tests b/shell/ash_test/ash-signals/catch.tests
new file mode 100755
index 000000000..d2a21d17e
--- /dev/null
+++ b/shell/ash_test/ash-signals/catch.tests
@@ -0,0 +1,20 @@
1# avoid ugly warnings about signals not being caught
2trap ":" USR1 USR2
3
4"$THIS_SH" -c '
5trap "echo caught" USR2
6echo "sending USR2"
7kill -USR2 $$
8
9trap "" USR2
10echo "sending USR2"
11kill -USR2 $$
12
13trap "-" USR2
14echo "sending USR2"
15kill -USR2 $$
16
17echo "not reached"
18'
19
20trap "-" USR1 USR2
diff --git a/shell/ash_test/ash-signals/signal_read2.right b/shell/ash_test/ash-signals/signal_read2.right
new file mode 100644
index 000000000..87d8da304
--- /dev/null
+++ b/shell/ash_test/ash-signals/signal_read2.right
@@ -0,0 +1,2 @@
1Hangup
2Done:129
diff --git a/shell/ash_test/ash-signals/signal_read2.tests b/shell/ash_test/ash-signals/signal_read2.tests
new file mode 100755
index 000000000..eab5b9b5b
--- /dev/null
+++ b/shell/ash_test/ash-signals/signal_read2.tests
@@ -0,0 +1,7 @@
1$THIS_SH -c '
2(sleep 1; kill -HUP $$) &
3while true; do
4 read ignored
5done
6'
7echo "Done:$?"
diff --git a/shell/ash_test/ash-signals/subshell.right b/shell/ash_test/ash-signals/subshell.right
new file mode 100644
index 000000000..248fcc41a
--- /dev/null
+++ b/shell/ash_test/ash-signals/subshell.right
@@ -0,0 +1,21 @@
1trap -- '' HUP
2trap -- '' QUIT
3trap -- '' SYS
4Ok
5trap -- '' HUP
6trap -- '' QUIT
7trap -- '' SYS
8Ok
9trap -- '' HUP
10trap -- '' QUIT
11trap -- '' SYS
12Ok
13trap -- '' HUP
14trap -- '' QUIT
15trap -- '' SYS
16Ok
17trap -- '' HUP
18trap -- '' QUIT
19trap -- '' SYS
20Terminated
21Done
diff --git a/shell/ash_test/ash-signals/subshell.tests b/shell/ash_test/ash-signals/subshell.tests
new file mode 100755
index 000000000..d877f2b82
--- /dev/null
+++ b/shell/ash_test/ash-signals/subshell.tests
@@ -0,0 +1,19 @@
1# Non-empty traps should be reset in subshell
2
3# HUP is special in interactive shells
4trap '' HUP
5# QUIT is always special
6trap '' QUIT
7# SYS is not special
8trap '' SYS
9# WINCH is harmless
10trap 'bad: caught WINCH' WINCH
11# With TERM we'll check whether it is reset
12trap 'bad: caught TERM' TERM
13
14(trap; "$THIS_SH" -c 'kill -HUP $PPID'; echo Ok)
15(trap; "$THIS_SH" -c 'kill -QUIT $PPID'; echo Ok)
16(trap; "$THIS_SH" -c 'kill -SYS $PPID'; echo Ok)
17(trap; "$THIS_SH" -c 'kill -WINCH $PPID'; echo Ok)
18(trap; "$THIS_SH" -c 'kill -TERM $PPID'; echo Bad: TERM is not reset)
19echo Done