aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2005-01-31 22:23:49 +0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2005-01-31 22:23:49 +0000
commit32fa82a56a2c4a937c91f72be16339b4ddf7cdf1 (patch)
tree3e84b69bb6d46bf8461b8544e80a5f3da0d40f7f /tests
parent89c9bc11abc02cc746838bfef101e5fecc59a6c5 (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.am8
-rw-r--r--tests/gc-concurrent.sh3
2 files changed, 7 insertions, 4 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am
index e1c158500..c88379e47 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 fd329b457..c85a03e1c 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