about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--tests/parallel.builder.sh6
-rw-r--r--tests/parallel.nix4
-rw-r--r--tests/parallel.sh14
3 files changed, 14 insertions, 10 deletions
diff --git a/tests/parallel.builder.sh b/tests/parallel.builder.sh
index d9118eff124a..280eb1de8c41 100644
--- a/tests/parallel.builder.sh
+++ b/tests/parallel.builder.sh
@@ -2,7 +2,7 @@ echo "DOING $text"
 
 
 # increase counter
-while ! ln -s x $shared.lock; do
+while ! ln -s x $shared.lock 2> /dev/null; do
     sleep 1
 done
 test -f $shared.cur || echo 0 > $shared.cur
@@ -17,11 +17,11 @@ rm $shared.lock
 
 echo -n $(cat $inputs)$text > $out
 
-sleep 3
+sleep $sleepTime
 
 
 # decrease counter
-while ! ln -s x $shared.lock; do
+while ! ln -s x $shared.lock 2> /dev/null; do
     sleep 1
 done
 test -f $shared.cur || echo 0 > $shared.cur
diff --git a/tests/parallel.nix b/tests/parallel.nix
index eb5dd02c018a..23f142059f58 100644
--- a/tests/parallel.nix
+++ b/tests/parallel.nix
@@ -1,3 +1,5 @@
+{sleepTime ? 3}:
+
 with import ./config.nix;
 
 let
@@ -5,7 +7,7 @@ let
   mkDrv = text: inputs: mkDerivation {
     name = "parallel";
     builder = ./parallel.builder.sh;
-    inherit text inputs shared;
+    inherit text inputs shared sleepTime;
   };
 
   a = mkDrv "a" [];
diff --git a/tests/parallel.sh b/tests/parallel.sh
index 26411649d1e6..798c15f5b4b4 100644
--- a/tests/parallel.sh
+++ b/tests/parallel.sh
@@ -25,21 +25,23 @@ clearStore
 
 rm -f $SHARED.cur $SHARED.max
 
-$nixbuild -j1 parallel.nix &
+cmd="$nixbuild -j1 parallel.nix --argstr sleepTime 7"
+
+$cmd &
 pid1=$!
 echo "pid 1 is $pid1"
 
-$nixbuild -j1 parallel.nix &
+$cmd &
 pid2=$!
 echo "pid 2 is $pid2"
 
-$nixbuild -j1 parallel.nix &
+$cmd &
 pid3=$!
 echo "pid 3 is $pid3"
 
-wait $pid1
-wait $pid2
-wait $pid3
+wait $pid1 || fail "instance 1 failed: $?"
+wait $pid2 || fail "instance 2 failed: $?"
+wait $pid3 || fail "instance 3 failed: $?"
 
 if test "$(cat $SHARED.cur)" != 0; then fail "wrong current process count"; fi
 if test "$(cat $SHARED.max)" != 3; then fail "not enough parallelism"; fi