diff options
-rwxr-xr-x | tests/tail-2/inotify-rotate | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/tests/tail-2/inotify-rotate b/tests/tail-2/inotify-rotate index 51cd81bb1..9a3933e83 100755 --- a/tests/tail-2/inotify-rotate +++ b/tests/tail-2/inotify-rotate @@ -21,9 +21,21 @@ if test "$VERBOSE" = yes; then tail --version fi -. $srcdir/test-lib.sh +. "${srcdir=.}/init.sh"; path_prepend_ ../src expensive_ +# Wait up to 10 seconds for grep REGEXP FILE to succeed. +# Usage: grep_timeout REGEXP FILE +grep_timeout() +{ + local j + for j in $(seq 100); do + grep $1 $2 > /dev/null && return 0 + sleep 0.1 + done + return 1 +} + # For details, see # http://lists.gnu.org/archive/html/bug-coreutils/2009-11/msg00213.html @@ -37,17 +49,15 @@ for i in $(seq 50); do sleep .1 echo b > k; # wait for b to appear in out + grep_timeout b out || fail_ failed to find b in out while :; do grep b out > /dev/null && break; done mv x k # wait for tail to detect the rename - while :; do grep tail: out > /dev/null && break; done + grep_timeout tail: out || fail_ failed to detect rename echo ok >> k found=0 # wait up to 10 seconds for "ok" to appear in out - for j in $(seq 100); do - grep ok out > /dev/null && { found=1; break; } - sleep 0.1 - done + grep_timeout ok out && found=1 kill $pid test $found = 0 && { fail=1; cat out; break; } done |