coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] tests: fix recent false failure due to a race


From: Pádraig Brady
Subject: [PATCH] tests: fix recent false failure due to a race
Date: Wed, 20 Apr 2016 17:12:08 +0100

* tests/cp/parent-perm-race.sh: This new race introduced in
commit v8.25-5-g632eda5 is quite hard to hit, but is due to
`ls > fifo` doing write()/close()/exit() once `cp` has
open() the source fifo.  Then the subsequent comparison of the
destination file may fail due to the file being missing or empty.
Previously `ls` generated output that was independent of `cp`.
Now we must wait for `cp` to finish before inspecting the
destination file that it wrote.
---
 tests/cp/parent-perm-race.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tests/cp/parent-perm-race.sh b/tests/cp/parent-perm-race.sh
index 0d0841c..8d09329 100755
--- a/tests/cp/parent-perm-race.sh
+++ b/tests/cp/parent-perm-race.sh
@@ -43,6 +43,8 @@ do
   # $d/attr and has started to read the source file $attr/fifo.
   timeout 10 sh -c "ls -ld d/$attr >$attr/fifo" || fail=1
 
+  wait $pid || fail=1
+
   ls_output=$(cat d/$attr/fifo) || fail=1
   case $attr,$ls_output in
   ownership,d???--[-S]--[-S]* | \
@@ -52,8 +54,6 @@ do
   *)
     fail=1;;
   esac
-
-  wait $pid || fail=1
 done
 
 Exit $fail
-- 
2.5.5




reply via email to

[Prev in Thread] Current Thread [Next in Thread]