p0004: don't abort if multi-threaded is too slow
[git] / t / perf / p0004-lazy-init-name-hash.sh
1 #!/bin/sh
2
3 test_description='Tests multi-threaded lazy_init_name_hash'
4 . ./perf-lib.sh
5
6 test_perf_large_repo
7 test_checkout_worktree
8
9 test_expect_success 'verify both methods build the same hashmaps' '
10         test-lazy-init-name-hash --dump --single >out.single &&
11         test-lazy-init-name-hash --dump --multi >out.multi &&
12         sort <out.single >sorted.single &&
13         sort <out.multi >sorted.multi &&
14         test_cmp sorted.single sorted.multi
15 '
16
17 test_expect_success 'calibrate' '
18         entries=$(wc -l <out.single) &&
19
20         case $entries in
21         ?) count=1000000 ;;
22         ??) count=100000 ;;
23         ???) count=10000 ;;
24         ????) count=1000 ;;
25         ?????) count=100 ;;
26         ??????) count=10 ;;
27         *) count=1 ;;
28         esac &&
29         export count &&
30
31         case $entries in
32         1) entries_desc="1 entry" ;;
33         *) entries_desc="$entries entries" ;;
34         esac &&
35
36         case $count in
37         1) count_desc="1 round" ;;
38         *) count_desc="$count rounds" ;;
39         esac &&
40
41         desc="$entries_desc, $count_desc" &&
42         export desc
43 '
44
45 test_perf "single-threaded, $desc" "
46         test-lazy-init-name-hash --single --count=$count
47 "
48
49 test_perf "multi-threaded, $desc" "
50         test-lazy-init-name-hash --multi --count=$count
51 "
52
53 test_done