#!/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 REPO_BIG_ENOUGH_FOR_MULTI "multi-threaded, $desc" " test-tool lazy-init-name-hash --multi --count=$count " test_done