d90d441c33
Add a test for the -G and -S pickaxe options and related options. This test supports being run with GIT_TEST_LONG=1 to adjust the limit on the number of commits from 1k to 10k. The 1k limit seems to hit a good spot on git.git Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
71 lines
1.2 KiB
Bash
Executable File
71 lines
1.2 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
test_description="Test pickaxe performance"
|
|
|
|
. ./perf-lib.sh
|
|
|
|
test_perf_default_repo
|
|
|
|
# Not --max-count, as that's the number of matching commit, so it's
|
|
# unbounded. We want to limit our revision walk here.
|
|
from_rev_desc=
|
|
from_rev=
|
|
max_count=1000
|
|
if test_have_prereq EXPENSIVE
|
|
then
|
|
max_count=10000
|
|
fi
|
|
from_rev=" $(git rev-list HEAD | head -n $max_count | tail -n 1).."
|
|
from_rev_desc=" <limit-rev>.."
|
|
|
|
for icase in \
|
|
'' \
|
|
'-i '
|
|
do
|
|
# -S (no regex)
|
|
for pattern in \
|
|
'int main' \
|
|
'æ'
|
|
do
|
|
for opts in \
|
|
'-S'
|
|
do
|
|
test_perf "git log $icase$opts'$pattern'$from_rev_desc" "
|
|
git log --pretty=format:%H $icase$opts'$pattern'$from_rev
|
|
"
|
|
done
|
|
done
|
|
|
|
# -S (regex)
|
|
for pattern in \
|
|
'(int|void|null)' \
|
|
'if *\([^ ]+ & ' \
|
|
'[àáâãäåæñøùúûüýþ]'
|
|
do
|
|
for opts in \
|
|
'--pickaxe-regex -S'
|
|
do
|
|
test_perf "git log $icase$opts'$pattern'$from_rev_desc" "
|
|
git log --pretty=format:%H $icase$opts'$pattern'$from_rev
|
|
"
|
|
done
|
|
done
|
|
|
|
# -G
|
|
for pattern in \
|
|
'(int|void|null)' \
|
|
'if *\([^ ]+ & ' \
|
|
'[àáâãäåæñøùúûüýþ]'
|
|
do
|
|
for opts in \
|
|
'-G'
|
|
do
|
|
test_perf "git log $icase$opts'$pattern'$from_rev_desc" "
|
|
git log --pretty=format:%H $icase$opts'$pattern'$from_rev
|
|
"
|
|
done
|
|
done
|
|
done
|
|
|
|
test_done
|