From 455a7b95776440a56fd5d545d3b9a01cbae1d8e7 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 28 Aug 2007 09:21:47 +0000 Subject: * Test case to show that parallel builds of different fixed-output derivations that produce the same output path don't work properly wrt locking. This happens a lot in the build farm when fetchurl derivations downloading the same file on different platforms are executed in parallel and then copied back to the main machine. --- tests/fixed.sh | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'tests/fixed.sh') diff --git a/tests/fixed.sh b/tests/fixed.sh index fc37e40f42..d0a284af48 100644 --- a/tests/fixed.sh +++ b/tests/fixed.sh @@ -1,18 +1,33 @@ source common.sh +clearStore + +echo 'testing good...' drvs=$($nixinstantiate fixed.nix -A good) echo $drvs $nixstore -r $drvs +echo 'testing good2...' drvs=$($nixinstantiate fixed.nix -A good2) echo $drvs $nixstore -r $drvs +echo 'testing bad...' drvs=$($nixinstantiate fixed.nix -A bad) echo $drvs if $nixstore -r $drvs; then false; fi +echo 'testing reallyBad...' if $nixinstantiate fixed.nix -A reallyBad; then false; fi # While we're at it, check attribute selection a bit more. +echo 'testing attribute selection...' test $($nixinstantiate fixed.nix -A good.1 | wc -l) = 1 + +# Test parallel builds of derivations that produce the same output. +# Only one should run at the same time. +echo 'testing parallelSame...' +clearStore +drvs=$($nixinstantiate fixed.nix -A parallelSame) +echo $drvs +$nixstore -r $drvs -j2 -- cgit 1.4.1