mirror of
git://git.sv.gnu.org/coreutils.git
synced 2026-04-21 11:16:16 +02:00
tests: don't make tail's pipe-f2 test take the full 10 seconds
* tests/tail-2/pipe-f2: Don't always wait 10 seconds. Before, this test would always wait 10 seconds. Now, it stops early when it detects that tail -f has written output. BTW, the race condition that prompted changing the timeout from 1 second to 10 was that tail -f could be killed by the timeout before producing any output.
This commit is contained in:
@@ -24,9 +24,20 @@ mkfifo_or_skip_ fifo
|
||||
echo 1 > fifo &
|
||||
echo 1 > exp || framework_failure_
|
||||
|
||||
timeout 10 tail -f fifo > out
|
||||
test $? = 124 || fail=1
|
||||
timeout 10 tail -f fifo > out & pid=$!
|
||||
|
||||
check_tail_output()
|
||||
{
|
||||
local n_sec="$1"
|
||||
test -s out || { sleep $n_sec; return 1; }
|
||||
}
|
||||
|
||||
# Wait 6.3s for tail to write something.
|
||||
retry_delay_ check_tail_output .1 7 || fail=1
|
||||
|
||||
compare out exp || fail=1
|
||||
|
||||
# Kill the still-running tail, or fail if it's gone.
|
||||
kill $pid || fail=1
|
||||
|
||||
Exit $fail
|
||||
|
||||
Reference in New Issue
Block a user