[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] tests: fix races wrt output files of background processes
From: |
Bernhard Voelker |
Subject: |
[PATCH] tests: fix races wrt output files of background processes |
Date: |
Sun, 10 Jan 2016 01:56:01 +0100 |
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.
---
tests/dd/stats.sh | 2 ++
tests/misc/cat-buf.sh | 1 +
tests/misc/stdbuf.sh | 2 ++
tests/tail-2/follow-stdin.sh | 3 ++-
tests/tail-2/wait.sh | 2 +-
5 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/tests/dd/stats.sh b/tests/dd/stats.sh
index e8bb5fa..182d5e7 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 f12bb5b..a6960b5 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 a5331de..7b9aed5 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 120cc3b..a2f1804 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 bcb0485..008f9f5 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
--
2.1.4
- [PATCH] tests: fix races wrt output files of background processes,
Bernhard Voelker <=