Mark some tests that match "*apply*" as passing when git is compiled with SANITIZE=leak. They'll now be listed as running under the "GIT_TEST_PASSING_SANITIZE_LEAK=true" test mode (the "linux-leaks" CI target). Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
		
			
				
	
	
		
			182 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			182 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/sh
 | 
						|
#
 | 
						|
# Copyright (c) 2007 Junio C Hamano
 | 
						|
#
 | 
						|
 | 
						|
test_description='git apply --whitespace=strip and configuration file.
 | 
						|
 | 
						|
'
 | 
						|
 | 
						|
 | 
						|
TEST_PASSES_SANITIZE_LEAK=true
 | 
						|
. ./test-lib.sh
 | 
						|
 | 
						|
test_expect_success setup '
 | 
						|
	mkdir sub &&
 | 
						|
	echo A >sub/file1 &&
 | 
						|
	cp sub/file1 saved &&
 | 
						|
	git add sub/file1 &&
 | 
						|
	echo "B " >sub/file1 &&
 | 
						|
	git diff >patch.file
 | 
						|
'
 | 
						|
 | 
						|
# Also handcraft GNU diff output; note this has trailing whitespace.
 | 
						|
tr '_' ' ' >gpatch.file <<\EOF &&
 | 
						|
--- file1	2007-02-21 01:04:24.000000000 -0800
 | 
						|
+++ file1+	2007-02-21 01:07:44.000000000 -0800
 | 
						|
@@ -1 +1 @@
 | 
						|
-A
 | 
						|
+B_
 | 
						|
EOF
 | 
						|
 | 
						|
sed -e 's|file1|sub/&|' gpatch.file >gpatch-sub.file &&
 | 
						|
sed -e '
 | 
						|
	/^--- /s|file1|a/sub/&|
 | 
						|
	/^+++ /s|file1|b/sub/&|
 | 
						|
' gpatch.file >gpatch-ab-sub.file &&
 | 
						|
 | 
						|
check_result () {
 | 
						|
	if grep " " "$1"
 | 
						|
	then
 | 
						|
		echo "Eh?"
 | 
						|
		false
 | 
						|
	elif grep B "$1"
 | 
						|
	then
 | 
						|
		echo Happy
 | 
						|
	else
 | 
						|
		echo "Huh?"
 | 
						|
		false
 | 
						|
	fi
 | 
						|
}
 | 
						|
 | 
						|
test_expect_success 'apply --whitespace=strip' '
 | 
						|
 | 
						|
	rm -f sub/file1 &&
 | 
						|
	cp saved sub/file1 &&
 | 
						|
	git update-index --refresh &&
 | 
						|
 | 
						|
	git apply --whitespace=strip patch.file &&
 | 
						|
	check_result sub/file1
 | 
						|
'
 | 
						|
 | 
						|
test_expect_success 'apply --whitespace=strip from config' '
 | 
						|
 | 
						|
	rm -f sub/file1 &&
 | 
						|
	cp saved sub/file1 &&
 | 
						|
	git update-index --refresh &&
 | 
						|
 | 
						|
	git config apply.whitespace strip &&
 | 
						|
	git apply patch.file &&
 | 
						|
	check_result sub/file1
 | 
						|
'
 | 
						|
 | 
						|
D=$(pwd)
 | 
						|
 | 
						|
test_expect_success 'apply --whitespace=strip in subdir' '
 | 
						|
 | 
						|
	cd "$D" &&
 | 
						|
	git config --unset-all apply.whitespace &&
 | 
						|
	rm -f sub/file1 &&
 | 
						|
	cp saved sub/file1 &&
 | 
						|
	git update-index --refresh &&
 | 
						|
 | 
						|
	cd sub &&
 | 
						|
	git apply --whitespace=strip ../patch.file &&
 | 
						|
	check_result file1
 | 
						|
'
 | 
						|
 | 
						|
