 7e1fcb81ee
			
		
	
	7e1fcb81ee
	
	
	
		
			
			The tests for `git reflog delete --updateref` are currently marked to only run with the reffiles backend. There is no inherent reason that this should be the case other than the fact that the setup messes with the on-disk reflogs directly. Refactor the test to stop doing so and drop the REFFILES prerequisite. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
		
			
				
	
	
		
			70 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| 
 | |
| test_description='git reflog --updateref'
 | |
| 
 | |
| TEST_PASSES_SANITIZE_LEAK=true
 | |
| . ./test-lib.sh
 | |
| 
 | |
| test_expect_success 'setup' '
 | |
| 	git init -b main repo &&
 | |
| 	(
 | |
| 		cd repo &&
 | |
| 
 | |
| 		test_commit A &&
 | |
| 		test_commit B &&
 | |
| 		test_commit C &&
 | |
| 
 | |
| 		git reflog HEAD >expect &&
 | |
| 		git reset --hard HEAD~ &&
 | |
| 		# Make sure that the reflog does not point to the same commit
 | |
| 		# as HEAD.
 | |
| 		git reflog delete HEAD@{0} &&
 | |
| 		git reflog HEAD >actual &&
 | |
| 		test_cmp expect actual
 | |
| 	)
 | |
| '
 | |
| 
 | |
| test_reflog_updateref () {
 | |
| 	exp=$1
 | |
| 	shift
 | |
| 	args="$@"
 | |
| 
 | |
| 	test_expect_success "get '$exp' with '$args'"  '
 | |
| 		test_when_finished "rm -rf copy" &&
 | |
| 		cp -R repo copy &&
 | |
| 
 | |
| 		(
 | |
| 			cd copy &&
 | |
| 
 | |
| 			$args &&
 | |
| 			git rev-parse $exp >expect &&
 | |
| 			git rev-parse HEAD >actual &&
 | |
| 
 | |
| 			test_cmp expect actual
 | |
| 		)
 | |
| 	'
 | |
| }
 | |
| 
 | |
| test_reflog_updateref B git reflog delete --updateref HEAD@{0}
 | |
| test_reflog_updateref B git reflog delete --updateref HEAD@{1}
 | |
| test_reflog_updateref C git reflog delete --updateref main@{0}
 | |
| test_reflog_updateref B git reflog delete --updateref main@{1}
 | |
| test_reflog_updateref B git reflog delete --updateref --rewrite HEAD@{0}
 | |
| test_reflog_updateref B git reflog delete --updateref --rewrite HEAD@{1}
 | |
| test_reflog_updateref C git reflog delete --updateref --rewrite main@{0}
 | |
| test_reflog_updateref B git reflog delete --updateref --rewrite main@{1}
 | |
| test_reflog_updateref B test_must_fail git reflog expire  HEAD@{0}
 | |
| test_reflog_updateref B test_must_fail git reflog expire  HEAD@{1}
 | |
| test_reflog_updateref B test_must_fail git reflog expire  main@{0}
 | |
| test_reflog_updateref B test_must_fail git reflog expire  main@{1}
 | |
| test_reflog_updateref B test_must_fail git reflog expire --updateref HEAD@{0}
 | |
| test_reflog_updateref B test_must_fail git reflog expire --updateref HEAD@{1}
 | |
| test_reflog_updateref B test_must_fail git reflog expire --updateref main@{0}
 | |
| test_reflog_updateref B test_must_fail git reflog expire --updateref main@{1}
 | |
| test_reflog_updateref B test_must_fail git reflog expire --updateref --rewrite HEAD@{0}
 | |
| test_reflog_updateref B test_must_fail git reflog expire --updateref --rewrite HEAD@{1}
 | |
| test_reflog_updateref B test_must_fail git reflog expire --updateref --rewrite main@{0}
 | |
| test_reflog_updateref B test_must_fail git reflog expire --updateref --rewrite main@{1}
 | |
| 
 | |
| test_done
 |