 01e0d545ab
			
		
	
	01e0d545ab
	
	
	
		
			
			Create a performance test to see how the skipList implementation performs. First we setup N bad commits, then we see how progressively working our way up to 0..N in increments of 10x does. I.e. the needle(s) in the haystack get progressively more numerous. Signed-off-by: René Scharfe <l.s.r@web.de> Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
		
			
				
	
	
		
			41 lines
		
	
	
		
			698 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			698 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| 
 | |
| test_description='Test fsck skipList performance'
 | |
| 
 | |
| . ./perf-lib.sh
 | |
| 
 | |
| test_perf_fresh_repo
 | |
| 
 | |
| n=1000000
 | |
| 
 | |
| test_expect_success "setup $n bad commits" '
 | |
| 	for i in $(test_seq 1 $n)
 | |
| 	do
 | |
| 		echo "commit refs/heads/master" &&
 | |
| 		echo "committer C <c@example.com> 1234567890 +0000" &&
 | |
| 		echo "data <<EOF" &&
 | |
| 		echo "$i.Q." &&
 | |
| 		echo "EOF"
 | |
| 	done | q_to_nul | git fast-import
 | |
| '
 | |
| 
 | |
| skip=0
 | |
| while test $skip -le $n
 | |
| do
 | |
| 	test_expect_success "create skipList for $skip bad commits" '
 | |
| 		git log --format=%H --max-count=$skip |
 | |
| 		sort >skiplist
 | |
| 	'
 | |
| 
 | |
| 	test_perf "fsck with $skip skipped bad commits" '
 | |
| 		git -c fsck.skipList=skiplist fsck
 | |
| 	'
 | |
| 
 | |
| 	case $skip in
 | |
| 	0) skip=1 ;;
 | |
| 	*) skip=${skip}0 ;;
 | |
| 	esac
 | |
| done
 | |
| 
 | |
| test_done
 |