Many scripts compare actual and expected output using "diff -u". This is nicer than "cmp" because the output shows how the two differ. However, not all versions of diff understand -u, leading to unnecessary test failure. This adds a test_cmp function to the test scripts and switches all "diff -u" invocations to use it. The function uses the contents of "$GIT_TEST_CMP" to compare its arguments; the default is "diff -u". On systems with a less-capable diff, you can do: GIT_TEST_CMP=cmp make test Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
		
			
				
	
	
		
			68 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/sh
 | 
						|
 | 
						|
test_description='ask merge-recursive to merge binary files'
 | 
						|
 | 
						|
. ./test-lib.sh
 | 
						|
 | 
						|
test_expect_success setup '
 | 
						|
 | 
						|
	cat ../test4012.png >m &&
 | 
						|
	git add m &&
 | 
						|
	git ls-files -s | sed -e "s/ 0	/ 1	/" >E1 &&
 | 
						|
	test_tick &&
 | 
						|
	git commit -m "initial" &&
 | 
						|
 | 
						|
	git branch side &&
 | 
						|
	echo frotz >a &&
 | 
						|
	git add a &&
 | 
						|
	echo nitfol >>m &&
 | 
						|
	git add a m &&
 | 
						|
	git ls-files -s a >E0 &&
 | 
						|
	git ls-files -s m | sed -e "s/ 0	/ 3	/" >E3 &&
 | 
						|
	test_tick &&
 | 
						|
	git commit -m "master adds some" &&
 | 
						|
 | 
						|
	git checkout side &&
 | 
						|
	echo rezrov >>m &&
 | 
						|
	git add m &&
 | 
						|
	git ls-files -s m | sed -e "s/ 0	/ 2	/" >E2 &&
 | 
						|
	test_tick &&
 | 
						|
	git commit -m "side modifies" &&
 | 
						|
 | 
						|
	git tag anchor &&
 | 
						|
 | 
						|
	cat E0 E1 E2 E3 >expect
 | 
						|
'
 | 
						|
 | 
						|
test_expect_success resolve '
 | 
						|
 | 
						|
	rm -f a* m* &&
 | 
						|
	git reset --hard anchor &&
 | 
						|
 | 
						|
	if git merge -s resolve master
 | 
						|
	then
 | 
						|
		echo Oops, should not have succeeded
 | 
						|
		false
 | 
						|
	else
 | 
						|
		git ls-files -s >current
 | 
						|
		test_cmp current expect
 | 
						|
	fi
 | 
						|
'
 | 
						|
 | 
						|
test_expect_success recursive '
 | 
						|
 | 
						|
	rm -f a* m* &&
 | 
						|
	git reset --hard anchor &&
 | 
						|
 | 
						|
	if git merge -s recursive master
 | 
						|
	then
 | 
						|
		echo Oops, should not have succeeded
 | 
						|
		false
 | 
						|
	else
 | 
						|
		git ls-files -s >current
 | 
						|
		test_cmp current expect
 | 
						|
	fi
 | 
						|
'
 | 
						|
 | 
						|
test_done
 |