]>
Commit | Line | Data |
---|---|---|
3878c7a5 ÆAB |
1 | #!/bin/sh |
2 | ||
3 | test_description="Comparison of git-grep's regex engines | |
4 | ||
5 | Set GIT_PERF_7820_GREP_OPTS in the environment to pass options to | |
6 | git-grep. Make sure to include a leading space, | |
7 | e.g. GIT_PERF_7820_GREP_OPTS=' -i'. Some options to try: | |
8 | ||
9 | -i | |
10 | -w | |
11 | -v | |
12 | -vi | |
13 | -vw | |
14 | -viw | |
7b31b55d ÆAB |
15 | |
16 | If GIT_PERF_GREP_THREADS is set to a list of threads (e.g. '1 4 8' | |
17 | etc.) we will test the patterns under those numbers of threads. | |
3878c7a5 ÆAB |
18 | " |
19 | ||
20 | . ./perf-lib.sh | |
21 | ||
22 | test_perf_large_repo | |
23 | test_checkout_worktree | |
24 | ||
7b31b55d ÆAB |
25 | if test -n "$GIT_PERF_GREP_THREADS" |
26 | then | |
27 | test_set_prereq PERF_GREP_ENGINES_THREADS | |
28 | fi | |
29 | ||
3878c7a5 ÆAB |
30 | for pattern in \ |
31 | 'how.to' \ | |
32 | '^how to' \ | |
33 | '[how] to' \ | |
34 | '\(e.t[^ ]*\|v.ry\) rare' \ | |
35 | 'm\(ú\|u\)lt.b\(æ\|y\)te' | |
36 | do | |
37 | for engine in basic extended perl | |
38 | do | |
39 | if test $engine != "basic" | |
40 | then | |
41 | # Poor man's basic -> extended converter. | |
42 | pattern=$(echo "$pattern" | sed 's/\\//g') | |
43 | fi | |
44 | if test $engine = "perl" && ! test_have_prereq PCRE | |
45 | then | |
46 | prereq="PCRE" | |
47 | else | |
48 | prereq="" | |
49 | fi | |
7b31b55d | 50 | if ! test_have_prereq PERF_GREP_ENGINES_THREADS |
3878c7a5 | 51 | then |
7b31b55d ÆAB |
52 | test_perf $prereq "$engine grep$GIT_PERF_7820_GREP_OPTS '$pattern'" " |
53 | git -c grep.patternType=$engine grep$GIT_PERF_7820_GREP_OPTS -- '$pattern' >'out.$engine' || : | |
54 | " | |
55 | else | |
56 | for threads in $GIT_PERF_GREP_THREADS | |
57 | do | |
58 | test_perf PTHREADS,$prereq "$engine grep$GIT_PERF_7820_GREP_OPTS '$pattern' with $threads threads" " | |
59 | git -c grep.patternType=$engine -c grep.threads=$threads grep$GIT_PERF_7820_GREP_OPTS -- '$pattern' >'out.$engine.$threads' || : | |
60 | " | |
61 | done | |
3878c7a5 | 62 | fi |
7b31b55d ÆAB |
63 | done |
64 | ||
65 | if ! test_have_prereq PERF_GREP_ENGINES_THREADS | |
66 | then | |
67 | test_expect_success "assert that all engines found the same for$GIT_PERF_7820_GREP_OPTS '$pattern'" ' | |
68 | test_cmp out.basic out.extended && | |
69 | if test_have_prereq PCRE | |
70 | then | |
71 | test_cmp out.basic out.perl | |
72 | fi | |
73 | ' | |
74 | else | |
75 | for threads in $GIT_PERF_GREP_THREADS | |
76 | do | |
77 | test_expect_success PTHREADS "assert that all engines found the same for$GIT_PERF_7820_GREP_OPTS '$pattern' under threading" " | |
78 | test_cmp out.basic.$threads out.extended.$threads && | |
79 | if test_have_prereq PCRE | |
80 | then | |
81 | test_cmp out.basic.$threads out.perl.$threads | |
82 | fi | |
83 | " | |
84 | done | |
85 | fi | |
3878c7a5 ÆAB |
86 | done |
87 | ||
88 | test_done |