summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Meyering <meyering@redhat.com>2009-09-07 11:39:19 +0200
committerJim Meyering <meyering@redhat.com>2009-09-07 13:55:37 +0200
commit494fed027114d63719439b399a7602f8d0384bcf (patch)
treea5ff155966d515b46dbd9cead6ce4f35ba994eb6
parent61cc6fbc279af8044651348a00ea47c9412f03cb (diff)
downloadcoreutils-494fed027114d63719439b399a7602f8d0384bcf.tar.xz
tests: tail-2/infloop-1: avoid rare test failure on a busy system
* tests/tail-2/infloop-1: Sleep 3 seconds, not 1, but in increments of 0.1 second. Before, this test would fail ~1 time in 20 via "make -j9 check" on a quad-core system. Correct comment.
-rwxr-xr-xtests/tail-2/infloop-112
1 files changed, 9 insertions, 3 deletions
diff --git a/tests/tail-2/infloop-1 b/tests/tail-2/infloop-1
index 6a456deac..72d51d975 100755
--- a/tests/tail-2/infloop-1
+++ b/tests/tail-2/infloop-1
@@ -27,16 +27,22 @@ yes > t &
yes_pid=$!
while :; do
test -s t && break
+ sleep .1
done
tail -n 1 t &
tail_pid=$!
kill $yes_pid
# This test is racy, and can fail under unusual circumstances.
-# On a busy system, "yes" will fail to write
-# (and hence fail to be killed by SIGPIPE) in that 1-second interval.
+# On a very busy system, tail will fail to notice that $yes_pid is gone.
# Then the following kill will succeed and cause this test to fail.
-sleep 1
+
+# Wait for up to 3 seconds for tail to detect the death of $yes_pid.
+for i in $(seq 30); do
+ kill -0 $tail_pid || break
+ echo sleep 0.1s
+ sleep .1
+done
fail=0
kill $tail_pid && fail=1 || :