about summary refs log tree commit diff
path: root/tests/referrers.sh
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2005-12-11T19·25+0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2005-12-11T19·25+0000
commit18bbcb1214caf75c0190e610d7eb34e971366c7c (patch)
treed3146c4fdbfed77cabd4151a146a865be1bd40ed /tests/referrers.sh
parenta33b561a6b2e5cbc805f903817a3a3d5df03b747 (diff)
* Add a test to demonstrate the quadratic complexity of referrer
  (de)registration, in particular garbage collection (NIX-23).

Diffstat (limited to 'tests/referrers.sh')
-rw-r--r--tests/referrers.sh15
1 files changed, 15 insertions, 0 deletions
diff --git a/tests/referrers.sh b/tests/referrers.sh
new file mode 100644
index 000000000000..a4ef34803a74
--- /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