aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/Makefile.am2
-rw-r--r--tests/referrers.sh15
2 files changed, 16 insertions, 1 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 13643b7f6..f024ca8b9 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -39,7 +39,7 @@ 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
+ gc-concurrent.sh verify.sh nix-pull.sh referrers.sh
XFAIL_TESTS =
diff --git a/tests/referrers.sh b/tests/referrers.sh
new file mode 100644
index 000000000..a4ef34803
--- /dev/null
+++ b/tests/referrers.sh
@@ -0,0 +1,15 @@
+max=5000
+
+reference=$NIX_STORE_DIR/abcdef
+touch $reference
+(echo $reference && echo && echo 0) | $TOP/src/nix-store/nix-store --register-validity
+
+echo "registering..."
+time for ((n = 0; n < $max; n ++)); do
+ storePath=$NIX_STORE_DIR/$n
+ touch $storePath
+ (echo $storePath && echo && echo 1 && echo $reference)
+done | $TOP/src/nix-store/nix-store --register-validity
+
+echo "collecting garbage..."
+time $TOP/src/nix-store/nix-store --gc 2> /dev/null