t5304: add a test for pruning with bitmaps

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>
This commit is contained in:
Jeff King 2019-04-18 16:08:27 -04:00 committed by Junio C Hamano
parent cc80c95f42
commit fe6f2b081f

View file

@ -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