At least the false positive in tail-2/follow-stdin.sh could be seen
on a 4-core i5 system with -j8. Fix similar cases. too.
* tests/tail-2/follow-stdin.sh: Empty the 'out' file in each iteration.
Otherwise, under heavy system load, 'check_tail_output' would see the
expected output from the previous round before tail would have the
chance to come up in the background.
While at it, move the creation of the 'exp' file out of the loop.
* tests/dd/stats.sh: Empty the output file of the background process
here, too.
* tests/misc/cat-buf.sh: Likewise.
* tests/misc/stdbuf.sh: Likewise.
* tests/tail-2/wait.sh: Likewise.
}
for open in '' '1'; do
+ > err || framework_failure_
+
# Run dd with the fullblock iflag to avoid short reads
# which can be triggered by reception of signals
dd iflag=fullblock if=/dev/zero of=fifo count=50 bs=5000000 2>err & pid=$!
{
local delay="$1"
+ > out || framework_failure_
dd count=1 if=fifo > out & pid=$!
(echo 1; sleep $delay; echo 2) | cat -v > fifo
wait $pid
local delay="$1"
printf '1\n' > exp
+ > out || framework_failure_
dd count=1 if=fifo > out 2> err & pid=$!
(printf '1\n'; sleep $delay; printf '2\n') | stdbuf -oL uniq > fifo
wait $pid
# Ensure un buffering stdout takes effect
printf '1\n' > exp
+ > out || framework_failure_
dd count=1 if=fifo > out 2> err & pid=$!
(printf '1\n'; sleep $delay; printf '2\n') | stdbuf -o0 uniq > fifo
wait $pid
fastpoll='-s.1 --max-unchanged-stats=1'
echo line > in || framework_failure_
+echo line > exp || framework_failure_
for mode in '' '---disable-inotify'; do
- echo line > exp || framework_failure_
+ > out || framework_failure_
tail $mode -f $fastpoll < in > out 2> err & pid=$!
{
local delay="$1"
- touch k || framework_failure_
+ > k && > tail.out && > tail.err || framework_failure_
tail $fastpoll -F $mode k >tail.out 2>tail.err & pid=$!
sleep $delay
mv k l