74 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			74 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
| #!/bin/sh
 | |
| 
 | |
| test_description='diff --relative tests'
 | |
| . ./test-lib.sh
 | |
| 
 | |
| test_expect_success 'setup' '
 | |
| 	git commit --allow-empty -m empty &&
 | |
| 	echo content >file1 &&
 | |
| 	mkdir subdir &&
 | |
| 	echo other content >subdir/file2 &&
 | |
| 	git add . &&
 | |
| 	git commit -m one
 | |
| '
 | |
| 
 | |
| check_diff() {
 | |
| expect=$1; shift
 | |
| cat >expected <<EOF
 | |
| diff --git a/$expect b/$expect
 | |
| new file mode 100644
 | |
| index 0000000..25c05ef
 | |
| --- /dev/null
 | |
| +++ b/$expect
 | |
| @@ -0,0 +1 @@
 | |
| +other content
 | |
| EOF
 | |
| test_expect_success "-p $*" "
 | |
| 	git diff -p $* HEAD^ >actual &&
 | |
| 	test_cmp expected actual
 | |
| "
 | |
| }
 | |
| 
 | |
| check_numstat() {
 | |
| expect=$1; shift
 | |
| cat >expected <<EOF
 | |
| 1	0	$expect
 | |
| EOF
 | |
| test_expect_success "--numstat $*" "
 | |
| 	echo '1	0	$expect' >expected &&
 | |
| 	git diff --numstat $* HEAD^ >actual &&
 | |
| 	test_cmp expected actual
 | |
| "
 | |
| }
 | |
| 
 | |
| check_stat() {
 | |
| expect=$1; shift
 | |
| cat >expected <<EOF
 | |
|  $expect | 1 +
 | |
|  1 file changed, 1 insertion(+)
 | |
| EOF
 | |
| test_expect_success "--stat $*" "
 | |
| 	git diff --stat $* HEAD^ >actual &&
 | |
| 	test_i18ncmp expected actual
 | |
| "
 | |
| }
 | |
| 
 | |
| check_raw() {
 | |
| expect=$1; shift
 | |
| cat >expected <<EOF
 | |
| :000000 100644 0000000000000000000000000000000000000000 25c05ef3639d2d270e7fe765a67668f098092bc5 A	$expect
 | |
| EOF
 | |
| test_expect_success "--raw $*" "
 | |
| 	git diff --no-abbrev --raw $* HEAD^ >actual &&
 | |
| 	test_cmp expected actual
 | |
| "
 | |
| }
 | |
| 
 | |
| for type in diff numstat stat raw; do
 | |
| 	check_$type file2 --relative=subdir/
 | |
| 	check_$type file2 --relative=subdir
 | |
| 	check_$type dir/file2 --relative=sub
 | |
| done
 | |
| 
 | |
| test_done
 |