hush: output bash-compat killing signal names
This significantly syncronises ash-signals and hush-signals tests. function old new delta process_wait_result 449 450 +1 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
b65d6cb00f
commit
e16f7eb596
14
shell/ash_test/ash-signals/usage.right
Normal file
14
shell/ash_test/ash-signals/usage.right
Normal file
@ -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
|
23
shell/ash_test/ash-signals/usage.tests
Executable file
23
shell/ash_test/ash-signals/usage.tests
Executable file
@ -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
|
@ -8704,8 +8704,8 @@ static int process_wait_result(struct pipe *fg_pipe, pid_t childpid, int status)
|
|||||||
*/
|
*/
|
||||||
&& i == fg_pipe->num_cmds-1
|
&& i == fg_pipe->num_cmds-1
|
||||||
) {
|
) {
|
||||||
/* TODO: use strsignal() instead for bash compat? but that's bloat... */
|
/* strsignal() is for bash compat. ~600 bloat versus bbox's get_signame() */
|
||||||
puts(sig == SIGINT || sig == SIGPIPE ? "" : get_signame(sig));
|
puts(sig == SIGINT || sig == SIGPIPE ? "" : strsignal(sig));
|
||||||
}
|
}
|
||||||
/* TODO: if (WCOREDUMP(status)) + " (core dumped)"; */
|
/* TODO: if (WCOREDUMP(status)) + " (core dumped)"; */
|
||||||
/* TODO: MIPS has 128 sigs (1..128), what if sig==128 here?
|
/* TODO: MIPS has 128 sigs (1..128), what if sig==128 here?
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
KILL
|
Killed
|
||||||
137:137
|
137:137
|
||||||
KILL
|
Killed
|
||||||
0:0
|
0:0
|
||||||
Done
|
Done
|
||||||
|
@ -2,4 +2,4 @@ sending USR2
|
|||||||
caught
|
caught
|
||||||
sending USR2
|
sending USR2
|
||||||
sending USR2
|
sending USR2
|
||||||
USR2
|
User defined signal 2
|
||||||
|
20
shell/hush_test/hush-signals/signal1.right
Normal file
20
shell/hush_test/hush-signals/signal1.right
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
got signal
|
||||||
|
trap -- 'echo got signal' USR1
|
||||||
|
sent 1 signal
|
||||||
|
got signal
|
||||||
|
wait interrupted
|
||||||
|
trap -- 'echo got signal' USR1
|
||||||
|
sent 2 signal
|
||||||
|
got signal
|
||||||
|
wait interrupted
|
||||||
|
trap -- 'echo got signal' USR1
|
||||||
|
sent 3 signal
|
||||||
|
got signal
|
||||||
|
wait interrupted
|
||||||
|
trap -- 'echo got signal' USR1
|
||||||
|
sent 4 signal
|
||||||
|
got signal
|
||||||
|
wait interrupted
|
||||||
|
trap -- 'echo got signal' USR1
|
||||||
|
sent 5 signal
|
||||||
|
sleep completed
|
28
shell/hush_test/hush-signals/signal1.tests
Executable file
28
shell/hush_test/hush-signals/signal1.tests
Executable file
@ -0,0 +1,28 @@
|
|||||||
|
trap "echo got signal" USR1
|
||||||
|
|
||||||
|
for try in 1 2 3 4 5; do
|
||||||
|
kill -USR1 $$
|
||||||
|
sleep 0.2
|
||||||
|
echo "sent $try signal"
|
||||||
|
done &
|
||||||
|
|
||||||
|
# Ensure "wait" has something to wait for
|
||||||
|
sleep 2 &
|
||||||
|
|
||||||
|
# Ensure we do not execute "trap" below before "kill -USR1" above
|
||||||
|
# (was getting failure on loaded machine without this)
|
||||||
|
sleep 0.1
|
||||||
|
|
||||||
|
sleeping=true
|
||||||
|
while $sleeping; do
|
||||||
|
trap
|
||||||
|
if wait %%; then
|
||||||
|
echo "sleep completed"
|
||||||
|
sleeping=false
|
||||||
|
elif [ $? = 127 ]; then
|
||||||
|
echo "BUG: no processes to wait for?!"
|
||||||
|
sleeping=false
|
||||||
|
else
|
||||||
|
echo "wait interrupted"
|
||||||
|
fi
|
||||||
|
done
|
@ -1,2 +1,2 @@
|
|||||||
HUP
|
Hangup
|
||||||
Done:129
|
Done:129
|
||||||
|
@ -17,5 +17,5 @@ Ok
|
|||||||
trap -- '' HUP
|
trap -- '' HUP
|
||||||
trap -- '' QUIT
|
trap -- '' QUIT
|
||||||
trap -- '' SYS
|
trap -- '' SYS
|
||||||
TERM
|
Terminated
|
||||||
Done
|
Done
|
||||||
|
Loading…
Reference in New Issue
Block a user