diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2008-06-09T13·52+0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2008-06-09T13·52+0000 |
commit | b0e92f6d474ce91d7f071f9ed62bbb2015009c58 (patch) | |
tree | c3d28be6b89dfa618df290d5c78c55897b119b6c /tests/referrers.sh | |
parent | 4ed01ed791b3bb7a4010049c6128aa2d49a81a29 (diff) |
* Merged the no-bdb branch (-r10900:HEAD
https://svn.nixos.org/repos/nix/nix/branches/no-bdb).
Diffstat (limited to 'tests/referrers.sh')
-rw-r--r-- | tests/referrers.sh | 48 |
1 files changed, 43 insertions, 5 deletions
diff --git a/tests/referrers.sh b/tests/referrers.sh index 4d2aaab5a2b8..2fdf0cf7c47e 100644 --- a/tests/referrers.sh +++ b/tests/referrers.sh @@ -9,12 +9,50 @@ reference=$NIX_STORE_DIR/abcdef touch $reference (echo $reference && echo && echo 0) | $nixstore --register-validity -echo "registering..." -time for ((n = 0; n < $max; n++)); do +echo "making registration..." + +for ((n = 0; n < $max; n++)); do storePath=$NIX_STORE_DIR/$n touch $storePath - (echo $storePath && echo && echo 1 && echo $reference) -done | $nixstore --register-validity + ref2=$NIX_STORE_DIR/$((n+1)) + if test $((n+1)) = $max; then + ref2=$reference + fi + (echo $storePath && echo && echo 2 && echo $reference && echo $ref2) +done > $TEST_ROOT/reg_info + +echo "registering..." + +time $nixstore --register-validity < $TEST_ROOT/reg_info + +oldTime=$(cat test-tmp/db/info/1 | grep Registered-At) + +echo "sleeping..." + +sleep 2 + +echo "reregistering..." + +time $nixstore --register-validity --reregister < $TEST_ROOT/reg_info + +newTime=$(cat test-tmp/db/info/1 | grep Registered-At) + +if test "$newTime" != "$oldTime"; then + echo "reregistration changed original registration time" + exit 1 +fi + +if test "$(cat test-tmp/db/referrer/1 | wc -w)" != 1; then + echo "reregistration duplicated referrers" + exit 1 +fi echo "collecting garbage..." -time $nixstore --gc 2> /dev/null +ln -sfn $reference "$NIX_STATE_DIR"/gcroots/ref +time $nixstore --gc + +if test "$(cat test-tmp/db/referrer/abcdef | wc -w)" != 0; then + echo "referrers not cleaned up" + exit 1 +fi + |