# Helpers for tests invoking parallel-checkout # Parallel checkout tests need full control of the number of workers unset GIT_TEST_CHECKOUT_WORKERS set_checkout_config () { if test $# -ne 2 then BUG "usage: set_checkout_config " fi && test_config_global checkout.workers $1 && test_config_global checkout.thresholdForParallelism $2 } # Run "${@:2}" and check that $1 checkout workers were used test_checkout_workers () { if test $# -lt 2 then BUG "too few arguments to test_checkout_workers" fi && local expected_workers="$1" && shift && local trace_file=trace-test-checkout-workers && rm -f "$trace_file" && ( GIT_TRACE2="$(pwd)/$trace_file" && export GIT_TRACE2 && "$@" 2>&8 ) && local workers="$(grep "child_start\[..*\] git checkout--worker" "$trace_file" | wc -l)" && test $workers -eq $expected_workers && rm "$trace_file" } 8>&2 2>&4 # Verify that both the working tree and the index were created correctly verify_checkout () { if test $# -ne 1 then BUG "usage: verify_checkout " fi && git -C "$1" diff-index --ignore-submodules=none --exit-code HEAD -- && git -C "$1" status --porcelain >"$1".status && test_must_be_empty "$1".status }