Revision 51a94af845cb3f797abd638478834721d7295af7 authored by Junio C Hamano on 17 October 2008, 06:37:44 UTC, committed by Junio C Hamano on 17 October 2008, 21:35:06 UTC
The test to make sure that checkout fails when --track was asked for and
we cannot set up tracking information in t7201 was wrong, and it turns out
that the implementation for that feature itself was buggy.  This fixes it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent 8ed0a74
Raw File
t4024-diff-optimize-common.sh
#!/bin/sh

test_description='common tail optimization'

. ./test-lib.sh

z=zzzzzzzz ;# 8
z="$z$z$z$z$z$z$z$z" ;# 64
z="$z$z$z$z$z$z$z$z" ;# 512
z="$z$z$z$z" ;# 2048
z2047=$(expr "$z" : '.\(.*\)') ; #2047

x=zzzzzzzzzz			;# 10
y="$x$x$x$x$x$x$x$x$x$x"	;# 100
z="$y$y$y$y$y$y$y$y$y$y"	;# 1000
z1000=$z
z100=$y
z10=$x

zs() {
	count="$1"
	while test "$count" -ge 1000
	do
		count=$(($count - 1000))
		printf "%s" $z1000
	done
	while test "$count" -ge 100
	do
		count=$(($count - 100))
		printf "%s" $z100
	done
	while test "$count" -ge 10
	do
		count=$(($count - 10))
		printf "%s" $z10
	done
	while test "$count" -ge 1
	do
		count=$(($count - 1))
		printf "z"
	done
}

zc () {
	sed -e "/^index/d" \
		-e "s/$z1000/Q/g" \
		-e "s/QQQQQQQQQ/Z9000/g" \
		-e "s/QQQQQQQQ/Z8000/g" \
		-e "s/QQQQQQQ/Z7000/g" \
		-e "s/QQQQQQ/Z6000/g" \
		-e "s/QQQQQ/Z5000/g" \
		-e "s/QQQQ/Z4000/g" \
		-e "s/QQQ/Z3000/g" \
		-e "s/QQ/Z2000/g" \
		-e "s/Q/Z1000/g" \
		-e "s/$z100/Q/g" \
		-e "s/QQQQQQQQQ/Z900/g" \
		-e "s/QQQQQQQQ/Z800/g" \
		-e "s/QQQQQQQ/Z700/g" \
		-e "s/QQQQQQ/Z600/g" \
		-e "s/QQQQQ/Z500/g" \
		-e "s/QQQQ/Z400/g" \
		-e "s/QQQ/Z300/g" \
		-e "s/QQ/Z200/g" \
		-e "s/Q/Z100/g" \
		-e "s/000Z//g" \
		-e "s/$z10/Q/g" \
		-e "s/QQQQQQQQQ/Z90/g" \
		-e "s/QQQQQQQQ/Z80/g" \
		-e "s/QQQQQQQ/Z70/g" \
		-e "s/QQQQQQ/Z60/g" \
		-e "s/QQQQQ/Z50/g" \
		-e "s/QQQQ/Z40/g" \
		-e "s/QQQ/Z30/g" \
		-e "s/QQ/Z20/g" \
		-e "s/Q/Z10/g" \
		-e "s/00Z//g" \
		-e "s/z/Q/g" \
		-e "s/QQQQQQQQQ/Z9/g" \
		-e "s/QQQQQQQQ/Z8/g" \
		-e "s/QQQQQQQ/Z7/g" \
		-e "s/QQQQQQ/Z6/g" \
		-e "s/QQQQQ/Z5/g" \
		-e "s/QQQQ/Z4/g" \
		-e "s/QQQ/Z3/g" \
		-e "s/QQ/Z2/g" \
		-e "s/Q/Z1/g" \
		-e "s/0Z//g" \
	;
}

expect_pattern () {
	cnt="$1"
	cat <<EOF
diff --git a/file-a$cnt b/file-a$cnt
--- a/file-a$cnt
+++ b/file-a$cnt
@@ -1 +1 @@
-Z${cnt}a
+Z${cnt}A
diff --git a/file-b$cnt b/file-b$cnt
--- a/file-b$cnt
+++ b/file-b$cnt
@@ -1 +1 @@
-b
+B
diff --git a/file-c$cnt b/file-c$cnt
--- a/file-c$cnt
+++ b/file-c$cnt
@@ -1 +1 @@
-cZ$cnt
\ No newline at end of file
+CZ$cnt
\ No newline at end of file
diff --git a/file-d$cnt b/file-d$cnt
--- a/file-d$cnt
+++ b/file-d$cnt
@@ -1 +1 @@
-d
+D
EOF
}

sample='1023 1024 1025 2047 4095'

test_expect_success setup '

	for n in $sample
	do
		( zs $n ; echo a ) >file-a$n &&
		( echo b; zs $n; echo ) >file-b$n &&
		( printf c; zs $n ) >file-c$n &&
		( echo d; zs $n ) >file-d$n &&

		git add file-a$n file-b$n file-c$n file-d$n &&

		( zs $n ; echo A ) >file-a$n &&
		( echo B; zs $n; echo ) >file-b$n &&
		( printf C; zs $n ) >file-c$n &&
		( echo D; zs $n ) >file-d$n &&

		expect_pattern $n || break

	done >expect
'

test_expect_success 'diff -U0' '

	for n in $sample
	do
		git diff -U0 file-?$n
	done | zc >actual &&
	test_cmp expect actual

'

test_done
back to top