ash: add a testcase for recently fixed signal bug
This commit is contained in:
parent
23ffb6a4a2
commit
81887e2342
@ -1,6 +0,0 @@
|
||||
# test: closed fds should stay closed
|
||||
exec 1>&-
|
||||
echo TEST >TEST
|
||||
echo JUNK # lost: stdout is closed
|
||||
cat TEST >&2
|
||||
rm TEST
|
20
shell/ash_test/ash-signals/signal1.right
Normal file
20
shell/ash_test/ash-signals/signal1.right
Normal file
@ -0,0 +1,20 @@
|
||||
got signal
|
||||
trap -- 'echo got signal' USR1
|
||||
sent 1 signal
|
||||
got signal
|
||||
sleep interrupted
|
||||
trap -- 'echo got signal' USR1
|
||||
sent 2 signal
|
||||
got signal
|
||||
sleep interrupted
|
||||
trap -- 'echo got signal' USR1
|
||||
sent 3 signal
|
||||
got signal
|
||||
sleep interrupted
|
||||
trap -- 'echo got signal' USR1
|
||||
sent 4 signal
|
||||
got signal
|
||||
sleep interrupted
|
||||
trap -- 'echo got signal' USR1
|
||||
sent 5 signal
|
||||
sleep completed
|
24
shell/ash_test/ash-signals/signal1.tests
Executable file
24
shell/ash_test/ash-signals/signal1.tests
Executable file
@ -0,0 +1,24 @@
|
||||
sleeping=true
|
||||
|
||||
trap "echo got signal" USR1
|
||||
|
||||
for try in 1 2 3 4 5; do
|
||||
kill -USR1 $$
|
||||
sleep 1
|
||||
echo sent $try signal
|
||||
done &
|
||||
|
||||
sleep 10 &
|
||||
|
||||
while $sleeping; do
|
||||
trap
|
||||
if wait %%; then
|
||||
echo sleep completed
|
||||
sleeping=false
|
||||
elif [ $? == 127 ]; then
|
||||
echo no sleep tonite
|
||||
sleeping=false
|
||||
else
|
||||
echo sleep interrupted;
|
||||
fi
|
||||
done
|
@ -1,6 +1,9 @@
|
||||
#!/bin/sh
|
||||
|
||||
test -x ash || { echo "No ./ash?!"; exit; }
|
||||
test -x ash || {
|
||||
echo "No ./ash?! Perhaps you want to run 'ln -s ../../busybox ash'"
|
||||
exit
|
||||
}
|
||||
test -x printenv || gcc -O2 -o printenv printenv.c || exit $?
|
||||
test -x recho || gcc -O2 -o recho recho.c || exit $?
|
||||
test -x zecho || gcc -O2 -o zecho zecho.c || exit $?
|
||||
@ -50,6 +53,7 @@ if [ $# -lt 1 ]; then
|
||||
modules=`ls -d ash-*`
|
||||
|
||||
for module in $modules; do
|
||||
echo do_test $module
|
||||
do_test $module
|
||||
done
|
||||
else
|
||||
|
Loading…
Reference in New Issue
Block a user