diff options
Diffstat (limited to 't/t4103-apply-binary.sh')
| -rwxr-xr-x | t/t4103-apply-binary.sh | 54 | 
1 files changed, 33 insertions, 21 deletions
diff --git a/t/t4103-apply-binary.sh b/t/t4103-apply-binary.sh index 99627bc6d6..b1b906b1bb 100755 --- a/t/t4103-apply-binary.sh +++ b/t/t4103-apply-binary.sh @@ -8,30 +8,28 @@ test_description='git apply handling binary patches  '  . ./test-lib.sh -# setup - -cat >file1 <<EOF -A quick brown fox jumps over the lazy dog. -A tiny little penguin runs around in circles. -There is a flag with Linux written on it. -A slow black-and-white panda just sits there, -munching on his bamboo. -EOF -cat file1 >file2 -cat file1 >file4 - -test_expect_success 'setup' " +test_expect_success 'setup' ' +	cat >file1 <<-\EOF && +	A quick brown fox jumps over the lazy dog. +	A tiny little penguin runs around in circles. +	There is a flag with Linux written on it. +	A slow black-and-white panda just sits there, +	munching on his bamboo. +	EOF +	cat file1 >file2 && +	cat file1 >file4 && +  	git update-index --add --remove file1 file2 file4 && -	git commit -m 'Initial Version' 2>/dev/null && +	git commit -m "Initial Version" 2>/dev/null &&  	git checkout -b binary && -	"$PERL_PATH" -pe 'y/x/\000/' <file1 >file3 && +	"$PERL_PATH" -pe "y/x/\000/" <file1 >file3 &&  	cat file3 >file4 &&  	git add file2 && -	"$PERL_PATH" -pe 'y/\000/v/' <file3 >file1 && +	"$PERL_PATH" -pe "y/\000/v/" <file3 >file1 &&  	rm -f file2 &&  	git update-index --add --remove file1 file2 file3 file4 && -	git commit -m 'Second Version' && +	git commit -m "Second Version" &&  	git diff-tree -p master binary >B.diff &&  	git diff-tree -p -C master binary >C.diff && @@ -42,17 +40,25 @@ test_expect_success 'setup' "  	git diff-tree -p --full-index master binary >B-index.diff &&  	git diff-tree -p -C --full-index master binary >C-index.diff && +	git diff-tree -p --binary --no-prefix master binary -- file3 >B0.diff && +  	git init other-repo && -	(cd other-repo && -	 git fetch .. master && -	 git reset --hard FETCH_HEAD +	( +		cd other-repo && +		git fetch .. master && +		git reset --hard FETCH_HEAD  	) -" +'  test_expect_success 'stat binary diff -- should not fail.' \  	'git checkout master &&  	 git apply --stat --summary B.diff' +test_expect_success 'stat binary -p0 diff -- should not fail.' ' +	 git checkout master && +	 git apply --stat -p0 B0.diff +' +  test_expect_success 'stat binary diff (copy) -- should not fail.' \  	'git checkout master &&  	 git apply --stat --summary C.diff' @@ -143,4 +149,10 @@ test_expect_success 'apply binary diff (copy).' \  	 git apply --allow-binary-replacement --index CF.diff &&  	 test -z "$(git diff --name-status binary)"' +test_expect_success 'apply binary -p0 diff' ' +	do_reset && +	git apply -p0 --index B0.diff && +	test -z "$(git diff --name-status binary -- file3)" +' +  test_done  | 
