You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.2 KiB
56 lines
1.2 KiB
#!/bin/sh |
|
|
|
test_description='Tests multi-threaded lazy_init_name_hash' |
|
. ./perf-lib.sh |
|
|
|
test_perf_large_repo |
|
test_checkout_worktree |
|
|
|
test_expect_success 'verify both methods build the same hashmaps' ' |
|
test-tool lazy-init-name-hash --dump --single >out.single && |
|
if test-tool lazy-init-name-hash --dump --multi >out.multi |
|
then |
|
test_set_prereq REPO_BIG_ENOUGH_FOR_MULTI && |
|
sort <out.single >sorted.single && |
|
sort <out.multi >sorted.multi && |
|
test_cmp sorted.single sorted.multi |
|
fi |
|
' |
|
|
|
test_expect_success 'calibrate' ' |
|
entries=$(wc -l <out.single) && |
|
|
|
case $entries in |
|
?) count=1000000 ;; |
|
??) count=100000 ;; |
|
???) count=10000 ;; |
|
????) count=1000 ;; |
|
?????) count=100 ;; |
|
??????) count=10 ;; |
|
*) count=1 ;; |
|
esac && |
|
export count && |
|
|
|
case $entries in |
|
1) entries_desc="1 entry" ;; |
|
*) entries_desc="$entries entries" ;; |
|
esac && |
|
|
|
case $count in |
|
1) count_desc="1 round" ;; |
|
*) count_desc="$count rounds" ;; |
|
esac && |
|
|
|
desc="$entries_desc, $count_desc" && |
|
export desc |
|
' |
|
|
|
test_perf "single-threaded, $desc" " |
|
test-tool lazy-init-name-hash --single --count=$count |
|
" |
|
|
|
test_perf "multi-threaded, $desc" --prereq REPO_BIG_ENOUGH_FOR_MULTI " |
|
test-tool lazy-init-name-hash --multi --count=$count |
|
" |
|
|
|
test_done
|
|
|