tvl-depot/third_party/git/t/perf/p0100-globbing.sh
Vincent Ambo 7ef0d62730 merge(third_party/git): Merge squashed git subtree at v2.23.0
Merge commit '1b593e1ea4d2af0f6444d9a7788d5d99abd6fde5' as 'third_party/git'
2020-01-11 23:40:29 +00:00

43 lines
868 B
Bash
Executable file

#!/bin/sh
test_description="Tests pathological globbing performance
Shows how Git's globbing performance performs when given the sort of
pathological patterns described in at https://research.swtch.com/glob
"
. ./perf-lib.sh
test_globs_big='10 25 50 75 100'
test_globs_small='1 2 3 4 5 6'
test_perf_fresh_repo
test_expect_success 'setup' '
for i in $(test_seq 1 100)
do
printf "a" >>refname &&
for j in $(test_seq 1 $i)
do
printf "a*" >>refglob.$i
done &&
echo b >>refglob.$i
done &&
test_commit test $(cat refname).t "" $(cat refname).t
'
for i in $test_globs_small
do
test_perf "refglob((a*)^nb) against tag (a^100).t; n = $i" '
git for-each-ref "refs/tags/$(cat refglob.'$i')b"
'
done
for i in $test_globs_small
do
test_perf "fileglob((a*)^nb) against file (a^100).t; n = $i" '
git ls-files "$(cat refglob.'$i')b"
'
done
test_done