diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2017-07-24 19:42:46 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2017-07-24 19:42:46 +0200 |
commit | 8d2191c6aedf60c29dc0a6ee8c452fee7e460ee7 (patch) | |
tree | 245e7bef11c2bdfcf770d8db3e52d9819582e855 | |
parent | ca50caacad8354fe97eb0da23075521156c0c0d6 (diff) | |
download | busybox-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.right | 5 | ||||
-rwxr-xr-x | shell/ash_test/ash-signals/catch.tests | 20 | ||||
-rw-r--r-- | shell/ash_test/ash-signals/signal_read2.right | 2 | ||||
-rwxr-xr-x | shell/ash_test/ash-signals/signal_read2.tests | 7 | ||||
-rw-r--r-- | shell/ash_test/ash-signals/subshell.right | 21 | ||||
-rwxr-xr-x | shell/ash_test/ash-signals/subshell.tests | 19 |
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 @@ | |||
1 | sending USR2 | ||
2 | caught | ||
3 | sending USR2 | ||
4 | sending USR2 | ||
5 | User 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 | ||
2 | trap ":" USR1 USR2 | ||
3 | |||
4 | "$THIS_SH" -c ' | ||
5 | trap "echo caught" USR2 | ||
6 | echo "sending USR2" | ||
7 | kill -USR2 $$ | ||
8 | |||
9 | trap "" USR2 | ||
10 | echo "sending USR2" | ||
11 | kill -USR2 $$ | ||
12 | |||
13 | trap "-" USR2 | ||
14 | echo "sending USR2" | ||
15 | kill -USR2 $$ | ||
16 | |||
17 | echo "not reached" | ||
18 | ' | ||
19 | |||
20 | trap "-" 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 @@ | |||
1 | Hangup | ||
2 | Done: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 $$) & | ||
3 | while true; do | ||
4 | read ignored | ||
5 | done | ||
6 | ' | ||
7 | echo "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 @@ | |||
1 | trap -- '' HUP | ||
2 | trap -- '' QUIT | ||
3 | trap -- '' SYS | ||
4 | Ok | ||
5 | trap -- '' HUP | ||
6 | trap -- '' QUIT | ||
7 | trap -- '' SYS | ||
8 | Ok | ||
9 | trap -- '' HUP | ||
10 | trap -- '' QUIT | ||
11 | trap -- '' SYS | ||
12 | Ok | ||
13 | trap -- '' HUP | ||
14 | trap -- '' QUIT | ||
15 | trap -- '' SYS | ||
16 | Ok | ||
17 | trap -- '' HUP | ||
18 | trap -- '' QUIT | ||
19 | trap -- '' SYS | ||
20 | Terminated | ||
21 | Done | ||
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 | ||
4 | trap '' HUP | ||
5 | # QUIT is always special | ||
6 | trap '' QUIT | ||
7 | # SYS is not special | ||
8 | trap '' SYS | ||
9 | # WINCH is harmless | ||
10 | trap 'bad: caught WINCH' WINCH | ||
11 | # With TERM we'll check whether it is reset | ||
12 | trap '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) | ||
19 | echo Done | ||