#!/bin/sh
#
# This test measures the performance of various read-tree
# and checkout operations.  It is primarily interested in
# the algorithmic costs of index operations and recursive
# tree traversal -- and NOT disk I/O on thousands of files.

test_description="Tests performance of read-tree"

. ./perf-lib.sh

test_perf_default_repo

# If the test repo was generated by ./repos/many-files.sh
# then we know something about the data shape and branches,
# so we can isolate testing to the ballast-related commits
# and setup sparse-checkout so we don't have to populate
# the ballast files and directories.
#
# Otherwise, we make some general assumptions about the
# repo and consider the entire history of the current
# branch to be the ballast.

test_expect_success "setup repo" '
	if git rev-parse --verify refs/heads/p0006-ballast^{commit}
	then
		echo Assuming synthetic repo from many-files.sh
		git branch br_base            master
		git branch br_ballast         p0006-ballast^
		git branch br_ballast_alias   p0006-ballast^
		git branch br_ballast_plus_1  p0006-ballast
		git config --local core.sparsecheckout 1
		cat >.git/info/sparse-checkout <<-EOF
		/*
		!ballast/*
		EOF
	else
		echo Assuming non-synthetic repo...
		git branch br_base            $(git rev-list HEAD | tail -n 1)
		git branch br_ballast         HEAD^ || error "no ancestor commit from current head"
		git branch br_ballast_alias   HEAD^
		git branch br_ballast_plus_1  HEAD
	fi &&
	git checkout -q br_ballast &&
	nr_files=$(git ls-files | wc -l)
'

test_perf "read-tree br_base br_ballast ($nr_files)" '
	git read-tree -m br_base br_ballast -n
'

test_perf "switch between br_base br_ballast ($nr_files)" '
	git checkout -q br_base &&
	git checkout -q br_ballast
'

test_perf "switch between br_ballast br_ballast_plus_1 ($nr_files)" '
	git checkout -q br_ballast_plus_1 &&
	git checkout -q br_ballast
'

test_perf "switch between aliases ($nr_files)" '
	git checkout -q br_ballast_alias &&
	git checkout -q br_ballast
'

test_done
