]> granicus.if.org Git - git/commitdiff
t5304: add a test for pruning with bitmaps
authorJeff King <peff@peff.net>
Thu, 18 Apr 2019 20:08:27 +0000 (16:08 -0400)
committerJunio C Hamano <gitster@pobox.com>
Fri, 19 Apr 2019 05:22:32 +0000 (14:22 +0900)
Commit fde67d6896 (prune: use bitmaps for reachability traversal,
2019-02-13) uses bitmaps for pruning when they're available, but only
covers this functionality in the t/perf tests. This makes a kind of
sense, since the point is that the behaviour is indistinguishable before
and after the patch, just faster.

But since the bitmap code path is not exercised at all in the regular
test suite, it leaves us open to a regression where the behavior does in
fact change. The most thorough way to test that would be running the
whole suite with bitmaps enabled. But we don't yet have a way to do
that, and anyway it's expensive to do so. Let's at least add a basic
test that exercises this path and make sure we prune an object we should
(and not one that we shouldn't).

That would hopefully catch the most obvious breakages early.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t5304-prune.sh

index 1eeb828a15146e9e5040c64b20a31329853f12e7..df60f18fb8caa252a173603258ed09f9a3c2f89d 100755 (executable)
@@ -341,4 +341,12 @@ test_expect_success 'prune: handle expire option correctly' '
        git prune --no-expire
 '
 
+test_expect_success 'trivial prune with bitmaps enabled' '
+       git repack -adb &&
+       blob=$(echo bitmap-unreachable-blob | git hash-object -w --stdin) &&
+       git prune --expire=now &&
+       git cat-file -e HEAD &&
+       test_must_fail git cat-file -e $blob
+'
+
 test_done