summaryrefslogtreecommitdiff
path: root/tests/tail-2/infloop-1
diff options
context:
space:
mode:
Diffstat (limited to 'tests/tail-2/infloop-1')
-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 || :