 0f88783592
			
		
	
	0f88783592
	
	
	
		
			
			The --name-only and --name-status options are synonyms, but let's detect and error if both are provided. In addition let's add explicit --format tests for the combination of these various options. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Teng Long <dyroneteng@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
		
			
				
	
	
		
			42 lines
		
	
	
		
			926 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			926 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| 
 | |
| test_description='
 | |
| Miscellaneous tests for git ls-tree.
 | |
| 
 | |
| 	      1. git ls-tree fails in presence of tree damage.
 | |
| 
 | |
| '
 | |
| 
 | |
| TEST_PASSES_SANITIZE_LEAK=true
 | |
| . ./test-lib.sh
 | |
| 
 | |
| test_expect_success 'setup' '
 | |
| 	mkdir a &&
 | |
| 	touch a/one &&
 | |
| 	git add a/one &&
 | |
| 	git commit -m test
 | |
| '
 | |
| 
 | |
| test_expect_success 'ls-tree fails with non-zero exit code on broken tree' '
 | |
| 	tree=$(git rev-parse HEAD:a) &&
 | |
| 	rm -f .git/objects/$(echo $tree | sed -e "s,^\(..\),\1/,") &&
 | |
| 	test_must_fail git ls-tree -r HEAD
 | |
| '
 | |
| 
 | |
| for opts in \
 | |
| 	"--long --name-only" \
 | |
| 	"--name-only --name-status" \
 | |
| 	"--name-status --object-only" \
 | |
| 	"--object-only --long"
 | |
| do
 | |
| 	test_expect_success "usage: incompatible options: $opts" '
 | |
| 		test_expect_code 129 git ls-tree $opts $tree
 | |
| 	'
 | |
| 
 | |
| 	one_opt=$(echo "$opts" | cut -d' '  -f1)
 | |
| 	test_expect_success "usage: incompatible options: $one_opt and --format" '
 | |
| 		test_expect_code 129 git ls-tree $one_opt --format=fmt $tree
 | |
| 	'
 | |
| done
 | |
| test_done
 |