+++ /dev/null
-# test: closed fds should stay closed
-exec 1>&-
-echo TEST >TEST
-echo JUNK # lost: stdout is closed
-cat TEST >&2
-rm TEST
--- /dev/null
+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
--- /dev/null
+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
#!/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 $?
modules=`ls -d ash-*`
for module in $modules; do
+ echo do_test $module
do_test $module
done
else