aboutsummaryrefslogtreecommitdiff
path: root/tests/referrers.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tests/referrers.sh')
-rw-r--r--tests/referrers.sh38
1 files changed, 7 insertions, 31 deletions
diff --git a/tests/referrers.sh b/tests/referrers.sh
index aa5edb555..a0c195d5a 100644
--- a/tests/referrers.sh
+++ b/tests/referrers.sh
@@ -1,9 +1,8 @@
source common.sh
-# This takes way to long on Cygwin (because process creation is so slow...).
-if test "$system" = i686-cygwin; then exit 0; fi
+clearStore
-max=1000
+max=500
reference=$NIX_STORE_DIR/abcdef
touch $reference
@@ -13,46 +12,23 @@ echo "making registration..."
for ((n = 0; n < $max; n++)); do
storePath=$NIX_STORE_DIR/$n
- touch $storePath
+ echo -n > $storePath
ref2=$NIX_STORE_DIR/$((n+1))
if test $((n+1)) = $max; then
ref2=$reference
fi
- (echo $storePath && echo && echo 2 && echo $reference && echo $ref2)
+ 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)" -ne 1; then
- echo "reregistration duplicated referrers"
- exit 1
-fi
+$nixstore --register-validity < $TEST_ROOT/reg_info
echo "collecting garbage..."
ln -sfn $reference "$NIX_STATE_DIR"/gcroots/ref
-time $nixstore --gc
+$nixstore --gc
-if test "$(cat test-tmp/db/referrer/abcdef | wc -w)" -ne 0; then
+if test "$(sqlite3 ./test-tmp/db/db.sqlite 'select count(*) from Refs')" -ne 0; then
echo "referrers not cleaned up"
exit 1
fi
-