 fc1ddf42af
			
		
	
	fc1ddf42af
	
	
	
		
			
			Now that the default value for TEST_PASSES_SANITIZE_LEAK is `true` there is no longer a need to have that variable declared in all of our tests. Drop it. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
		
			
				
	
	
		
			84 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| 
 | |
| test_description='Basic subproject functionality'
 | |
| 
 | |
| . ./test-lib.sh
 | |
| 
 | |
| test_expect_success 'setup: create superproject' '
 | |
| 	: >Makefile &&
 | |
| 	git add Makefile &&
 | |
| 	git commit -m "Superproject created"
 | |
| '
 | |
| 
 | |
| test_expect_success 'setup: create subprojects' '
 | |
| 	mkdir sub1 &&
 | |
| 	( cd sub1 && git init && : >Makefile && git add * &&
 | |
| 	git commit -q -m "subproject 1" ) &&
 | |
| 	mkdir sub2 &&
 | |
| 	( cd sub2 && git init && : >Makefile && git add * &&
 | |
| 	git commit -q -m "subproject 2" ) &&
 | |
| 	git update-index --add sub1 &&
 | |
| 	git add sub2 &&
 | |
| 	git commit -q -m "subprojects added" &&
 | |
| 	GIT_PRINT_SHA1_ELLIPSIS="yes" git diff-tree --abbrev=5 HEAD^ HEAD |cut -d" " -f-3,5- >current &&
 | |
| 	git branch save HEAD &&
 | |
| 	cat >expected <<-\EOF &&
 | |
| 	:000000 160000 00000... A	sub1
 | |
| 	:000000 160000 00000... A	sub2
 | |
| 	EOF
 | |
| 	test_cmp expected current
 | |
| '
 | |
| 
 | |
| test_expect_success 'check if fsck ignores the subprojects' '
 | |
| 	git fsck --full
 | |
| '
 | |
| 
 | |
| test_expect_success 'check if commit in a subproject detected' '
 | |
| 	( cd sub1 &&
 | |
| 	echo "all:" >>Makefile &&
 | |
| 	echo "	true" >>Makefile &&
 | |
| 	git commit -q -a -m "make all" ) &&
 | |
| 	test_expect_code 1 git diff-files --exit-code
 | |
| '
 | |
| 
 | |
| test_expect_success 'check if a changed subproject HEAD can be committed' '
 | |
| 	git commit -q -a -m "sub1 changed" &&
 | |
| 	test_expect_code 1 git diff-tree --exit-code HEAD^ HEAD
 | |
| '
 | |
| 
 | |
| test_expect_success 'check if diff-index works for subproject elements' '
 | |
| 	test_expect_code 1 git diff-index --exit-code --cached save -- sub1
 | |
| '
 | |
| 
 | |
| test_expect_success 'check if diff-tree works for subproject elements' '
 | |
| 	test_expect_code 1 git diff-tree --exit-code HEAD^ HEAD -- sub1
 | |
| '
 | |
| 
 | |
| test_expect_success 'check if git diff works for subproject elements' '
 | |
| 	test_expect_code 1 git diff --exit-code HEAD^ HEAD
 | |
| '
 | |
| 
 | |
| test_expect_success 'check if clone works' '
 | |
| 	git ls-files -s >expected &&
 | |
| 	git clone -l -s . cloned &&
 | |
| 	( cd cloned && git ls-files -s ) >current &&
 | |
| 	test_cmp expected current
 | |
| '
 | |
| 
 | |
| test_expect_success 'removing and adding subproject' '
 | |
| 	git update-index --force-remove -- sub2 &&
 | |
| 	mv sub2 sub3 &&
 | |
| 	git add sub3 &&
 | |
| 	git commit -q -m "renaming a subproject" &&
 | |
| 	test_expect_code 1 git diff -M --name-status --exit-code HEAD^ HEAD
 | |
| '
 | |
| 
 | |
| # the index must contain the object name the HEAD of the
 | |
| # subproject sub1 was at the point "save"
 | |
| test_expect_success 'checkout in superproject' '
 | |
| 	git checkout save &&
 | |
| 	git diff-index --exit-code --raw --cached save -- sub1
 | |
| '
 | |
| 
 | |
| test_done
 |