#!/bin/sh

test_description='rewrite diff on binary file'

. ./test-lib.sh

# We must be large enough to meet the MINIMUM_BREAK_SIZE
# requirement.
make_file() {
	# common first line to help identify rewrite versus regular diff
	printf "=\n" >file
	for i in 1 2 3 4 5 6 7 8 9 10
	do
		for j in 1 2 3 4 5 6 7 8 9
		do
			for k in 1 2 3 4 5
			do
				printf "$1\n"
			done
		done
	done >>file
}

test_expect_success 'create binary file with changes' '
	make_file "\\0" &&
	git add file &&
	make_file "\\01"
'

test_expect_success 'vanilla diff is binary' '
	git diff >diff &&
	grep "Binary files a/file and b/file differ" diff
'

test_expect_success 'rewrite diff is binary' '
	git diff -B >diff &&
	grep "dissimilarity index" diff &&
	grep "Binary files a/file and b/file differ" diff
'

test_expect_success 'rewrite diff can show binary patch' '
	git diff -B --binary >diff &&
	grep "dissimilarity index" diff &&
	grep "GIT binary patch" diff
'

test_expect_success 'rewrite diff --numstat shows binary changes' '
	git diff -B --numstat --summary >diff &&
	grep -e "-	-	" diff &&
	grep " rewrite file" diff
'

test_expect_success 'diff --stat counts binary rewrite as 0 lines' '
	git diff -B --stat --summary >diff &&
	grep "Bin" diff &&
	test_i18ngrep "0 insertions.*0 deletions" diff &&
	grep " rewrite file" diff
'

{
	echo "#!$SHELL_PATH"
	cat <<'EOF'
"$PERL_PATH" -e '$/ = undef; $_ = <>; s/./ord($&)/ge; print $_' < "$1"
EOF
} >dump
chmod +x dump

test_expect_success 'setup textconv' '
	echo file diff=foo >.gitattributes &&
	git config diff.foo.textconv "\"$(pwd)\""/dump
'

test_expect_success 'rewrite diff respects textconv' '
	git diff -B >diff &&
	grep "dissimilarity index" diff &&
	grep "^-61" diff &&
	grep "^-0" diff
'

test_done
