d30c32f97b3bdbe1464e307e8bea26adb4a5c2cc
   1#!/bin/sh
   2
   3test_description='Tests multi-threaded lazy_init_name_hash'
   4. ./perf-lib.sh
   5
   6test_perf_large_repo
   7test_checkout_worktree
   8
   9test_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
  17test_expect_success 'multithreaded should be faster' '
  18        test-lazy-init-name-hash --perf >out.perf
  19'
  20
  21test_expect_success 'calibrate' '
  22        entries=$(wc -l <out.single) &&
  23
  24        case $entries in
  25        ?) count=1000000 ;;
  26        ??) count=100000 ;;
  27        ???) count=10000 ;;
  28        ????) count=1000 ;;
  29        ?????) count=100 ;;
  30        ??????) count=10 ;;
  31        *) count=1 ;;
  32        esac &&
  33        export count &&
  34
  35        case $entries in
  36        1) entries_desc="1 entry" ;;
  37        *) entries_desc="$entries entries" ;;
  38        esac &&
  39
  40        case $count in
  41        1) count_desc="1 round" ;;
  42        *) count_desc="$count rounds" ;;
  43        esac &&
  44
  45        desc="$entries_desc, $count_desc" &&
  46        export desc
  47'
  48
  49test_perf "single-threaded, $desc" "
  50        test-lazy-init-name-hash --single --count=$count
  51"
  52
  53test_perf "multi-threaded, $desc" "
  54        test-lazy-init-name-hash --multi --count=$count
  55"
  56
  57test_done