 5dccd9155f
			
		
	
	5dccd9155f
	
	
	
		
			
			Tests that affect the repo in stateful ways are easier to write if we can run setup steps outside of the measured portion of perf iteration. This change adds a "--setup 'setup-script'" parameter to test_perf. To make invocations easier to understand, I also moved the prerequisites to a new --prereq parameter. The setup facility will be used in the upcoming perf tests for batch mode, but it already helps in some existing tests, like t5302 and t7820. Signed-off-by: Neeraj Singh <neerajsi@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
		
			
				
	
	
		
			51 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| 
 | |
| test_description="Tests index-pack performance"
 | |
| 
 | |
| . ./perf-lib.sh
 | |
| 
 | |
| test_perf_large_repo
 | |
| 
 | |
| test_expect_success 'repack' '
 | |
| 	git repack -ad &&
 | |
| 	PACK=$(ls .git/objects/pack/*.pack | head -n1) &&
 | |
| 	test -f "$PACK" &&
 | |
| 	export PACK
 | |
| '
 | |
| 
 | |
| # Rather than counting up and doubling each time, count down from the endpoint,
 | |
| # halving each time. That ensures that our final test uses as many threads as
 | |
| # CPUs, even if it isn't a power of 2.
 | |
| test_expect_success 'set up thread-counting tests' '
 | |
| 	t=$(test-tool online-cpus) &&
 | |
| 	threads= &&
 | |
| 	while test $t -gt 0
 | |
| 	do
 | |
| 		threads="$t $threads" &&
 | |
| 		t=$((t / 2)) || return 1
 | |
| 	done
 | |
| '
 | |
| 
 | |
| test_perf 'index-pack 0 threads' --prereq PERF_EXTRA \
 | |
| 	--setup 'rm -rf repo.git && git init --bare repo.git' '
 | |
| 	GIT_DIR=repo.git git index-pack --threads=1 --stdin < $PACK
 | |
| '
 | |
| 
 | |
| for t in $threads
 | |
| do
 | |
| 	THREADS=$t
 | |
| 	export THREADS
 | |
| 	test_perf "index-pack $t threads" --prereq PERF_EXTRA \
 | |
| 		--setup 'rm -rf repo.git && git init --bare repo.git' '
 | |
| 		GIT_DIR=repo.git GIT_FORCE_THREADS=1 \
 | |
| 		git index-pack --threads=$THREADS --stdin <$PACK
 | |
| 	'
 | |
| done
 | |
| 
 | |
| test_perf 'index-pack default number of threads' \
 | |
| 	--setup 'rm -rf repo.git && git init --bare repo.git' '
 | |
| 	GIT_DIR=repo.git git index-pack --stdin < $PACK
 | |
| '
 | |
| 
 | |
| test_done
 |