As a general principle, we should not use "git diff" to validate the results of what git command that is being tested has done. We would not know if we are testing the command in question, or locating a bug in the cute hack of "git diff --no-index". Rather use test_cmp for that purpose. Signed-off-by: Junio C Hamano <gitster@pobox.com>
		
			
				
	
	
		
			71 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/sh
 | 
						|
#
 | 
						|
# Copyright (c) 2007 Junio C Hamano
 | 
						|
#
 | 
						|
 | 
						|
test_description='Quoting paths in diff output.
 | 
						|
'
 | 
						|
 | 
						|
. ./test-lib.sh
 | 
						|
 | 
						|
P0='pathname'
 | 
						|
P1='pathname	with HT'
 | 
						|
P2='pathname with SP'
 | 
						|
P3='pathname
 | 
						|
with LF'
 | 
						|
: >"$P1" 2>&1 && test -f "$P1" && rm -f "$P1" || {
 | 
						|
	echo >&2 'Filesystem does not support tabs in names'
 | 
						|
	test_done
 | 
						|
}
 | 
						|
 | 
						|
test_expect_success setup '
 | 
						|
	echo P0.0 >"$P0.0" &&
 | 
						|
	echo P0.1 >"$P0.1" &&
 | 
						|
	echo P0.2 >"$P0.2" &&
 | 
						|
	echo P0.3 >"$P0.3" &&
 | 
						|
	echo P1.0 >"$P1.0" &&
 | 
						|
	echo P1.2 >"$P1.2" &&
 | 
						|
	echo P1.3 >"$P1.3" &&
 | 
						|
	git add . &&
 | 
						|
	git commit -m initial &&
 | 
						|
	git mv "$P0.0" "R$P0.0" &&
 | 
						|
	git mv "$P0.1" "R$P1.0" &&
 | 
						|
	git mv "$P0.2" "R$P2.0" &&
 | 
						|
	git mv "$P0.3" "R$P3.0" &&
 | 
						|
	git mv "$P1.0" "R$P0.1" &&
 | 
						|
	git mv "$P1.2" "R$P2.1" &&
 | 
						|
	git mv "$P1.3" "R$P3.1" &&
 | 
						|
	:
 | 
						|
'
 | 
						|
 | 
						|
cat >expect <<\EOF
 | 
						|
 rename pathname.1 => "Rpathname\twith HT.0" (100%)
 | 
						|
 rename pathname.3 => "Rpathname\nwith LF.0" (100%)
 | 
						|
 rename "pathname\twith HT.3" => "Rpathname\nwith LF.1" (100%)
 | 
						|
 rename pathname.2 => Rpathname with SP.0 (100%)
 | 
						|
 rename "pathname\twith HT.2" => Rpathname with SP.1 (100%)
 | 
						|
 rename pathname.0 => Rpathname.0 (100%)
 | 
						|
 rename "pathname\twith HT.0" => Rpathname.1 (100%)
 | 
						|
EOF
 | 
						|
test_expect_success 'git diff --summary -M HEAD' '
 | 
						|
	git diff --summary -M HEAD >actual &&
 | 
						|
	test_cmp expect actual
 | 
						|
'
 | 
						|
 | 
						|
cat >expect <<\EOF
 | 
						|
 pathname.1 => "Rpathname\twith HT.0"            |    0 
 | 
						|
 pathname.3 => "Rpathname\nwith LF.0"            |    0 
 | 
						|
 "pathname\twith HT.3" => "Rpathname\nwith LF.1" |    0 
 | 
						|
 pathname.2 => Rpathname with SP.0               |    0 
 | 
						|
 "pathname\twith HT.2" => Rpathname with SP.1    |    0 
 | 
						|
 pathname.0 => Rpathname.0                       |    0 
 | 
						|
 "pathname\twith HT.0" => Rpathname.1            |    0 
 | 
						|
 7 files changed, 0 insertions(+), 0 deletions(-)
 | 
						|
EOF
 | 
						|
test_expect_success 'git diff --stat -M HEAD' '
 | 
						|
	git diff --stat -M HEAD >actual &&
 | 
						|
	test_cmp expect actual
 | 
						|
'
 | 
						|
 | 
						|
test_done
 |