From: Pádraig Brady Date: Tue, 18 Dec 2012 13:06:15 +0000 (+0000) Subject: tests: avoid a race in timeout-group.sh X-Git-Tag: v8.21~51 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=751a4c4d036d83b98ac39cfcb2de4de10f1139e1;p=thirdparty%2Fcoreutils.git tests: avoid a race in timeout-group.sh * tests/misc/timeout-group.sh: The kernel might possibly delay signal propagation to timeout.cmd long enough, that it exits normally without running the signal handler (as sleep will be in the same process group and so get the signal too). So avoid this by explicitly checking that the signal handler is called, which should always happen under normal circumstances. Reported by Stefano Lattarini on linux-2.6.30-2-686 and bash-4.2.36. --- diff --git a/tests/misc/timeout-group.sh b/tests/misc/timeout-group.sh index 4cefc33bf6..7117abb5a5 100755 --- a/tests/misc/timeout-group.sh +++ b/tests/misc/timeout-group.sh @@ -34,7 +34,11 @@ cat > timeout.cmd <<\EOF #!/bin/sh trap 'touch int.received; exit' INT touch timeout.running -sleep $1 +count=$1 +until test -e int.received || test $count = 0; do + sleep 1 + count=$(expr $count - 1) +done EOF chmod a+x timeout.cmd