ash: copy three tests from hush_test/hush-signals/*

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2017-07-24 19:42:46 +02:00
parent ca50caacad
commit 8d2191c6ae
6 changed files with 74 additions and 0 deletions

View File

@ -0,0 +1,5 @@
sending USR2
caught
sending USR2
sending USR2
User defined signal 2

View File

@ -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

View File

@ -0,0 +1,2 @@
Hangup
Done:129

View File

@ -0,0 +1,7 @@
$THIS_SH -c '
(sleep 1; kill -HUP $$) &
while true; do
read ignored
done
'
echo "Done:$?"

View File

@ -0,0 +1,21 @@
trap -- '' HUP
trap -- '' QUIT
trap -- '' SYS
Ok
trap -- '' HUP
trap -- '' QUIT
trap -- '' SYS
Ok
trap -- '' HUP
trap -- '' QUIT
trap -- '' SYS
Ok
trap -- '' HUP
trap -- '' QUIT
trap -- '' SYS
Ok
trap -- '' HUP
trap -- '' QUIT
trap -- '' SYS
Terminated
Done

View File

@ -0,0 +1,19 @@
# Non-empty traps should be reset in subshell
# HUP is special in interactive shells
trap '' HUP
# QUIT is always special
trap '' QUIT
# SYS is not special
trap '' SYS
# WINCH is harmless
trap 'bad: caught WINCH' WINCH
# With TERM we'll check whether it is reset
trap 'bad: caught TERM' TERM
(trap; "$THIS_SH" -c 'kill -HUP $PPID'; echo Ok)
(trap; "$THIS_SH" -c 'kill -QUIT $PPID'; echo Ok)
(trap; "$THIS_SH" -c 'kill -SYS $PPID'; echo Ok)
(trap; "$THIS_SH" -c 'kill -WINCH $PPID'; echo Ok)
(trap; "$THIS_SH" -c 'kill -TERM $PPID'; echo Bad: TERM is not reset)
echo Done