t5310-pack-bitmaps: fix bogus 'pack-objects to file can use bitmap' test

The test 'pack-objects to file can use bitmap' added in 645c432d61 (pack-objects: use reachability bitmap index when generating non-stdout pack, 2016-09-10) is silently buggy and doesn't check what it's supposed to. In 't5310-pack-bitmaps.sh', the 'list_packed_objects' helper function does what its name implies by running: git show-index <"$1" | cut -d' ' -f2 The test in question invokes this function like this: list_packed_objects <packa-$packasha1.idx >packa.objects && list_packed_objects <packb-$packbsha1.idx >packb.objects && test_cmp packa.objects packb.objects Note how these two callsites don't specify the name of the pack index file as the function's parameter, but redirect the function's standard input from it. This triggers an error message from the shell, as it has no filename to redirect from in the function, but this error is ignored, because it happens upstream of a pipe. Consequently, both invocations produce empty 'pack{a,b}.objects' files, and the subsequent 'test_cmp' happily finds those two empty files identical. Fix these two 'list_packed_objects' invocations by specifying the pack index files as parameters. Furthermore, eliminate the pipe in that function by replacing it with an &&-chained pair of commands using an intermediate file, so a failure of 'git show-index' or the shell redirection will fail the test. Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

SZEDER Gábor committed Aug 14, 2018 at 13:47 UTC 10c600172cc005fb43d110fdfaf0c45f9544a079
1 file changed +4 -3
t/t5310-pack-bitmaps.sh
+4 -3
@@ -9,7 +9,8 @@ objpath () {
9
10 # show objects present in pack ($1 should be associated *.idx)
11 list_packed_objects () {
12 - git show-index <"$1" | cut -d' ' -f2
12 + git show-index <"$1" >object-list &&
13 + cut -d' ' -f2 object-list
14 }
15
16 # has_any pattern-file content-file
@@ -204,8 +205,8 @@ test_expect_success 'pack-objects to file can use bitmap' '
205 # verify equivalent packs are generated with/without using bitmap index
206 packasha1=$(git pack-objects --no-use-bitmap-index --all packa </dev/null) &&
207 packbsha1=$(git pack-objects --use-bitmap-index --all packb </dev/null) &&
207 - list_packed_objects <packa-$packasha1.idx >packa.objects &&
208 - list_packed_objects <packb-$packbsha1.idx >packb.objects &&
208 + list_packed_objects packa-$packasha1.idx >packa.objects &&
209 + list_packed_objects packb-$packbsha1.idx >packb.objects &&
210 test_cmp packa.objects packb.objects
211 '
212