| #!/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 |