t5325: check both on-disk and in-memory reverse index

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. Unfortunately, explicit existing coverage is rather sparse, so only a basic test is added that compares the result of git rev-list --objects --no-object-names --all | git cat-file --batch-check='%(objectsize:disk) %(objectname)' with and without an on-disk reverse index. Suggested-by: Jeff King <peff@peff.net> Helped-by: Jeff King <peff@peff.net> Signed-off-by: Taylor Blau <me@ttaylorr.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Taylor Blau committed Jan 28, 2021 at 20:32 UTC 6885cd7dc573b1750b8d895820b8b2f56285f070
1 file changed +23
t/t5325-reverse-index.sh
+23
@@ -94,4 +94,27 @@ test_expect_success 'reverse index is not generated when available on disk' '
94 --batch-check="%(objectsize:disk)" <tip
95 '
96
97 +test_expect_success 'revindex in-memory vs on-disk' '
98 + git init repo &&
99 + test_when_finished "rm -fr repo" &&
100 + (
101 + cd repo &&
102 +
103 + test_commit commit &&
104 +
105 + git rev-list --objects --no-object-names --all >objects &&
106 +
107 + git -c pack.writeReverseIndex=false repack -ad &&
108 + test_path_is_missing $packdir/pack-*.rev &&
109 + git cat-file --batch-check="%(objectsize:disk) %(objectname)" \
110 + <objects >in-core &&
111 +
112 + git -c pack.writeReverseIndex=true repack -ad &&
113 + test_path_is_file $packdir/pack-*.rev &&
114 + git cat-file --batch-check="%(objectsize:disk) %(objectname)" \
115 + <objects >on-disk &&
116 +
117 + test_cmp on-disk in-core
118 + )
119 +'
120 test_done