On Thu, Aug 30, 2018 at 02:42:01PM -0400, Jeff King wrote:
> > Would "echo base >base" give us 5-byte long base even on Windows?
> > Or the test does not care if it is either "base\n" or "base\r\n"?
> >
> > Just double-checking.
>
> Good question. On the first one, I don't know. On the second one, yes,
> it does matter. We'd feed "6" to patch_delta(), and it would complain
> about the mismatch before actually hitting the code we're trying to
> exercise. The test would still pass (the error result is the same either
> way), but would quietly not test what we wanted.
>
> Maybe something like this to be on the safe side?
That could be squashed into patch 2. Patch 4 would need this one
additional case:
diff --git a/t/t5303-pack-corruption-resilience.sh
b/t/t5303-pack-corruption-resilience.sh
index 0c537958e7..e91d6f5770 100755
--- a/t/t5303-pack-corruption-resilience.sh
+++ b/t/t5303-pack-corruption-resilience.sh
@@ -379,7 +379,7 @@ test_expect_success \
'printf "\0\1\1X\1" > tail_garbage_literal &&
test_must_fail test-tool delta -p /dev/null tail_garbage_literal
/dev/null'
-# \5 - five bytes in base
+# \4 - four bytes in base
# \1 - one byte in result
# \1 - one literal byte (X)
# \221 - copy, one byte offset, one byte size
@@ -387,8 +387,8 @@ test_expect_success \
# \1 - copy 1 byte
test_expect_success \
'apply delta with trailing garbage copy' \
- 'printf "\5\1\1X\221\0\1" > tail_garbage_copy &&
- echo base >base &&
+ 'printf "\4\1\1X\221\0\1" > tail_garbage_copy &&
+ printf base >base &&
test_must_fail test-tool delta -p /dev/null tail_garbage_copy /dev/null'
# \0 - empty base
I can re-roll, or even prepare a patch on top (it's sufficiently subtle
that it may merit calling out explicitly in a commit).
-Peff