test_expect_success 'apply --whitespace=strip from config in subdir' '
 | 
						|
 | 
						|
	cd "$D" &&
 | 
						|
	git config apply.whitespace strip &&
 | 
						|
	rm -f sub/file1 &&
 | 
						|
	cp saved sub/file1 &&
 | 
						|
	git update-index --refresh &&
 | 
						|
 | 
						|
	cd sub &&
 | 
						|
	git apply ../patch.file &&
 | 
						|
	check_result file1
 | 
						|
'
 | 
						|
 | 
						|
test_expect_success 'same in subdir but with traditional patch input' '
 | 
						|
 | 
						|
	cd "$D" &&
 | 
						|
	git config apply.whitespace strip &&
 | 
						|
	rm -f sub/file1 &&
 | 
						|
	cp saved sub/file1 &&
 | 
						|
	git update-index --refresh &&
 | 
						|
 | 
						|
	cd sub &&
 | 
						|
	git apply ../gpatch.file &&
 | 
						|
	check_result file1
 | 
						|
'
 | 
						|
 | 
						|
test_expect_success 'same but with traditional patch input of depth 1' '
 | 
						|
 | 
						|
	cd "$D" &&
 | 
						|
	git config apply.whitespace strip &&
 | 
						|
	rm -f sub/file1 &&
 | 
						|
	cp saved sub/file1 &&
 | 
						|
	git update-index --refresh &&
 | 
						|
 | 
						|
	cd sub &&
 | 
						|
	git apply ../gpatch-sub.file &&
 | 
						|
	check_result file1
 | 
						|
'
 | 
						|
 | 
						|
test_expect_success 'same but with traditional patch input of depth 2' '
 | 
						|
 | 
						|
	cd "$D" &&
 | 
						|
	git config apply.whitespace strip &&
 | 
						|
	rm -f sub/file1 &&
 | 
						|
	cp saved sub/file1 &&
 | 
						|
	git update-index --refresh &&
 | 
						|
 | 
						|
	cd sub &&
 | 
						|
	git apply ../gpatch-ab-sub.file &&
 | 
						|
	check_result file1
 | 
						|
'
 | 
						|
 | 
						|
test_expect_success 'same but with traditional patch input of depth 1' '
 | 
						|
 | 
						|
	cd "$D" &&
 | 
						|
	git config apply.whitespace strip &&
 | 
						|
	rm -f sub/file1 &&
 | 
						|
	cp saved sub/file1 &&
 | 
						|
	git update-index --refresh &&
 | 
						|
 | 
						|
	git apply -p0 gpatch-sub.file &&
 | 
						|
	check_result sub/file1
 | 
						|
'
 | 
						|
 | 
						|
test_expect_success 'same but with traditional patch input of depth 2' '
 | 
						|
 | 
						|
	cd "$D" &&
 | 
						|
	git config apply.whitespace strip &&
 | 
						|
	rm -f sub/file1 &&
 | 
						|
	cp saved sub/file1 &&
 | 
						|
	git update-index --refresh &&
 | 
						|
 | 
						|
	git apply gpatch-ab-sub.file &&
 | 
						|
	check_result sub/file1
 | 
						|
'
 | 
						|
 | 
						|
test_expect_success 'in subdir with traditional patch input' '
 | 
						|
	cd "$D" &&
 | 
						|
	git config apply.whitespace strip &&
 | 
						|
	cat >.gitattributes <<-EOF &&
 | 
						|
	/* whitespace=blank-at-eol
 | 
						|
	sub/* whitespace=-blank-at-eol
 | 
						|
	EOF
 | 
						|
	rm -f sub/file1 &&
 | 
						|
	cp saved sub/file1 &&
 | 
						|
	git update-index --refresh &&
 | 
						|
 | 
						|
	cd sub &&
 | 
						|
	git apply ../gpatch.file &&
 | 
						|
	echo "B " >expect &&
 | 
						|
	test_cmp expect file1
 | 
						|
'
 | 
						|
 | 
						|
test_done
 |