]>
Commit | Line | Data |
---|---|---|
d0e5d357 MT |
1 | # Helpers for tests invoking parallel-checkout |
2 | ||
87094fc2 MT |
3 | # Parallel checkout tests need full control of the number of workers |
4 | unset GIT_TEST_CHECKOUT_WORKERS | |
5 | ||
d0e5d357 MT |
6 | set_checkout_config () { |
7 | if test $# -ne 2 | |
8 | then | |
9 | BUG "usage: set_checkout_config <workers> <threshold>" | |
10 | fi && | |
11 | ||
12 | test_config_global checkout.workers $1 && | |
13 | test_config_global checkout.thresholdForParallelism $2 | |
14 | } | |
15 | ||
16 | # Run "${@:2}" and check that $1 checkout workers were used | |
17 | test_checkout_workers () { | |
18 | if test $# -lt 2 | |
19 | then | |
20 | BUG "too few arguments to test_checkout_workers" | |
21 | fi && | |
22 | ||
23 | local expected_workers=$1 && | |
24 | shift && | |
25 | ||
26 | local trace_file=trace-test-checkout-workers && | |
27 | rm -f "$trace_file" && | |
6a7bc9d1 | 28 | GIT_TRACE2="$(pwd)/$trace_file" "$@" 2>&8 && |
d0e5d357 | 29 | |
ebee5580 | 30 | local workers="$(grep "child_start\[..*\] git checkout--worker" "$trace_file" | wc -l)" && |
d0e5d357 MT |
31 | test $workers -eq $expected_workers && |
32 | rm "$trace_file" | |
6a7bc9d1 | 33 | } 8>&2 2>&4 |
d0e5d357 MT |
34 | |
35 | # Verify that both the working tree and the index were created correctly | |
36 | verify_checkout () { | |
37 | if test $# -ne 1 | |
38 | then | |
39 | BUG "usage: verify_checkout <repository path>" | |
40 | fi && | |
41 | ||
42 | git -C "$1" diff-index --ignore-submodules=none --exit-code HEAD -- && | |
43 | git -C "$1" status --porcelain >"$1".status && | |
44 | test_must_be_empty "$1".status | |
45 | } |