| #!/bin/sh | 
 |  | 
 | test_description='apply a patch that is larger than the preimage' | 
 |  | 
 | . ./test-lib.sh | 
 |  | 
 | cat >F  <<\EOF | 
 | 1 | 
 | 2 | 
 | 3 | 
 | 4 | 
 | 5 | 
 | 6 | 
 | 7 | 
 | 8 | 
 | 999999 | 
 | A | 
 | B | 
 | C | 
 | D | 
 | E | 
 | F | 
 | G | 
 | H | 
 | I | 
 | J | 
 |  | 
 | EOF | 
 |  | 
 | test_expect_success setup ' | 
 |  | 
 | 	git add F && | 
 | 	mv F G && | 
 | 	sed -e "s/1/11/" -e "s/999999/9/" -e "s/H/HH/" <G >F && | 
 | 	git diff >patch && | 
 | 	sed -e "/^\$/d" <G >F && | 
 | 	git add F | 
 |  | 
 | ' | 
 |  | 
 | test_expect_success 'apply should fail gracefully' ' | 
 |  | 
 | 	if git apply --index patch | 
 | 	then | 
 | 		echo Oops, should not have succeeded | 
 | 		false | 
 | 	else | 
 | 		status=$? | 
 | 		echo "Status was $status" | 
 | 		if test -f .git/index.lock | 
 | 		then | 
 | 			echo Oops, should not have crashed | 
 | 			false | 
 | 		fi | 
 | 	fi | 
 | ' | 
 |  | 
 | test_done |