forked from lix-project/lix
* Add a test to demonstrate the quadratic complexity of referrer
(de)registration, in particular garbage collection (NIX-23).
This commit is contained in:
parent
a33b561a6b
commit
18bbcb1214
|
@ -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 \
|
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 \
|
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 =
|
XFAIL_TESTS =
|
||||||
|
|
||||||
|
|
15
tests/referrers.sh
Normal file
15
tests/referrers.sh
Normal file
|
@ -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
|
Loading…
Reference in a new issue