t5303-pack-corruption-resilience: modernize test format

Some tests still use the old format with four spaces indentation.
Standardize the tests to the new format with tab indentation.

Signed-off-by: John Cai <johncai86@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
John Cai 2023-05-18 20:03:22 +00:00 committed by Junio C Hamano
parent cc0c1ad9ad
commit aac864059f
1 changed files with 266 additions and 266 deletions

View File

@ -59,211 +59,210 @@ do_corrupt_object() {


printf '\0' > zero printf '\0' > zero


test_expect_success \ test_expect_success 'initial setup validation' '
'initial setup validation' \ create_test_files &&
'create_test_files &&
create_new_pack && create_new_pack &&
git prune-packed && git prune-packed &&
git cat-file blob $blob_1 > /dev/null && git cat-file blob $blob_1 > /dev/null &&
git cat-file blob $blob_2 > /dev/null && git cat-file blob $blob_2 > /dev/null &&
git cat-file blob $blob_3 > /dev/null' git cat-file blob $blob_3 > /dev/null
'


test_expect_success \ test_expect_success 'create corruption in header of first object' '
'create corruption in header of first object' \ do_corrupt_object $blob_1 0 < zero &&
'do_corrupt_object $blob_1 0 < zero &&
test_must_fail git cat-file blob $blob_1 > /dev/null && test_must_fail git cat-file blob $blob_1 > /dev/null &&
test_must_fail git cat-file blob $blob_2 > /dev/null && test_must_fail git cat-file blob $blob_2 > /dev/null &&
test_must_fail git cat-file blob $blob_3 > /dev/null' test_must_fail git cat-file blob $blob_3 > /dev/null
'


test_expect_success \ test_expect_success '... but having a loose copy allows for full recovery' '
'... but having a loose copy allows for full recovery' \ mv ${pack}.idx tmp &&
'mv ${pack}.idx tmp &&
git hash-object -t blob -w file_1 && git hash-object -t blob -w file_1 &&
mv tmp ${pack}.idx && mv tmp ${pack}.idx &&
git cat-file blob $blob_1 > /dev/null && git cat-file blob $blob_1 > /dev/null &&
git cat-file blob $blob_2 > /dev/null && git cat-file blob $blob_2 > /dev/null &&
git cat-file blob $blob_3 > /dev/null' git cat-file blob $blob_3 > /dev/null
'


test_expect_success \ test_expect_success '... and loose copy of first delta allows for partial recovery' '
'... and loose copy of first delta allows for partial recovery' \ git prune-packed &&
'git prune-packed &&
test_must_fail git cat-file blob $blob_2 > /dev/null && test_must_fail git cat-file blob $blob_2 > /dev/null &&
mv ${pack}.idx tmp && mv ${pack}.idx tmp &&
git hash-object -t blob -w file_2 && git hash-object -t blob -w file_2 &&
mv tmp ${pack}.idx && mv tmp ${pack}.idx &&
test_must_fail git cat-file blob $blob_1 > /dev/null && test_must_fail git cat-file blob $blob_1 > /dev/null &&
git cat-file blob $blob_2 > /dev/null && git cat-file blob $blob_2 > /dev/null &&
git cat-file blob $blob_3 > /dev/null' git cat-file blob $blob_3 > /dev/null
'


test_expect_success \ test_expect_success 'create corruption in data of first object' '
'create corruption in data of first object' \ create_new_pack &&
'create_new_pack &&
git prune-packed && git prune-packed &&
chmod +w ${pack}.pack && chmod +w ${pack}.pack &&
perl -i.bak -pe "s/ base /abcdef/" ${pack}.pack && perl -i.bak -pe "s/ base /abcdef/" ${pack}.pack &&
test_must_fail git cat-file blob $blob_1 > /dev/null && test_must_fail git cat-file blob $blob_1 > /dev/null &&
test_must_fail git cat-file blob $blob_2 > /dev/null && test_must_fail git cat-file blob $blob_2 > /dev/null &&
test_must_fail git cat-file blob $blob_3 > /dev/null' test_must_fail git cat-file blob $blob_3 > /dev/null
'


test_expect_success \ test_expect_success '... but having a loose copy allows for full recovery' '
'... but having a loose copy allows for full recovery' \ mv ${pack}.idx tmp &&
'mv ${pack}.idx tmp &&
git hash-object -t blob -w file_1 && git hash-object -t blob -w file_1 &&
mv tmp ${pack}.idx && mv tmp ${pack}.idx &&
git cat-file blob $blob_1 > /dev/null && git cat-file blob $blob_1 > /dev/null &&
git cat-file blob $blob_2 > /dev/null && git cat-file blob $blob_2 > /dev/null &&
git cat-file blob $blob_3 > /dev/null' git cat-file blob $blob_3 > /dev/null
'


test_expect_success \ test_expect_success '... and loose copy of second object allows for partial recovery' '
'... and loose copy of second object allows for partial recovery' \ git prune-packed &&
'git prune-packed &&
test_must_fail git cat-file blob $blob_2 > /dev/null && test_must_fail git cat-file blob $blob_2 > /dev/null &&
mv ${pack}.idx tmp && mv ${pack}.idx tmp &&
git hash-object -t blob -w file_2 && git hash-object -t blob -w file_2 &&
mv tmp ${pack}.idx && mv tmp ${pack}.idx &&
test_must_fail git cat-file blob $blob_1 > /dev/null && test_must_fail git cat-file blob $blob_1 > /dev/null &&
git cat-file blob $blob_2 > /dev/null && git cat-file blob $blob_2 > /dev/null &&
git cat-file blob $blob_3 > /dev/null' git cat-file blob $blob_3 > /dev/null
'


test_expect_success \ test_expect_success 'create corruption in header of first delta' '
'create corruption in header of first delta' \ create_new_pack &&
'create_new_pack &&
git prune-packed && git prune-packed &&
do_corrupt_object $blob_2 0 < zero && do_corrupt_object $blob_2 0 < zero &&
git cat-file blob $blob_1 > /dev/null && git cat-file blob $blob_1 > /dev/null &&
test_must_fail git cat-file blob $blob_2 > /dev/null && test_must_fail git cat-file blob $blob_2 > /dev/null &&
test_must_fail git cat-file blob $blob_3 > /dev/null' test_must_fail git cat-file blob $blob_3 > /dev/null
'


test_expect_success \ test_expect_success '... but having a loose copy allows for full recovery' '
'... but having a loose copy allows for full recovery' \ mv ${pack}.idx tmp &&
'mv ${pack}.idx tmp &&
git hash-object -t blob -w file_2 && git hash-object -t blob -w file_2 &&
mv tmp ${pack}.idx && mv tmp ${pack}.idx &&
git cat-file blob $blob_1 > /dev/null && git cat-file blob $blob_1 > /dev/null &&
git cat-file blob $blob_2 > /dev/null && git cat-file blob $blob_2 > /dev/null &&
git cat-file blob $blob_3 > /dev/null' git cat-file blob $blob_3 > /dev/null
'


test_expect_success \ test_expect_success '... and then a repack "clears" the corruption' '
'... and then a repack "clears" the corruption' \ do_repack &&
'do_repack &&
git prune-packed && git prune-packed &&
git verify-pack ${pack}.pack && git verify-pack ${pack}.pack &&
git cat-file blob $blob_1 > /dev/null && git cat-file blob $blob_1 > /dev/null &&
git cat-file blob $blob_2 > /dev/null && git cat-file blob $blob_2 > /dev/null &&
git cat-file blob $blob_3 > /dev/null' git cat-file blob $blob_3 > /dev/null
'


test_expect_success \ test_expect_success 'create corruption in data of first delta' '
'create corruption in data of first delta' \ create_new_pack &&
'create_new_pack &&
git prune-packed && git prune-packed &&
chmod +w ${pack}.pack && chmod +w ${pack}.pack &&
perl -i.bak -pe "s/ delta1 /abcdefgh/" ${pack}.pack && perl -i.bak -pe "s/ delta1 /abcdefgh/" ${pack}.pack &&
git cat-file blob $blob_1 > /dev/null && git cat-file blob $blob_1 > /dev/null &&
test_must_fail git cat-file blob $blob_2 > /dev/null && test_must_fail git cat-file blob $blob_2 > /dev/null &&
test_must_fail git cat-file blob $blob_3 > /dev/null' test_must_fail git cat-file blob $blob_3 > /dev/null
'


test_expect_success \ test_expect_success '... but having a loose copy allows for full recovery' '
'... but having a loose copy allows for full recovery' \ mv ${pack}.idx tmp &&
'mv ${pack}.idx tmp &&
git hash-object -t blob -w file_2 && git hash-object -t blob -w file_2 &&
mv tmp ${pack}.idx && mv tmp ${pack}.idx &&
git cat-file blob $blob_1 > /dev/null && git cat-file blob $blob_1 > /dev/null &&
git cat-file blob $blob_2 > /dev/null && git cat-file blob $blob_2 > /dev/null &&
git cat-file blob $blob_3 > /dev/null' git cat-file blob $blob_3 > /dev/null
'


test_expect_success \ test_expect_success '... and then a repack "clears" the corruption' '
'... and then a repack "clears" the corruption' \ do_repack &&
'do_repack &&
git prune-packed && git prune-packed &&
git verify-pack ${pack}.pack && git verify-pack ${pack}.pack &&
git cat-file blob $blob_1 > /dev/null && git cat-file blob $blob_1 > /dev/null &&
git cat-file blob $blob_2 > /dev/null && git cat-file blob $blob_2 > /dev/null &&
git cat-file blob $blob_3 > /dev/null' git cat-file blob $blob_3 > /dev/null
'


test_expect_success \ test_expect_success 'corruption in delta base reference of first delta (OBJ_REF_DELTA)' '
'corruption in delta base reference of first delta (OBJ_REF_DELTA)' \ create_new_pack &&
'create_new_pack &&
git prune-packed && git prune-packed &&
do_corrupt_object $blob_2 2 < zero && do_corrupt_object $blob_2 2 < zero &&
git cat-file blob $blob_1 > /dev/null && git cat-file blob $blob_1 > /dev/null &&
test_must_fail git cat-file blob $blob_2 > /dev/null && test_must_fail git cat-file blob $blob_2 > /dev/null &&
test_must_fail git cat-file blob $blob_3 > /dev/null' test_must_fail git cat-file blob $blob_3 > /dev/null
'


test_expect_success \ test_expect_success '... but having a loose copy allows for full recovery' '
'... but having a loose copy allows for full recovery' \ mv ${pack}.idx tmp &&
'mv ${pack}.idx tmp &&
git hash-object -t blob -w file_2 && git hash-object -t blob -w file_2 &&
mv tmp ${pack}.idx && mv tmp ${pack}.idx &&
git cat-file blob $blob_1 > /dev/null && git cat-file blob $blob_1 > /dev/null &&
git cat-file blob $blob_2 > /dev/null && git cat-file blob $blob_2 > /dev/null &&
git cat-file blob $blob_3 > /dev/null' git cat-file blob $blob_3 > /dev/null
'


test_expect_success \ test_expect_success '... and then a repack "clears" the corruption' '
'... and then a repack "clears" the corruption' \ do_repack &&
'do_repack &&
git prune-packed && git prune-packed &&
git verify-pack ${pack}.pack && git verify-pack ${pack}.pack &&
git cat-file blob $blob_1 > /dev/null && git cat-file blob $blob_1 > /dev/null &&
git cat-file blob $blob_2 > /dev/null && git cat-file blob $blob_2 > /dev/null &&
git cat-file blob $blob_3 > /dev/null' git cat-file blob $blob_3 > /dev/null
'


test_expect_success \ test_expect_success 'corruption #0 in delta base reference of first delta (OBJ_OFS_DELTA)' '
'corruption #0 in delta base reference of first delta (OBJ_OFS_DELTA)' \ create_new_pack --delta-base-offset &&
'create_new_pack --delta-base-offset &&
git prune-packed && git prune-packed &&
do_corrupt_object $blob_2 2 < zero && do_corrupt_object $blob_2 2 < zero &&
git cat-file blob $blob_1 > /dev/null && git cat-file blob $blob_1 > /dev/null &&
test_must_fail git cat-file blob $blob_2 > /dev/null && test_must_fail git cat-file blob $blob_2 > /dev/null &&
test_must_fail git cat-file blob $blob_3 > /dev/null' test_must_fail git cat-file blob $blob_3 > /dev/null
'


test_expect_success \ test_expect_success '... but having a loose copy allows for full recovery' '
'... but having a loose copy allows for full recovery' \ mv ${pack}.idx tmp &&
'mv ${pack}.idx tmp &&
git hash-object -t blob -w file_2 && git hash-object -t blob -w file_2 &&
mv tmp ${pack}.idx && mv tmp ${pack}.idx &&
git cat-file blob $blob_1 > /dev/null && git cat-file blob $blob_1 > /dev/null &&
git cat-file blob $blob_2 > /dev/null && git cat-file blob $blob_2 > /dev/null &&
git cat-file blob $blob_3 > /dev/null' git cat-file blob $blob_3 > /dev/null
'


test_expect_success \ test_expect_success '... and then a repack "clears" the corruption' '
'... and then a repack "clears" the corruption' \ do_repack --delta-base-offset &&
'do_repack --delta-base-offset &&
git prune-packed && git prune-packed &&
git verify-pack ${pack}.pack && git verify-pack ${pack}.pack &&
git cat-file blob $blob_1 > /dev/null && git cat-file blob $blob_1 > /dev/null &&
git cat-file blob $blob_2 > /dev/null && git cat-file blob $blob_2 > /dev/null &&
git cat-file blob $blob_3 > /dev/null' git cat-file blob $blob_3 > /dev/null
'


test_expect_success \ test_expect_success 'corruption #1 in delta base reference of first delta (OBJ_OFS_DELTA)' '
'corruption #1 in delta base reference of first delta (OBJ_OFS_DELTA)' \ create_new_pack --delta-base-offset &&
'create_new_pack --delta-base-offset &&
git prune-packed && git prune-packed &&
printf "\001" | do_corrupt_object $blob_2 2 && printf "\001" | do_corrupt_object $blob_2 2 &&
git cat-file blob $blob_1 > /dev/null && git cat-file blob $blob_1 > /dev/null &&
test_must_fail git cat-file blob $blob_2 > /dev/null && test_must_fail git cat-file blob $blob_2 > /dev/null &&
test_must_fail git cat-file blob $blob_3 > /dev/null' test_must_fail git cat-file blob $blob_3 > /dev/null
'


test_expect_success \ test_expect_success '... but having a loose copy allows for full recovery' '
'... but having a loose copy allows for full recovery' \ mv ${pack}.idx tmp &&
'mv ${pack}.idx tmp &&
git hash-object -t blob -w file_2 && git hash-object -t blob -w file_2 &&
mv tmp ${pack}.idx && mv tmp ${pack}.idx &&
git cat-file blob $blob_1 > /dev/null && git cat-file blob $blob_1 > /dev/null &&
git cat-file blob $blob_2 > /dev/null && git cat-file blob $blob_2 > /dev/null &&
git cat-file blob $blob_3 > /dev/null' git cat-file blob $blob_3 > /dev/null
'


test_expect_success \ test_expect_success '... and then a repack "clears" the corruption' '
'... and then a repack "clears" the corruption' \ do_repack --delta-base-offset &&
'do_repack --delta-base-offset &&
git prune-packed && git prune-packed &&
git verify-pack ${pack}.pack && git verify-pack ${pack}.pack &&
git cat-file blob $blob_1 > /dev/null && git cat-file blob $blob_1 > /dev/null &&
git cat-file blob $blob_2 > /dev/null && git cat-file blob $blob_2 > /dev/null &&
git cat-file blob $blob_3 > /dev/null' git cat-file blob $blob_3 > /dev/null
'


test_expect_success \ test_expect_success '... and a redundant pack allows for full recovery too' '
'... and a redundant pack allows for full recovery too' \ do_corrupt_object $blob_2 2 < zero &&
'do_corrupt_object $blob_2 2 < zero &&
git cat-file blob $blob_1 > /dev/null && git cat-file blob $blob_1 > /dev/null &&
test_must_fail git cat-file blob $blob_2 > /dev/null && test_must_fail git cat-file blob $blob_2 > /dev/null &&
test_must_fail git cat-file blob $blob_3 > /dev/null && test_must_fail git cat-file blob $blob_3 > /dev/null &&
@ -275,88 +274,89 @@ test_expect_success \
mv tmp ${pack}.idx && mv tmp ${pack}.idx &&
git cat-file blob $blob_1 > /dev/null && git cat-file blob $blob_1 > /dev/null &&
git cat-file blob $blob_2 > /dev/null && git cat-file blob $blob_2 > /dev/null &&
git cat-file blob $blob_3 > /dev/null' git cat-file blob $blob_3 > /dev/null
'


test_expect_success \ test_expect_success 'corruption of delta base reference pointing to wrong object' '
'corruption of delta base reference pointing to wrong object' \ create_new_pack --delta-base-offset &&
'create_new_pack --delta-base-offset &&
git prune-packed && git prune-packed &&
printf "\220\033" | do_corrupt_object $blob_3 2 && printf "\220\033" | do_corrupt_object $blob_3 2 &&
git cat-file blob $blob_1 >/dev/null && git cat-file blob $blob_1 >/dev/null &&
git cat-file blob $blob_2 >/dev/null && git cat-file blob $blob_2 >/dev/null &&
test_must_fail git cat-file blob $blob_3 >/dev/null' test_must_fail git cat-file blob $blob_3 >/dev/null
'


test_expect_success \ test_expect_success '... but having a loose copy allows for full recovery' '
'... but having a loose copy allows for full recovery' \ mv ${pack}.idx tmp &&
'mv ${pack}.idx tmp &&
git hash-object -t blob -w file_3 && git hash-object -t blob -w file_3 &&
mv tmp ${pack}.idx && mv tmp ${pack}.idx &&
git cat-file blob $blob_1 > /dev/null && git cat-file blob $blob_1 > /dev/null &&
git cat-file blob $blob_2 > /dev/null && git cat-file blob $blob_2 > /dev/null &&
git cat-file blob $blob_3 > /dev/null' git cat-file blob $blob_3 > /dev/null
'


test_expect_success \ test_expect_success '... and then a repack "clears" the corruption' '
'... and then a repack "clears" the corruption' \ do_repack --delta-base-offset --no-reuse-delta &&
'do_repack --delta-base-offset --no-reuse-delta &&
git prune-packed && git prune-packed &&
git verify-pack ${pack}.pack && git verify-pack ${pack}.pack &&
git cat-file blob $blob_1 > /dev/null && git cat-file blob $blob_1 > /dev/null &&
git cat-file blob $blob_2 > /dev/null && git cat-file blob $blob_2 > /dev/null &&
git cat-file blob $blob_3 > /dev/null' git cat-file blob $blob_3 > /dev/null
'


test_expect_success \ test_expect_success 'corrupting header to have too small output buffer fails unpack' '
'corrupting header to have too small output buffer fails unpack' \ create_new_pack &&
'create_new_pack &&
git prune-packed && git prune-packed &&
printf "\262\001" | do_corrupt_object $blob_1 0 && printf "\262\001" | do_corrupt_object $blob_1 0 &&
test_must_fail git cat-file blob $blob_1 > /dev/null && test_must_fail git cat-file blob $blob_1 > /dev/null &&
test_must_fail git cat-file blob $blob_2 > /dev/null && test_must_fail git cat-file blob $blob_2 > /dev/null &&
test_must_fail git cat-file blob $blob_3 > /dev/null' test_must_fail git cat-file blob $blob_3 > /dev/null
'


# \0 - empty base # \0 - empty base
# \1 - one byte in result # \1 - one byte in result
# \1 - one literal byte (X) # \1 - one literal byte (X)
test_expect_success \ test_expect_success 'apply good minimal delta' '
'apply good minimal delta' \ printf "\0\1\1X" > minimal_delta &&
'printf "\0\1\1X" > minimal_delta && test-tool delta -p /dev/null minimal_delta /dev/null
test-tool delta -p /dev/null minimal_delta /dev/null' '


# \0 - empty base # \0 - empty base
# \1 - 1 byte in result # \1 - 1 byte in result
# \2 - two literal bytes (one too many) # \2 - two literal bytes (one too many)
test_expect_success \ test_expect_success 'apply delta with too many literal bytes' '
'apply delta with too many literal bytes' \ printf "\0\1\2XX" > too_big_literal &&
'printf "\0\1\2XX" > too_big_literal && test_must_fail test-tool delta -p /dev/null too_big_literal /dev/null
test_must_fail test-tool delta -p /dev/null too_big_literal /dev/null' '


# \4 - four bytes in base # \4 - four bytes in base
# \1 - one byte in result # \1 - one byte in result
# \221 - copy, one byte offset, one byte size # \221 - copy, one byte offset, one byte size
# \0 - copy from offset 0 # \0 - copy from offset 0
# \2 - copy two bytes (one too many) # \2 - copy two bytes (one too many)
test_expect_success \ test_expect_success 'apply delta with too many copied bytes' '
'apply delta with too many copied bytes' \ printf "\4\1\221\0\2" > too_big_copy &&
'printf "\4\1\221\0\2" > too_big_copy &&
printf base >base && printf base >base &&
test_must_fail test-tool delta -p base too_big_copy /dev/null' test_must_fail test-tool delta -p base too_big_copy /dev/null
'


# \0 - empty base # \0 - empty base
# \2 - two bytes in result # \2 - two bytes in result
# \2 - two literal bytes (we are short one) # \2 - two literal bytes (we are short one)
test_expect_success \ test_expect_success 'apply delta with too few literal bytes' '
'apply delta with too few literal bytes' \ printf "\0\2\2X" > truncated_delta &&
'printf "\0\2\2X" > truncated_delta && test_must_fail test-tool delta -p /dev/null truncated_delta /dev/null
test_must_fail test-tool delta -p /dev/null truncated_delta /dev/null' '


# \0 - empty base # \0 - empty base
# \1 - one byte in result # \1 - one byte in result
# \221 - copy, one byte offset, one byte size # \221 - copy, one byte offset, one byte size
# \0 - copy from offset 0 # \0 - copy from offset 0
# \1 - copy one byte (we are short one) # \1 - copy one byte (we are short one)
test_expect_success \ test_expect_success 'apply delta with too few bytes in base' '
'apply delta with too few bytes in base' \ printf "\0\1\221\0\1" > truncated_base &&
'printf "\0\1\221\0\1" > truncated_base && test_must_fail test-tool delta -p /dev/null truncated_base /dev/null
test_must_fail test-tool delta -p /dev/null truncated_base /dev/null' '


# \4 - four bytes in base # \4 - four bytes in base
# \2 - two bytes in result # \2 - two bytes in result
@ -366,20 +366,20 @@ test_expect_success \
# #
# Note that the literal byte is necessary to get past the uninteresting minimum # Note that the literal byte is necessary to get past the uninteresting minimum
# delta size check. # delta size check.
test_expect_success \ test_expect_success 'apply delta with truncated copy parameters' '
'apply delta with truncated copy parameters' \ printf "\4\2\1X\221" > truncated_copy_delta &&
'printf "\4\2\1X\221" > truncated_copy_delta &&
printf base >base && printf base >base &&
test_must_fail test-tool delta -p base truncated_copy_delta /dev/null' test_must_fail test-tool delta -p base truncated_copy_delta /dev/null
'


# \0 - empty base # \0 - empty base
# \1 - one byte in result # \1 - one byte in result
# \1 - one literal byte (X) # \1 - one literal byte (X)
# \1 - trailing garbage command # \1 - trailing garbage command
test_expect_success \ test_expect_success 'apply delta with trailing garbage literal' '
'apply delta with trailing garbage literal' \ printf "\0\1\1X\1" > tail_garbage_literal &&
'printf "\0\1\1X\1" > tail_garbage_literal && test_must_fail test-tool delta -p /dev/null tail_garbage_literal /dev/null
test_must_fail test-tool delta -p /dev/null tail_garbage_literal /dev/null' '


# \4 - four bytes in base # \4 - four bytes in base
# \1 - one byte in result # \1 - one byte in result
@ -387,19 +387,19 @@ test_expect_success \
# \221 - copy, one byte offset, one byte size # \221 - copy, one byte offset, one byte size
# \0 - copy from offset 0 # \0 - copy from offset 0
# \1 - copy 1 byte # \1 - copy 1 byte
test_expect_success \ test_expect_success 'apply delta with trailing garbage copy' '
'apply delta with trailing garbage copy' \ printf "\4\1\1X\221\0\1" > tail_garbage_copy &&
'printf "\4\1\1X\221\0\1" > tail_garbage_copy &&
printf base >base && printf base >base &&
test_must_fail test-tool delta -p /dev/null tail_garbage_copy /dev/null' test_must_fail test-tool delta -p /dev/null tail_garbage_copy /dev/null
'


# \0 - empty base # \0 - empty base
# \1 - one byte in result # \1 - one byte in result
# \1 - one literal byte (X) # \1 - one literal byte (X)
# \0 - bogus opcode # \0 - bogus opcode
test_expect_success \ test_expect_success 'apply delta with trailing garbage opcode' '
'apply delta with trailing garbage opcode' \ printf "\0\1\1X\0" > tail_garbage_opcode &&
'printf "\0\1\1X\0" > tail_garbage_opcode && test_must_fail test-tool delta -p /dev/null tail_garbage_opcode /dev/null
test_must_fail test-tool delta -p /dev/null tail_garbage_opcode /dev/null' '


test_done test_done