diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2005-01-31T22·23+0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2005-01-31T22·23+0000 |
commit | 32fa82a56a2c4a937c91f72be16339b4ddf7cdf1 (patch) | |
tree | 3e84b69bb6d46bf8461b8544e80a5f3da0d40f7f /tests | |
parent | 89c9bc11abc02cc746838bfef101e5fecc59a6c5 (diff) |
* Acquire a global GC lock to prevent new temporary root files from
being created after the garbage collector has read the temproots directory. This blocks the creation of new processes, but the garbage collector could periodically release the GC lock to allow them to run.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/Makefile.am | 8 | ||||
-rw-r--r-- | tests/gc-concurrent.sh | 3 |
2 files changed, 7 insertions, 4 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am index e1c15850072f..c88379e47f1f 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -36,10 +36,10 @@ nix-pull.sh: dependencies.nix gc.sh: dependencies.nix gc-concurrent.sh: gc-concurrent.nix gc-concurrent2.nix -#TESTS = init.sh hash.sh lang.sh simple.sh dependencies.sh locking.sh parallel.sh \ -# build-hook.sh substitutes.sh substitutes2.sh fallback.sh nix-push.sh gc.sh \ -# gc-concurrent.sh verify.sh nix-pull.sh -TESTS = init.sh gc-concurrent.sh +TESTS = init.sh hash.sh lang.sh simple.sh dependencies.sh locking.sh parallel.sh \ + build-hook.sh substitutes.sh substitutes2.sh fallback.sh nix-push.sh gc.sh \ + gc-concurrent.sh verify.sh nix-pull.sh +#TESTS = init.sh gc-concurrent.sh XFAIL_TESTS = diff --git a/tests/gc-concurrent.sh b/tests/gc-concurrent.sh index fd329b457eb9..c85a03e1ca88 100644 --- a/tests/gc-concurrent.sh +++ b/tests/gc-concurrent.sh @@ -6,6 +6,8 @@ outPath2=$($TOP/src/nix-store/nix-store -q $storeExpr2) ls -l test-tmp/state/temproots +ln -s $storeExpr2 "$NIX_LOCALSTATE_DIR"/nix/gcroots/foo2 + # Start build #1 in the background. It starts immediately. $TOP/src/nix-store/nix-store -rvv "$storeExpr1" & pid1=$! @@ -31,4 +33,5 @@ wait $pid2 cat $outPath1/foobar cat $outPath1/input-2/bar +# Build #2 should have failed because its derivation got garbage collected. cat $outPath2/foobar |