3 :: Run pcre2grep tests. The assumption is that the PCRE2 tests check the library
\r
4 :: itself. What we are checking here is the file handling and options that are
\r
5 :: supported by pcre2grep. This script must be run in the build directory.
\r
6 :: (jmh: I've only tested in the main directory, using my own builds.)
\r
8 setlocal enabledelayedexpansion
\r
10 :: Remove any non-default colouring that the caller may have set.
\r
12 set PCRE2GREP_COLOUR=
\r
13 set PCRE2GREP_COLOR=
\r
14 set PCREGREP_COLOUR=
\r
19 :: Remember the current (build) directory and set the program to be tested.
\r
22 set pcre2grep=%builddir%\pcre2grep.exe
\r
23 set pcre2test=%builddir%\pcre2test.exe
\r
25 if NOT exist %pcre2grep% (
\r
26 echo ** %pcre2grep% does not exist.
\r
30 if NOT exist %pcre2test% (
\r
31 echo ** %pcre2test% does not exist.
\r
35 for /f "delims=" %%a in ('"%pcre2grep%" -V') do set pcre2grep_version=%%a
\r
36 echo Testing %pcre2grep_version%
\r
38 :: Set up a suitable "diff" command for comparison. Some systems have a diff
\r
39 :: that lacks a -u option. Try to deal with this; better do the test for the -b
\r
40 :: option as well. Use FC if there's no diff, taking care to ignore equality.
\r
44 diff -b nul nul 2>nul && set cf=diff -b
\r
45 diff -u nul nul 2>nul && set cf=diff -u
\r
46 diff -ub nul nul 2>nul && set cf=diff -ub
\r
49 set "cfout=>testcf || (type testcf & cmd /c exit /b 1)"
\r
52 :: Set srcdir to the current or parent directory, whichever one contains the
\r
53 :: test data. Subsequently, we run most of the pcre2grep tests in the source
\r
54 :: directory so that the file names in the output are always the same.
\r
56 if NOT defined srcdir set srcdir=.
\r
57 if NOT exist %srcdir%\testdata\ (
\r
58 if exist testdata\ (
\r
60 ) else if exist ..\testdata\ (
\r
62 ) else if exist ..\..\testdata\ (
\r
65 echo Cannot find the testdata directory
\r
70 :: Check for the availability of UTF-8 support
\r
72 %pcre2test% -C unicode >nul
\r
73 set utf8=%ERRORLEVEL%
\r
75 :: Check default newline convention. If it does not include LF, force LF.
\r
77 for /f %%a in ('"%pcre2test%" -C newline') do set nl=%%a
\r
78 if NOT "%nl%" == "LF" if NOT "%nl%" == "ANY" if NOT "%nl%" == "ANYCRLF" (
\r
79 set pcre2grep=%pcre2grep% -N LF
\r
80 echo Default newline setting forced to LF
\r
83 :: Create a simple printf via cscript/JScript (an actual printf may translate
\r
84 :: LF to CRLF, which this one does not).
\r
86 echo WScript.StdOut.Write(WScript.Arguments(0).replace(/\\r/g, "\r").replace(/\\n/g, "\n")) >printf.js
\r
87 set printf=cscript //nologo printf.js
\r
89 :: ------ Normal tests ------
\r
91 echo Testing pcre2grep main features
\r
93 echo ---------------------------- Test 1 ------------------------------>testtrygrep
\r
94 (pushd %srcdir% & %pcre2grep% PATTERN ./testdata/grepinput & popd) >>testtrygrep
\r
95 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
97 echo ---------------------------- Test 2 ------------------------------>>testtrygrep
\r
98 (pushd %srcdir% & %pcre2grep% "^PATTERN" ./testdata/grepinput & popd) >>testtrygrep
\r
99 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
101 echo ---------------------------- Test 3 ------------------------------>>testtrygrep
\r
102 (pushd %srcdir% & %pcre2grep% -in PATTERN ./testdata/grepinput & popd) >>testtrygrep
\r
103 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
105 echo ---------------------------- Test 4 ------------------------------>>testtrygrep
\r
106 (pushd %srcdir% & %pcre2grep% -ic PATTERN ./testdata/grepinput & popd) >>testtrygrep
\r
107 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
109 echo ---------------------------- Test 5 ------------------------------>>testtrygrep
\r
110 (pushd %srcdir% & %pcre2grep% -in PATTERN ./testdata/grepinput ./testdata/grepinputx & popd) >>testtrygrep
\r
111 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
113 echo ---------------------------- Test 6 ------------------------------>>testtrygrep
\r
114 (pushd %srcdir% & %pcre2grep% -inh PATTERN ./testdata/grepinput ./testdata/grepinputx & popd) >>testtrygrep
\r
115 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
117 echo ---------------------------- Test 7 ------------------------------>>testtrygrep
\r
118 (pushd %srcdir% & %pcre2grep% -il PATTERN ./testdata/grepinput ./testdata/grepinputx & popd) >>testtrygrep
\r
119 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
121 echo ---------------------------- Test 8 ------------------------------>>testtrygrep
\r
122 (pushd %srcdir% & %pcre2grep% -l PATTERN ./testdata/grepinput ./testdata/grepinputx & popd) >>testtrygrep
\r
123 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
125 echo ---------------------------- Test 9 ------------------------------>>testtrygrep
\r
126 (pushd %srcdir% & %pcre2grep% -q PATTERN ./testdata/grepinput ./testdata/grepinputx & popd) >>testtrygrep
\r
127 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
129 echo ---------------------------- Test 10 ----------------------------->>testtrygrep
\r
130 (pushd %srcdir% & %pcre2grep% -q NEVER-PATTERN ./testdata/grepinput ./testdata/grepinputx & popd) >>testtrygrep
\r
131 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
133 echo ---------------------------- Test 11 ----------------------------->>testtrygrep
\r
134 (pushd %srcdir% & %pcre2grep% -vn pattern ./testdata/grepinputx & popd) >>testtrygrep
\r
135 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
137 echo ---------------------------- Test 12 ----------------------------->>testtrygrep
\r
138 (pushd %srcdir% & %pcre2grep% -ix pattern ./testdata/grepinputx & popd) >>testtrygrep
\r
139 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
141 echo ---------------------------- Test 13 ----------------------------->>testtrygrep
\r
142 echo seventeen >testtemp1grep
\r
143 (pushd %srcdir% & %pcre2grep% -f./testdata/greplist -f %builddir%\testtemp1grep ./testdata/grepinputx & popd) >>testtrygrep
\r
144 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
146 echo ---------------------------- Test 14 ----------------------------->>testtrygrep
\r
147 (pushd %srcdir% & %pcre2grep% -w pat ./testdata/grepinput ./testdata/grepinputx & popd) >>testtrygrep
\r
148 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
150 echo ---------------------------- Test 15 ----------------------------->>testtrygrep
\r
151 (pushd %srcdir% & %pcre2grep% "abc^*" ./testdata/grepinput & popd) >>testtrygrep 2>&1
\r
152 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
154 echo ---------------------------- Test 16 ----------------------------->>testtrygrep
\r
155 (pushd %srcdir% & %pcre2grep% abc ./testdata/grepinput ./testdata/nonexistfile & popd) >>testtrygrep 2>&1
\r
156 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
158 echo ---------------------------- Test 17 ----------------------------->>testtrygrep
\r
159 (pushd %srcdir% & %pcre2grep% -M "the\noutput" ./testdata/grepinput & popd) >>testtrygrep
\r
160 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
162 echo ---------------------------- Test 18 ----------------------------->>testtrygrep
\r
163 (pushd %srcdir% & %pcre2grep% -Mn "(the\noutput|dog\.\n--)" ./testdata/grepinput & popd) >>testtrygrep
\r
164 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
166 echo ---------------------------- Test 19 ----------------------------->>testtrygrep
\r
167 (pushd %srcdir% & %pcre2grep% -Mix "Pattern" ./testdata/grepinputx & popd) >>testtrygrep
\r
168 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
170 echo ---------------------------- Test 20 ----------------------------->>testtrygrep
\r
171 (pushd %srcdir% & %pcre2grep% -Mixn "complete pair\nof lines" ./testdata/grepinputx & popd) >>testtrygrep
\r
172 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
174 echo ---------------------------- Test 21 ----------------------------->>testtrygrep
\r
175 (pushd %srcdir% & %pcre2grep% -nA3 "four" ./testdata/grepinputx & popd) >>testtrygrep
\r
176 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
178 echo ---------------------------- Test 22 ----------------------------->>testtrygrep
\r
179 (pushd %srcdir% & %pcre2grep% -nB3 "four" ./testdata/grepinputx & popd) >>testtrygrep
\r
180 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
182 echo ---------------------------- Test 23 ----------------------------->>testtrygrep
\r
183 (pushd %srcdir% & %pcre2grep% -C3 "four" ./testdata/grepinputx & popd) >>testtrygrep
\r
184 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
186 echo ---------------------------- Test 24 ----------------------------->>testtrygrep
\r
187 (pushd %srcdir% & %pcre2grep% -A9 "four" ./testdata/grepinputx & popd) >>testtrygrep
\r
188 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
190 echo ---------------------------- Test 25 ----------------------------->>testtrygrep
\r
191 (pushd %srcdir% & %pcre2grep% -nB9 "four" ./testdata/grepinputx & popd) >>testtrygrep
\r
192 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
194 echo ---------------------------- Test 26 ----------------------------->>testtrygrep
\r
195 (pushd %srcdir% & %pcre2grep% -A9 -B9 "four" ./testdata/grepinputx & popd) >>testtrygrep
\r
196 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
198 echo ---------------------------- Test 27 ----------------------------->>testtrygrep
\r
199 (pushd %srcdir% & %pcre2grep% -A10 "four" ./testdata/grepinputx & popd) >>testtrygrep
\r
200 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
202 echo ---------------------------- Test 28 ----------------------------->>testtrygrep
\r
203 (pushd %srcdir% & %pcre2grep% -nB10 "four" ./testdata/grepinputx & popd) >>testtrygrep
\r
204 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
206 echo ---------------------------- Test 29 ----------------------------->>testtrygrep
\r
207 (pushd %srcdir% & %pcre2grep% -C12 -B10 "four" ./testdata/grepinputx & popd) >>testtrygrep
\r
208 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
210 echo ---------------------------- Test 30 ----------------------------->>testtrygrep
\r
211 (pushd %srcdir% & %pcre2grep% -inB3 "pattern" ./testdata/grepinput ./testdata/grepinputx & popd) >>testtrygrep
\r
212 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
214 echo ---------------------------- Test 31 ----------------------------->>testtrygrep
\r
215 (pushd %srcdir% & %pcre2grep% -inA3 "pattern" ./testdata/grepinput ./testdata/grepinputx & popd) >>testtrygrep
\r
216 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
218 echo ---------------------------- Test 32 ----------------------------->>testtrygrep
\r
219 (pushd %srcdir% & %pcre2grep% -L "fox" ./testdata/grepinput ./testdata/grepinputx & popd) >>testtrygrep
\r
220 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
222 echo ---------------------------- Test 33 ----------------------------->>testtrygrep
\r
223 (pushd %srcdir% & %pcre2grep% "fox" ./testdata/grepnonexist & popd) >>testtrygrep 2>&1
\r
224 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
226 echo ---------------------------- Test 34 ----------------------------->>testtrygrep
\r
227 (pushd %srcdir% & %pcre2grep% -s "fox" ./testdata/grepnonexist & popd) >>testtrygrep 2>&1
\r
228 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
230 echo ---------------------------- Test 35 ----------------------------->>testtrygrep
\r
231 (pushd %srcdir% & %pcre2grep% -L -r --include=grepinputx --include grepinput8 --exclude-dir="^\." "fox" ./testdata | sort & popd) >>testtrygrep
\r
232 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
234 echo ---------------------------- Test 36 ----------------------------->>testtrygrep
\r
235 (pushd %srcdir% & %pcre2grep% -L -r --include=grepinput --exclude "grepinput$" --exclude=grepinput8 --exclude-dir="^\." "fox" ./testdata | sort & popd) >>testtrygrep
\r
236 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
238 echo ---------------------------- Test 37 ----------------------------->>testtrygrep
\r
239 (pushd %srcdir% & %pcre2grep% "^(a+)*\d" ./testdata/grepinput & popd) >>testtrygrep 2>teststderrgrep
\r
240 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
241 echo ======== STDERR ========>>testtrygrep
\r
242 type teststderrgrep >>testtrygrep
\r
244 echo ---------------------------- Test 38 ------------------------------>>testtrygrep
\r
245 (pushd %srcdir% & %pcre2grep% ">\x00<" ./testdata/grepinput & popd) >>testtrygrep
\r
246 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
248 echo ---------------------------- Test 39 ------------------------------>>testtrygrep
\r
249 (pushd %srcdir% & %pcre2grep% -A1 "before the binary zero" ./testdata/grepinput & popd) >>testtrygrep
\r
250 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
252 echo ---------------------------- Test 40 ------------------------------>>testtrygrep
\r
253 (pushd %srcdir% & %pcre2grep% -B1 "after the binary zero" ./testdata/grepinput & popd) >>testtrygrep
\r
254 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
256 echo ---------------------------- Test 41 ------------------------------>>testtrygrep
\r
257 (pushd %srcdir% & %pcre2grep% -B1 -o "\w+ the binary zero" ./testdata/grepinput & popd) >>testtrygrep
\r
258 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
260 echo ---------------------------- Test 42 ------------------------------>>testtrygrep
\r
261 (pushd %srcdir% & %pcre2grep% -B1 -onH "\w+ the binary zero" ./testdata/grepinput & popd) >>testtrygrep
\r
262 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
264 echo ---------------------------- Test 43 ------------------------------>>testtrygrep
\r
265 (pushd %srcdir% & %pcre2grep% -on "before|zero|after" ./testdata/grepinput & popd) >>testtrygrep
\r
266 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
268 echo ---------------------------- Test 44 ------------------------------>>testtrygrep
\r
269 (pushd %srcdir% & %pcre2grep% -on -e before -ezero -e after ./testdata/grepinput & popd) >>testtrygrep
\r
270 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
272 echo ---------------------------- Test 45 ------------------------------>>testtrygrep
\r
273 (pushd %srcdir% & %pcre2grep% -on -f ./testdata/greplist -e binary ./testdata/grepinput & popd) >>testtrygrep
\r
274 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
276 echo ---------------------------- Test 46 ------------------------------>>testtrygrep
\r
277 (pushd %srcdir% & %pcre2grep% -eabc -e "(unclosed" ./testdata/grepinput & popd) >>testtrygrep 2>&1
\r
278 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
280 echo ---------------------------- Test 47 ------------------------------>>testtrygrep
\r
281 (pushd %srcdir% & %pcre2grep% -Fx AB.VE^
\r
283 elephant ./testdata/grepinput & popd) >>testtrygrep
\r
284 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
286 echo ---------------------------- Test 48 ------------------------------>>testtrygrep
\r
287 (pushd %srcdir% & %pcre2grep% -F AB.VE^
\r
289 elephant ./testdata/grepinput & popd) >>testtrygrep
\r
290 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
292 echo ---------------------------- Test 49 ------------------------------>>testtrygrep
\r
293 (pushd %srcdir% & %pcre2grep% -F -e DATA -e AB.VE^
\r
295 elephant ./testdata/grepinput & popd) >>testtrygrep
\r
296 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
298 echo ---------------------------- Test 50 ------------------------------>>testtrygrep
\r
299 (pushd %srcdir% & %pcre2grep% "^(abc|def|ghi|jkl)" ./testdata/grepinputx & popd) >>testtrygrep
\r
300 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
302 echo ---------------------------- Test 51 ------------------------------>>testtrygrep
\r
303 (pushd %srcdir% & %pcre2grep% -Mv "brown\sfox" ./testdata/grepinputv & popd) >>testtrygrep
\r
304 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
306 echo ---------------------------- Test 52 ------------------------------>>testtrygrep
\r
307 (pushd %srcdir% & %pcre2grep% --colour=always jumps ./testdata/grepinputv & popd) >>testtrygrep
\r
308 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
310 echo ---------------------------- Test 53 ------------------------------>>testtrygrep
\r
311 (pushd %srcdir% & %pcre2grep% --file-offsets "before|zero|after" ./testdata/grepinput & popd) >>testtrygrep
\r
312 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
314 echo ---------------------------- Test 54 ------------------------------>>testtrygrep
\r
315 (pushd %srcdir% & %pcre2grep% --line-offsets "before|zero|after" ./testdata/grepinput & popd) >>testtrygrep
\r
316 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
318 echo ---------------------------- Test 55 ----------------------------->>testtrygrep
\r
319 (pushd %srcdir% & %pcre2grep% -f./testdata/greplist --color=always ./testdata/grepinputx & popd) >>testtrygrep
\r
320 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
322 echo ---------------------------- Test 56 ----------------------------->>testtrygrep
\r
323 (pushd %srcdir% & %pcre2grep% -c lazy ./testdata/grepinput* & popd) >>testtrygrep
\r
324 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
326 echo ---------------------------- Test 57 ----------------------------->>testtrygrep
\r
327 (pushd %srcdir% & %pcre2grep% -c -l lazy ./testdata/grepinput* & popd) >>testtrygrep
\r
328 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
330 echo ---------------------------- Test 58 ----------------------------->>testtrygrep
\r
331 (pushd %srcdir% & %pcre2grep% --regex=PATTERN ./testdata/grepinput & popd) >>testtrygrep
\r
332 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
334 echo ---------------------------- Test 59 ----------------------------->>testtrygrep
\r
335 (pushd %srcdir% & %pcre2grep% --regexp=PATTERN ./testdata/grepinput & popd) >>testtrygrep
\r
336 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
338 echo ---------------------------- Test 60 ----------------------------->>testtrygrep
\r
339 (pushd %srcdir% & %pcre2grep% --regex PATTERN ./testdata/grepinput & popd) >>testtrygrep
\r
340 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
342 echo ---------------------------- Test 61 ----------------------------->>testtrygrep
\r
343 (pushd %srcdir% & %pcre2grep% --regexp PATTERN ./testdata/grepinput & popd) >>testtrygrep
\r
344 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
346 echo ---------------------------- Test 62 ----------------------------->>testtrygrep
\r
347 (pushd %srcdir% & %pcre2grep% --match-limit=1000 --no-jit -M "This is a file(.|\R)*file." ./testdata/grepinput & popd) >>testtrygrep 2>&1
\r
348 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
350 echo ---------------------------- Test 63 ----------------------------->>testtrygrep
\r
351 (pushd %srcdir% & %pcre2grep% --recursion-limit=1000 --no-jit -M "This is a file(.|\R)*file." ./testdata/grepinput & popd) >>testtrygrep 2>&1
\r
352 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
354 echo ---------------------------- Test 64 ------------------------------>>testtrygrep
\r
355 (pushd %srcdir% & %pcre2grep% -o1 "(?<=PAT)TERN (ap(pear)s)" ./testdata/grepinput & popd) >>testtrygrep
\r
356 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
358 echo ---------------------------- Test 65 ------------------------------>>testtrygrep
\r
359 (pushd %srcdir% & %pcre2grep% -o2 "(?<=PAT)TERN (ap(pear)s)" ./testdata/grepinput & popd) >>testtrygrep
\r
360 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
362 echo ---------------------------- Test 66 ------------------------------>>testtrygrep
\r
363 (pushd %srcdir% & %pcre2grep% -o3 "(?<=PAT)TERN (ap(pear)s)" ./testdata/grepinput & popd) >>testtrygrep
\r
364 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
366 echo ---------------------------- Test 67 ------------------------------>>testtrygrep
\r
367 (pushd %srcdir% & %pcre2grep% -o12 "(?<=PAT)TERN (ap(pear)s)" ./testdata/grepinput & popd) >>testtrygrep
\r
368 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
370 echo ---------------------------- Test 68 ------------------------------>>testtrygrep
\r
371 (pushd %srcdir% & %pcre2grep% --only-matching=2 "(?<=PAT)TERN (ap(pear)s)" ./testdata/grepinput & popd) >>testtrygrep
\r
372 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
374 echo ---------------------------- Test 69 ----------------------------->>testtrygrep
\r
375 (pushd %srcdir% & %pcre2grep% -vn --colour=always pattern ./testdata/grepinputx & popd) >>testtrygrep
\r
376 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
378 echo ---------------------------- Test 70 ----------------------------->>testtrygrep
\r
379 (pushd %srcdir% & %pcre2grep% --color=always -M "triple:\t.*\n\n" ./testdata/grepinput3 & popd) >>testtrygrep
\r
380 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
382 echo ---------------------------- Test 71 ----------------------------->>testtrygrep
\r
383 (pushd %srcdir% & %pcre2grep% -o "^01|^02|^03" ./testdata/grepinput & popd) >>testtrygrep
\r
384 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
386 echo ---------------------------- Test 72 ----------------------------->>testtrygrep
\r
387 (pushd %srcdir% & %pcre2grep% --color=always "^01|^02|^03" ./testdata/grepinput & popd) >>testtrygrep
\r
388 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
390 echo ---------------------------- Test 73 ----------------------------->>testtrygrep
\r
391 (pushd %srcdir% & %pcre2grep% -o --colour=always "^01|^02|^03" ./testdata/grepinput & popd) >>testtrygrep
\r
392 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
394 echo ---------------------------- Test 74 ----------------------------->>testtrygrep
\r
395 (pushd %srcdir% & %pcre2grep% -o "^01|02|^03" ./testdata/grepinput & popd) >>testtrygrep
\r
396 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
398 echo ---------------------------- Test 75 ----------------------------->>testtrygrep
\r
399 (pushd %srcdir% & %pcre2grep% --color=always "^01|02|^03" ./testdata/grepinput & popd) >>testtrygrep
\r
400 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
402 echo ---------------------------- Test 76 ----------------------------->>testtrygrep
\r
403 (pushd %srcdir% & %pcre2grep% -o --colour=always "^01|02|^03" ./testdata/grepinput & popd) >>testtrygrep
\r
404 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
406 echo ---------------------------- Test 77 ----------------------------->>testtrygrep
\r
407 (pushd %srcdir% & %pcre2grep% -o "^01|^02|03" ./testdata/grepinput & popd) >>testtrygrep
\r
408 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
410 echo ---------------------------- Test 78 ----------------------------->>testtrygrep
\r
411 (pushd %srcdir% & %pcre2grep% --color=always "^01|^02|03" ./testdata/grepinput & popd) >>testtrygrep
\r
412 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
414 echo ---------------------------- Test 79 ----------------------------->>testtrygrep
\r
415 (pushd %srcdir% & %pcre2grep% -o --colour=always "^01|^02|03" ./testdata/grepinput & popd) >>testtrygrep
\r
416 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
418 echo ---------------------------- Test 80 ----------------------------->>testtrygrep
\r
419 (pushd %srcdir% & %pcre2grep% -o "\b01|\b02" ./testdata/grepinput & popd) >>testtrygrep
\r
420 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
422 echo ---------------------------- Test 81 ----------------------------->>testtrygrep
\r
423 (pushd %srcdir% & %pcre2grep% --color=always "\b01|\b02" ./testdata/grepinput & popd) >>testtrygrep
\r
424 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
426 echo ---------------------------- Test 82 ----------------------------->>testtrygrep
\r
427 (pushd %srcdir% & %pcre2grep% -o --colour=always "\b01|\b02" ./testdata/grepinput & popd) >>testtrygrep
\r
428 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
430 echo ---------------------------- Test 83 ----------------------------->>testtrygrep
\r
431 (pushd %srcdir% & %pcre2grep% --buffer-size=10 --max-buffer-size=100 "^a" ./testdata/grepinput3 & popd) >>testtrygrep 2>&1
\r
432 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
434 echo ---------------------------- Test 84 ----------------------------->>testtrygrep
\r
435 echo testdata/grepinput3 >testtemp1grep
\r
436 (pushd %srcdir% & %pcre2grep% --file-list ./testdata/grepfilelist --file-list %builddir%\testtemp1grep "fox|complete|t7" & popd) >>testtrygrep 2>&1
\r
437 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
439 echo ---------------------------- Test 85 ----------------------------->>testtrygrep
\r
440 (pushd %srcdir% & %pcre2grep% --file-list=./testdata/grepfilelist "dolor" ./testdata/grepinput3 & popd) >>testtrygrep 2>&1
\r
441 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
443 echo ---------------------------- Test 86 ----------------------------->>testtrygrep
\r
444 (pushd %srcdir% & %pcre2grep% "dog" ./testdata/grepbinary & popd) >>testtrygrep 2>&1
\r
445 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
447 echo ---------------------------- Test 87 ----------------------------->>testtrygrep
\r
448 (pushd %srcdir% & %pcre2grep% "cat" ./testdata/grepbinary & popd) >>testtrygrep 2>&1
\r
449 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
451 echo ---------------------------- Test 88 ----------------------------->>testtrygrep
\r
452 (pushd %srcdir% & %pcre2grep% -v "cat" ./testdata/grepbinary & popd) >>testtrygrep 2>&1
\r
453 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
455 echo ---------------------------- Test 89 ----------------------------->>testtrygrep
\r
456 (pushd %srcdir% & %pcre2grep% -I "dog" ./testdata/grepbinary & popd) >>testtrygrep 2>&1
\r
457 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
459 echo ---------------------------- Test 90 ----------------------------->>testtrygrep
\r
460 (pushd %srcdir% & %pcre2grep% --binary-files=without-match "dog" ./testdata/grepbinary & popd) >>testtrygrep 2>&1
\r
461 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
463 echo ---------------------------- Test 91 ----------------------------->>testtrygrep
\r
464 (pushd %srcdir% & %pcre2grep% -a "dog" ./testdata/grepbinary & popd) >>testtrygrep 2>&1
\r
465 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
467 echo ---------------------------- Test 92 ----------------------------->>testtrygrep
\r
468 (pushd %srcdir% & %pcre2grep% --binary-files=text "dog" ./testdata/grepbinary & popd) >>testtrygrep 2>&1
\r
469 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
471 echo ---------------------------- Test 93 ----------------------------->>testtrygrep
\r
472 (pushd %srcdir% & %pcre2grep% --text "dog" ./testdata/grepbinary & popd) >>testtrygrep 2>&1
\r
473 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
475 echo ---------------------------- Test 94 ----------------------------->>testtrygrep
\r
476 (pushd %srcdir% & %pcre2grep% -L -r --include=grepinputx --include grepinput8 "fox" ./testdata/grepinput* | sort & popd) >>testtrygrep
\r
477 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
479 echo ---------------------------- Test 95 ----------------------------->>testtrygrep
\r
480 (pushd %srcdir% & %pcre2grep% --file-list ./testdata/grepfilelist --exclude grepinputv "fox|complete" & popd) >>testtrygrep 2>&1
\r
481 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
483 echo ---------------------------- Test 96 ----------------------------->>testtrygrep
\r
484 (pushd %srcdir% & %pcre2grep% -L -r --include-dir=testdata --exclude "^^(?^!grepinput)" "fox" ./test* | sort & popd) >>testtrygrep
\r
485 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
487 echo ---------------------------- Test 97 ----------------------------->>testtrygrep
\r
488 echo grepinput$>testtemp1grep
\r
489 echo grepinput8>>testtemp1grep
\r
490 (pushd %srcdir% & %pcre2grep% -L -r --include=grepinput --exclude-from %builddir%\testtemp1grep --exclude-dir="^\." "fox" ./testdata | sort & popd) >>testtrygrep
\r
491 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
493 echo ---------------------------- Test 98 ----------------------------->>testtrygrep
\r
494 echo grepinput$>testtemp1grep
\r
495 echo grepinput8>>testtemp1grep
\r
496 (pushd %srcdir% & %pcre2grep% -L -r --exclude=grepinput3 --include=grepinput --exclude-from %builddir%\testtemp1grep --exclude-dir="^\." "fox" ./testdata | sort & popd) >>testtrygrep
\r
497 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
499 echo ---------------------------- Test 99 ----------------------------->>testtrygrep
\r
500 echo grepinput$>testtemp1grep
\r
501 echo grepinput8>testtemp2grep
\r
502 (pushd %srcdir% & %pcre2grep% -L -r --include grepinput --exclude-from %builddir%\testtemp1grep --exclude-from=%builddir%\testtemp2grep --exclude-dir="^\." "fox" ./testdata | sort & popd) >>testtrygrep
\r
503 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
505 echo ---------------------------- Test 100 ------------------------------>>testtrygrep
\r
506 (pushd %srcdir% & %pcre2grep% -Ho2 --only-matching=1 -o3 "(\w+) binary (\w+)(\.)?" ./testdata/grepinput & popd) >>testtrygrep
\r
507 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
509 echo ---------------------------- Test 101 ------------------------------>>testtrygrep
\r
510 (pushd %srcdir% & %pcre2grep% -o3 -Ho2 -o12 --only-matching=1 -o3 --colour=always --om-separator="|" "(\w+) binary (\w+)(\.)?" ./testdata/grepinput & popd) >>testtrygrep
\r
511 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
513 echo ---------------------------- Test 102 ----------------------------->>testtrygrep
\r
514 (pushd %srcdir% & %pcre2grep% -n "^$" ./testdata/grepinput3 & popd) >>testtrygrep 2>&1
\r
515 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
517 echo ---------------------------- Test 103 ----------------------------->>testtrygrep
\r
518 (pushd %srcdir% & %pcre2grep% --only-matching "^$" ./testdata/grepinput3 & popd) >>testtrygrep 2>&1
\r
519 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
521 echo ---------------------------- Test 104 ----------------------------->>testtrygrep
\r
522 (pushd %srcdir% & %pcre2grep% -n --only-matching "^$" ./testdata/grepinput3 & popd) >>testtrygrep 2>&1
\r
523 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
525 echo ---------------------------- Test 105 ----------------------------->>testtrygrep
\r
526 (pushd %srcdir% & %pcre2grep% --colour=always "ipsum|" ./testdata/grepinput3 & popd) >>testtrygrep 2>&1
\r
527 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
529 echo ---------------------------- Test 106 ----------------------------->>testtrygrep
\r
530 (pushd %srcdir% & echo a| %pcre2grep% -M "|a" & popd) >>testtrygrep 2>&1
\r
531 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
533 echo ---------------------------- Test 107 ----------------------------->>testtrygrep
\r
534 echo a>testtemp1grep
\r
535 echo aaaaa>>testtemp1grep
\r
536 (pushd %srcdir% & %pcre2grep% --line-offsets "(?<=\Ka)" %builddir%\testtemp1grep & popd) >>testtrygrep 2>&1
\r
537 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
539 echo ---------------------------- Test 108 ------------------------------>>testtrygrep
\r
540 (pushd %srcdir% & %pcre2grep% -lq PATTERN ./testdata/grepinput ./testdata/grepinputx & popd) >>testtrygrep
\r
541 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
543 echo ---------------------------- Test 109 ----------------------------->>testtrygrep
\r
544 (pushd %srcdir% & %pcre2grep% -cq lazy ./testdata/grepinput* & popd) >>testtrygrep
\r
545 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
547 echo ---------------------------- Test 110 ----------------------------->>testtrygrep
\r
548 (pushd %srcdir% & %pcre2grep% --om-separator / -Mo0 -o1 -o2 "match (\d+):\n (.)\n" testdata/grepinput & popd) >>testtrygrep
\r
549 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
551 echo ---------------------------- Test 111 ----------------------------->>testtrygrep
\r
552 (pushd %srcdir% & %pcre2grep% --line-offsets -M "match (\d+):\n (.)\n" testdata/grepinput & popd) >>testtrygrep
\r
553 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
555 echo ---------------------------- Test 112 ----------------------------->>testtrygrep
\r
556 (pushd %srcdir% & %pcre2grep% --file-offsets -M "match (\d+):\n (.)\n" testdata/grepinput & popd) >>testtrygrep
\r
557 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
559 echo ---------------------------- Test 113 ----------------------------->>testtrygrep
\r
560 (pushd %srcdir% & %pcre2grep% --total-count "the" testdata/grepinput* & popd) >>testtrygrep
\r
561 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
563 echo ---------------------------- Test 114 ----------------------------->>testtrygrep
\r
564 (pushd %srcdir% & %pcre2grep% -tc "the" testdata/grepinput* & popd) >>testtrygrep
\r
565 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
567 echo ---------------------------- Test 115 ----------------------------->>testtrygrep
\r
568 (pushd %srcdir% & %pcre2grep% -tlc "the" testdata/grepinput* & popd) >>testtrygrep
\r
569 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
571 echo ---------------------------- Test 116 ----------------------------->>testtrygrep
\r
572 (pushd %srcdir% & %pcre2grep% -th "the" testdata/grepinput* & popd) >>testtrygrep
\r
573 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
575 echo ---------------------------- Test 117 ----------------------------->>testtrygrep
\r
576 (pushd %srcdir% & %pcre2grep% -tch "the" testdata/grepinput* & popd) >>testtrygrep
\r
577 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
579 echo ---------------------------- Test 118 ----------------------------->>testtrygrep
\r
580 (pushd %srcdir% & %pcre2grep% -tL "the" testdata/grepinput* & popd) >>testtrygrep
\r
581 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
583 echo ---------------------------- Test 119 ----------------------------->>testtrygrep
\r
584 %printf% "123\n456\n789\n---abc\ndef\nxyz\n---\n" >testNinputgrep
\r
585 %pcre2grep% -Mo "(\n|[^-])*---" testNinputgrep >>testtrygrep
\r
586 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
588 echo ---------------------------- Test 120 ------------------------------>>testtrygrep
\r
589 (pushd %srcdir% & %pcre2grep% -HO "$0:$2$1$3" "(\w+) binary (\w+)(\.)?" ./testdata/grepinput & popd) >>testtrygrep
\r
590 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
592 :: Now compare the results.
\r
594 %cf% %srcdir%\testdata\grepoutput testtrygrep %cfout%
\r
595 if ERRORLEVEL 1 exit /b 1
\r
598 :: These tests require UTF-8 support
\r
601 echo Testing pcre2grep UTF-8 features
\r
603 echo ---------------------------- Test U1 ------------------------------>testtrygrep
\r
604 (pushd %srcdir% & %pcre2grep% -n -u --newline=any "^X" ./testdata/grepinput8 & popd) >>testtrygrep
\r
605 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
607 echo ---------------------------- Test U2 ------------------------------>>testtrygrep
\r
608 (pushd %srcdir% & %pcre2grep% -n -u -C 3 --newline=any "Match" ./testdata/grepinput8 & popd) >>testtrygrep
\r
609 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
611 echo ---------------------------- Test U3 ------------------------------>>testtrygrep
\r
612 (pushd %srcdir% & %pcre2grep% --line-offsets -u --newline=any "(?<=\K\x{17f})" ./testdata/grepinput8 & popd) >>testtrygrep
\r
613 echo RC=^%ERRORLEVEL%>>testtrygrep
\r
615 %cf% %srcdir%\testdata\grepoutput8 testtrygrep %cfout%
\r
616 if ERRORLEVEL 1 exit /b 1
\r
619 echo Skipping pcre2grep UTF-8 tests: no UTF-8 support in PCRE2 library
\r
623 :: We go to some contortions to try to ensure that the tests for the various
\r
624 :: newline settings will work in environments where the normal newline sequence
\r
625 :: is not \n. Do not use exported files, whose line endings might be changed.
\r
626 :: Instead, create an input file so that its contents are exactly what we want.
\r
627 :: These tests are run in the build directory.
\r
629 echo Testing pcre2grep newline settings
\r
630 %printf% "abc\rdef\r\nghi\njkl" >testNinputgrep
\r
632 echo ---------------------------- Test N1 ------------------------------>testtrygrep
\r
633 %pcre2grep% -n -N CR "^(abc|def|ghi|jkl)" testNinputgrep >>testtrygrep
\r
635 echo ---------------------------- Test N2 ------------------------------>>testtrygrep
\r
636 %pcre2grep% -n --newline=crlf "^(abc|def|ghi|jkl)" testNinputgrep >>testtrygrep
\r
638 echo ---------------------------- Test N3 ------------------------------>>testtrygrep
\r
639 for /f %%a in ('%printf% "def\rjkl"') do set pattern=%%a
\r
640 %pcre2grep% -n --newline=cr -F "!pattern!" testNinputgrep >>testtrygrep
\r
642 echo ---------------------------- Test N4 ------------------------------>>testtrygrep
\r
643 %pcre2grep% -n --newline=crlf -F -f %srcdir%/testdata/greppatN4 testNinputgrep >>testtrygrep
\r
645 echo ---------------------------- Test N5 ------------------------------>>testtrygrep
\r
646 %pcre2grep% -n --newline=any "^(abc|def|ghi|jkl)" testNinputgrep >>testtrygrep
\r
648 echo ---------------------------- Test N6 ------------------------------>>testtrygrep
\r
649 %pcre2grep% -n --newline=anycrlf "^(abc|def|ghi|jkl)" testNinputgrep >>testtrygrep
\r
651 %cf% %srcdir%\testdata\grepoutputN testtrygrep %cfout%
\r
652 if ERRORLEVEL 1 exit /b 1
\r
654 :: If pcre2grep supports script callouts, run some tests on them.
\r
656 %pcre2grep% --help | %pcre2grep% -q "Callout scripts in patterns are supported"
\r
657 if %ERRORLEVEL% equ 0 (
\r
658 echo Testing pcre2grep script callouts
\r
659 %pcre2grep% "(T)(..(.))(?C'cmd|/c echo|Arg1: [$1] [$2] [$3]|Arg2: ^$|${1}^$| ($4) ($14) ($0)')()" %srcdir%/testdata/grepinputv >testtrygrep
\r
660 %pcre2grep% "(T)(..(.))()()()()()()()(..)(?C'cmd|/c echo|Arg1: [$11] [${11}]')" %srcdir%/testdata/grepinputv >>testtrygrep
\r
661 %pcre2grep% "(T)(?C'|$0:$1$n')" %srcdir%/testdata/grepinputv >>testtrygrep
\r
662 %pcre2grep% "(T)(?C'|$1$n')(*F)" %srcdir%/testdata/grepinputv >>testtrygrep
\r
663 %cf% %srcdir%\testdata\grepoutputC testtrygrep %cfout%
\r
664 if ERRORLEVEL 1 exit /b 1
\r
666 echo Script callouts are not supported
\r
669 :: Finally, some tests to exercise code that is not tested above, just to be
\r
670 :: sure that it runs OK. Doing this improves the coverage statistics. The output
\r
673 echo Testing miscellaneous pcre2grep arguments (unchecked)
\r
674 %printf% "" >testtrygrep
\r
675 call :checkspecial "-xxxxx" 2 || exit /b 1
\r
676 call :checkspecial "--help" 0 || exit /b 1
\r
677 call :checkspecial "--line-buffered --colour=auto abc nul" 1 || exit /b 1
\r
679 :: Clean up local working files
\r
680 del testcf printf.js testNinputgrep teststderrgrep testtrygrep testtemp1grep testtemp2grep
\r
684 :: ------ Function to run and check a special pcre2grep arguments test -------
\r
687 %pcre2grep% %~1 >>testtrygrep 2>&1
\r
688 if %ERRORLEVEL% neq %2 (
\r
689 echo ** pcre2grep %~1 failed - check testtrygrep
\r