summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernhard Voelker <mail@bernhard-voelker.de>2016-01-10 01:44:04 +0100
committerBernhard Voelker <mail@bernhard-voelker.de>2016-01-10 01:51:27 +0100
commitd44ae88199ebf44fe721c06621a7ffc442fa34be (patch)
treeb4b9d5590a1889dcee548528881a7b6c82762461
parent3d7b822e4a660e6804963d8e5ac0cdca2aeb3497 (diff)
downloadcoreutils-d44ae88199ebf44fe721c06621a7ffc442fa34be.tar.xz
tests: fix races wrt output files of background processes
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.
-rwxr-xr-xtests/dd/stats.sh2
-rwxr-xr-xtests/misc/cat-buf.sh1
-rwxr-xr-xtests/misc/stdbuf.sh2
-rwxr-xr-xtests/tail-2/follow-stdin.sh3
-rwxr-xr-xtests/tail-2/wait.sh2
5 files changed, 8 insertions, 2 deletions
diff --git a/tests/dd/stats.sh b/tests/dd/stats.sh
index e8bb5fa27..182d5e7e7 100755
--- a/tests/dd/stats.sh
+++ b/tests/dd/stats.sh
@@ -38,6 +38,8 @@ cleanup_()
}
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=$!
diff --git a/tests/misc/cat-buf.sh b/tests/misc/cat-buf.sh
index f12bb5bc1..a6960b566 100755
--- a/tests/misc/cat-buf.sh
+++ b/tests/misc/cat-buf.sh
@@ -35,6 +35,7 @@ cat_buf_1()
{
local delay="$1"
+ > out || framework_failure_
dd count=1 if=fifo > out & pid=$!
(echo 1; sleep $delay; echo 2) | cat -v > fifo
wait $pid
diff --git a/tests/misc/stdbuf.sh b/tests/misc/stdbuf.sh
index a5331deff..7b9aed503 100755
--- a/tests/misc/stdbuf.sh
+++ b/tests/misc/stdbuf.sh
@@ -66,6 +66,7 @@ stdbuf_linebuffer()
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
@@ -80,6 +81,7 @@ stdbuf_unbuffer()
# 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
diff --git a/tests/tail-2/follow-stdin.sh b/tests/tail-2/follow-stdin.sh
index 120cc3bbb..a2f180428 100755
--- a/tests/tail-2/follow-stdin.sh
+++ b/tests/tail-2/follow-stdin.sh
@@ -33,9 +33,10 @@ cleanup_() { kill $pid 2>/dev/null && 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=$!
diff --git a/tests/tail-2/wait.sh b/tests/tail-2/wait.sh
index bcb04858a..008f9f55e 100755
--- a/tests/tail-2/wait.sh
+++ b/tests/tail-2/wait.sh
@@ -72,7 +72,7 @@ if test "$HAVE_INOTIFY"; then
{
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