Skip to content

Commit 18f60f2

Browse files
peffgitster
authored andcommitted
t5303: use printf to generate delta bases
The exact byte count of the delta base file is important. The test-delta helper will feed it to patch_delta(), which will barf if it doesn't match the size byte given in the delta. Using "echo" may end up with unexpected line endings on some platforms (e.g,. "\r\n" instead of just "\n"). This actually wouldn't cause the test to fail (since we already expect test-delta to complain about these bogus deltas), but would mean that we're not exercising the code we think we are. Let's use printf instead (which we already trust to give us byte-perfect output when we generate the deltas). While we're here, let's tighten the 5-byte result size used in the "truncated copy parameters" test. This just needs to have enough room to attempt to parse the bogus copy command, meaning 2 is sufficient. Using 5 was arbitrary and just copied from the base size; since those no longer match, it's simply confusing. Let's use a more meaningful number. Signed-off-by: Jeff King <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 9514b0b commit 18f60f2

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

t/t5303-pack-corruption-resilience.sh

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -327,15 +327,15 @@ test_expect_success \
327327
'printf "\0\1\2XX" > too_big_literal &&
328328
test_must_fail test-tool delta -p /dev/null too_big_literal /dev/null'
329329

330-
# \5 - five bytes in base
330+
# \4 - four bytes in base
331331
# \1 - one byte in result
332332
# \221 - copy, one byte offset, one byte size
333333
# \0 - copy from offset 0
334334
# \2 - copy two bytes (one too many)
335335
test_expect_success \
336336
'apply delta with too many copied bytes' \
337-
'printf "\5\1\221\0\2" > too_big_copy &&
338-
echo base >base &&
337+
'printf "\4\1\221\0\2" > too_big_copy &&
338+
printf base >base &&
339339
test_must_fail test-tool delta -p base too_big_copy /dev/null'
340340

341341
# \0 - empty base
@@ -356,8 +356,8 @@ test_expect_success \
356356
'printf "\0\1\221\0\1" > truncated_base &&
357357
test_must_fail test-tool delta -p /dev/null truncated_base /dev/null'
358358

359-
# \5 - five bytes in base
360-
# \5 - five bytes in result
359+
# \4 - four bytes in base
360+
# \2 - two bytes in result
361361
# \1 - one literal byte (X)
362362
# \221 - copy, one byte offset, one byte size
363363
# (offset/size missing)
@@ -366,8 +366,8 @@ test_expect_success \
366366
# delta size check.
367367
test_expect_success \
368368
'apply delta with truncated copy parameters' \
369-
'printf "\5\5\1X\221" > truncated_copy_delta &&
370-
echo base >base &&
369+
'printf "\4\2\1X\221" > truncated_copy_delta &&
370+
printf base >base &&
371371
test_must_fail test-tool delta -p base truncated_copy_delta /dev/null'
372372

373373
# \0 - empty base
@@ -379,16 +379,16 @@ test_expect_success \
379379
'printf "\0\1\1X\1" > tail_garbage_literal &&
380380
test_must_fail test-tool delta -p /dev/null tail_garbage_literal /dev/null'
381381

382-
# \5 - five bytes in base
382+
# \4 - four bytes in base
383383
# \1 - one byte in result
384384
# \1 - one literal byte (X)
385385
# \221 - copy, one byte offset, one byte size
386386
# \0 - copy from offset 0
387387
# \1 - copy 1 byte
388388
test_expect_success \
389389
'apply delta with trailing garbage copy' \
390-
'printf "\5\1\1X\221\0\1" > tail_garbage_copy &&
391-
echo base >base &&
390+
'printf "\4\1\1X\221\0\1" > tail_garbage_copy &&
391+
printf base >base &&
392392
test_must_fail test-tool delta -p /dev/null tail_garbage_copy /dev/null'
393393

394394
# \0 - empty base

0 commit comments

Comments
 (0)