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 /shell | |
| 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>
Diffstat (limited to 'shell')
| -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 | ||
