| #!/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 |