#!/bin/sh
#
# Copyright (c) 2006 Junio C Hamano
#

test_description='Binary diff and apply
'

. ./test-lib.sh

cat >expect.binary-numstat <<\EOF
1	1	a
-	-	b
1	1	c
-	-	d
EOF

test_expect_success 'prepare repository' \
	'echo AIT >a && echo BIT >b && echo CIT >c && echo DIT >d &&
	 git update-index --add a b c d &&
	 echo git >a &&
	 cat "$TEST_DIRECTORY"/test-binary-1.png >b &&
	 echo git >c &&
	 cat b b >d'

cat > expected <<\EOF
 a |    2 +-
 b |  Bin
 c |    2 +-
 d |  Bin
 4 files changed, 2 insertions(+), 2 deletions(-)
EOF
test_expect_success '"apply --stat" output for binary file change' '
	git diff >diff &&
	git apply --stat --summary <diff >current &&
	test_i18ncmp expected current
'

test_expect_success 'diff --shortstat output for binary file change' '
	echo " 4 files changed, 2 insertions(+), 2 deletions(-)" >expected &&
	git diff --shortstat >current &&
	test_i18ncmp expected current
'

test_expect_success 'diff --shortstat output for binary file change only' '
	echo " 1 file changed, 0 insertions(+), 0 deletions(-)" >expected &&
	git diff --shortstat -- b >current &&
	test_i18ncmp expected current
'

test_expect_success 'apply --numstat notices binary file change' '
	git diff >diff &&
	git apply --numstat <diff >current &&
	test_cmp expect.binary-numstat current
'

test_expect_success 'apply --numstat understands diff --binary format' '
	git diff --binary >diff &&
	git apply --numstat <diff >current &&
	test_cmp expect.binary-numstat current
'

# apply needs to be able to skip the binary material correctly
# in order to report the line number of a corrupt patch.
test_expect_success 'apply detecting corrupt patch correctly' \
	'git diff | sed -e 's/-CIT/xCIT/' >broken &&
	 if git apply --stat --summary broken 2>detected
	 then
		echo unhappy - should have detected an error
		(exit 1)
	 else
		echo happy
	 fi &&
	 detected=`cat detected` &&
	 detected=`expr "$detected" : "fatal.*at line \\([0-9]*\\)\$"` &&
	 detected=`sed -ne "${detected}p" broken` &&
	 test "$detected" = xCIT'

test_expect_success 'apply detecting corrupt patch correctly' \
	'git diff --binary | sed -e 's/-CIT/xCIT/' >broken &&
	 if git apply --stat --summary broken 2>detected
	 then
		echo unhappy - should have detected an error
		(exit 1)
	 else
		echo happy
	 fi &&
	 detected=`cat detected` &&
	 detected=`expr "$detected" : "fatal.*at line \\([0-9]*\\)\$"` &&
	 detected=`sed -ne "${detected}p" broken` &&
	 test "$detected" = xCIT'

test_expect_success 'initial commit' 'git commit -a -m initial'

# Try removal (b), modification (d), and creation (e).
test_expect_success 'diff-index with --binary' \
	'echo AIT >a && mv b e && echo CIT >c && cat e >d &&
	 git update-index --add --remove a b c d e &&
	 tree0=`git write-tree` &&
	 git diff --cached --binary >current &&
	 git apply --stat --summary current'

test_expect_success 'apply binary patch' \
	'git reset --hard &&
	 git apply --binary --index <current &&
	 tree1=`git write-tree` &&
	 test "$tree1" = "$tree0"'

test_expect_success 'diff --no-index with binary creation' '
	echo Q | q_to_nul >binary &&
	(: hide error code from diff, which just indicates differences
	 git diff --binary --no-index /dev/null binary >current ||
	 true
	) &&
	rm binary &&
	git apply --binary <current &&
	echo Q >expected &&
	nul_to_q <binary >actual &&
	test_cmp expected actual
'

cat >expect <<EOF
 binfile  |   Bin 0 -> 1026 bytes
 textfile | 10000 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
EOF

test_expect_success 'diff --stat with binary files and big change count' '
	echo X | dd of=binfile bs=1k seek=1 &&
	git add binfile &&
	i=0 &&
	while test $i -lt 10000; do
		echo $i &&
		i=$(($i + 1))
	done >textfile &&
	git add textfile &&
	git diff --cached --stat binfile textfile >output &&
	grep " | " output >actual &&
	test_cmp expect actual
'

test_done
