]> git.ipfire.org Git - thirdparty/git.git/commitdiff
t4200: make "rerere gc" test more robust
authorJunio C Hamano <gitster@pobox.com>
Tue, 22 Aug 2017 21:14:03 +0000 (14:14 -0700)
committerJunio C Hamano <gitster@pobox.com>
Tue, 22 Aug 2017 21:51:02 +0000 (14:51 -0700)
The test blindly trusted that there may be _some_ entries left in
the rerere database, and used them by updating their timestamps to
see if the gc threshold variables are honoured correctly.  This
won't work if there is no entry in the database when the test
begins.

Instead, clear the rerere database, and populate it with a few known
entries (which are bogus, but for the purpose of testing "garbage
collection", it does not matter---we want to make sure we collect
old cruft, even if the files are corrupt rerere database entries),
and use them for the expiry test.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t4200-rerere.sh

index 8f5f268baf3a6a74e4b3da6044aea0def006a6b8..1e23031cdbb8c849d00b7047c0aff3a44d479d65 100755 (executable)
@@ -420,19 +420,28 @@ count_pre_post () {
 }
 
 test_expect_success 'rerere gc' '
-       find .git/rr-cache -type f >original &&
-       xargs test-chmtime -172800 <original &&
+       rm -fr .git/rr-cache &&
+       rr=.git/rr-cache/$_z40 &&
+       mkdir -p "$rr" &&
+       >"$rr/preimage" &&
+       >"$rr/postimage" &&
+
+       two_days_ago=$((-2*86400)) &&
+       test-chmtime =$two_days_ago "$rr/preimage" &&
+       test-chmtime =$two_days_ago "$rr/postimage" &&
+
+       find .git/rr-cache -type f | sort >original &&
 
        git -c gc.rerereresolved=5 -c gc.rerereunresolved=5 rerere gc &&
-       find .git/rr-cache -type f >actual &&
+       find .git/rr-cache -type f | sort >actual &&
        test_cmp original actual &&
 
        git -c gc.rerereresolved=5 -c gc.rerereunresolved=0 rerere gc &&
-       find .git/rr-cache -type f >actual &&
+       find .git/rr-cache -type f | sort >actual &&
        test_cmp original actual &&
 
        git -c gc.rerereresolved=0 -c gc.rerereunresolved=0 rerere gc &&
-       find .git/rr-cache -type f >actual &&
+       find .git/rr-cache -type f | sort >actual &&
        >expect &&
        test_cmp expect actual
 '