Right now, the test suite can be run with 'GIT_TEST_WRITE_REV_INDEX=1' in the environment, which causes all operations which write a pack to also write a .rev file. To prepare for when that eventually becomes the default, we should continue to test the in-memory reverse index, too, in order to avoid losing existing coverage. Unfortuantely, explicit existing coverage is rather sparse, so only a basic test is added. The new test is parameterized over whether or not the .rev file should be written, and is run in both modes by t5325 (without having to touch GIT_TEST_WRITE_REV_INDEX). Suggested-by: Jeff King <peff@xxxxxxxx> Signed-off-by: Taylor Blau <me@xxxxxxxxxxxx> --- t/t5325-reverse-index.sh | 45 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/t/t5325-reverse-index.sh b/t/t5325-reverse-index.sh index a344b18d7e..b1dd726d0e 100755 --- a/t/t5325-reverse-index.sh +++ b/t/t5325-reverse-index.sh @@ -94,4 +94,49 @@ test_expect_success 'reverse index is not generated when available on disk' ' --batch-check="%(objectsize:disk)" <tip ' +revindex_tests () { + on_disk="$1" + + test_expect_success "setup revindex tests (on_disk=$on_disk)" " + test_oid_cache <<-EOF && + disklen sha1:47 + disklen sha256:59 + EOF + + git init repo && + ( + cd repo && + + if test ztrue = \"z$on_disk\" + then + git config pack.writeReverseIndex true + fi && + + test_commit commit && + git repack -ad + ) + + " + + test_expect_success "check objectsize:disk (on_disk=$on_disk)" ' + ( + cd repo && + git rev-parse HEAD^{tree} >tree && + git cat-file --batch-check="%(objectsize:disk)" <tree >actual && + + git cat-file -p HEAD^{tree} && + + printf "%s\n" "$(test_oid disklen)" >expect && + test_cmp expect actual + ) + ' + + test_expect_success "cleanup revindex tests (on_disk=$on_disk)" ' + rm -fr repo + ' +} + +revindex_tests "true" +revindex_tests "false" + test_done -- 2.30.0.138.g6d7191ea01