ash: add a testcase for recently fixed signal bug

This commit is contained in:
Denis Vlasenko 2008-02-13 18:09:56 +00:00
parent 23ffb6a4a2
commit 81887e2342
4 changed files with 49 additions and 7 deletions

View File

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

View 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

View 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

View File

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