/[pcre]/code/trunk/RunTest.bat
ViewVC logotype

Contents of /code/trunk/RunTest.bat

Parent Directory Parent Directory | Revision Log Revision Log


Revision 883 - (show annotations) (download)
Mon Jan 16 08:35:42 2012 UTC (2 years, 7 months ago) by zherczeg
File MIME type: text/plain
File size: 13890 byte(s)
Fix compiler warnings
1 @echo off
2 @rem This file must use CRLF linebreaks to function properly
3 @rem and requires both pcretest and pcregrep
4 @rem This file was originally contributed by Ralf Junker, and touched up by
5 @rem Daniel Richard G. Tests 10-12 added by Philip H.
6 @rem Philip H also changed test 3 to use "wintest" files.
7 @rem
8 @rem Updated by Tom Fortmann to support explicit test numbers on the command line.
9 @rem Added argument validation and added error reporting.
10 @rem
11 @rem MS Windows batch file to run pcretest on testfiles with the correct
12 @rem options.
13 @rem
14 @rem Sheri Pierce added logic to skip feature dependent tests
15 @rem tests 4 5 9 15 and 18 require utf support
16 @rem tests 6 7 10 16 and 19 require ucp support
17 @rem 11 requires ucp and link size 2
18 @rem 12 requires presense of jit support
19 @rem 13 requires absence of jit support
20 @rem Sheri P also added override tests for study and jit testing
21 @rem Zoltan Herczeg added libpcre16 support
22
23 setlocal enabledelayedexpansion
24 if [%srcdir%]==[] (
25 if exist testdata\ set srcdir=.)
26 if [%srcdir%]==[] (
27 if exist ..\testdata\ set srcdir=..)
28 if [%srcdir%]==[] (
29 if exist ..\..\testdata\ set srcdir=..\..)
30 if NOT exist "%srcdir%\testdata\" (
31 Error: echo distribution testdata folder not found!
32 call :conferror
33 exit /b 1
34 goto :eof
35 )
36
37 if "%pcretest%"=="" set pcretest=.\pcretest.exe
38
39 echo source dir is %srcdir%
40 echo pcretest=%pcretest%
41
42 if NOT exist "%pcretest%" (
43 echo Error: "%pcretest%" not found!
44 echo.
45 call :conferror
46 exit /b 1
47 )
48
49 "%pcretest%" -C linksize >NUL
50 set link_size=%ERRORLEVEL%
51 "%pcretest%" -C pcre8 >NUL
52 set support8=%ERRORLEVEL%
53 "%pcretest%" -C pcre16 >NUL
54 set support16=%ERRORLEVEL%
55 "%pcretest%" -C utf >NUL
56 set utf=%ERRORLEVEL%
57 "%pcretest%" -C ucp >NUL
58 set ucp=%ERRORLEVEL%
59 "%pcretest%" -C jit >NUL
60 set jit=%ERRORLEVEL%
61
62 if %support8% EQU 1 (
63 if not exist testout8 md testout8
64 if not exist testoutstudy8 md testoutstudy8
65 if not exist testoutjit8 md testoutjit8
66 )
67
68 if %support16% EQU 1 (
69 if not exist testout16 md testout16
70 if not exist testoutstudy16 md testoutstudy16
71 if not exist testoutjit16 md testoutjit16
72 )
73
74 set do1=no
75 set do2=no
76 set do3=no
77 set do4=no
78 set do5=no
79 set do6=no
80 set do7=no
81 set do8=no
82 set do9=no
83 set do10=no
84 set do11=no
85 set do12=no
86 set do13=no
87 set do14=no
88 set do15=no
89 set do16=no
90 set do17=no
91 set do18=no
92 set do19=no
93 set do20=no
94 set all=yes
95
96 for %%a in (%*) do (
97 set valid=no
98 for %%v in (1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20) do if %%v == %%a set valid=yes
99 if "!valid!" == "yes" (
100 set do%%a=yes
101 set all=no
102 ) else (
103 echo Invalid test number - %%a!
104 echo Usage %0 [ test_number ] ...
105 echo Where test_number is one or more optional test numbers 1 through 20, default is all tests.
106 exit /b 1
107 )
108 )
109 set failed="no"
110
111 if "%all%" == "yes" (
112 set do1=yes
113 set do2=yes
114 set do3=yes
115 set do4=yes
116 set do5=yes
117 set do6=yes
118 set do7=yes
119 set do8=yes
120 set do9=yes
121 set do10=yes
122 set do11=yes
123 set do12=yes
124 set do13=yes
125 set do14=yes
126 set do15=yes
127 set do16=yes
128 set do17=yes
129 set do18=yes
130 set do19=yes
131 set do20=yes
132 )
133
134 @echo RunTest.bat's pcretest output is written to newly created subfolders named
135 @echo testout, testoutstudy and testoutjit.
136 @echo.
137
138 set mode=
139 set bits=8
140
141 :nextMode
142 if "%mode%" == "" (
143 if %support8% EQU 0 goto modeSkip
144 echo.
145 echo ---- Testing 8-bit library ----
146 echo.
147 ) else (
148 if %support16% EQU 0 goto modeSkip
149 echo.
150 echo ---- Testing 16-bit library ----
151 echo.
152 )
153 if "%do1%" == "yes" call :do1
154 if "%do2%" == "yes" call :do2
155 if "%do3%" == "yes" call :do3
156 if "%do4%" == "yes" call :do4
157 if "%do5%" == "yes" call :do5
158 if "%do6%" == "yes" call :do6
159 if "%do7%" == "yes" call :do7
160 if "%do8%" == "yes" call :do8
161 if "%do9%" == "yes" call :do9
162 if "%do10%" == "yes" call :do10
163 if "%do11%" == "yes" call :do11
164 if "%do12%" == "yes" call :do12
165 if "%do13%" == "yes" call :do13
166 if "%do14%" == "yes" call :do14
167 if "%do15%" == "yes" call :do15
168 if "%do16%" == "yes" call :do16
169 if "%do17%" == "yes" call :do17
170 if "%do18%" == "yes" call :do18
171 if "%do19%" == "yes" call :do19
172 if "%do20%" == "yes" call :do20
173 :modeSkip
174 if "%mode%" == "" (
175 set mode=-16
176 set bits=16
177 goto nextMode
178 )
179
180 if %failed% == "yes" (
181 echo In above output, one or more of the various tests failed!
182 exit /b 1
183 )
184 echo All OK
185 goto :eof
186
187 :runsub
188 @rem Function to execute pcretest and compare the output
189 @rem Arguments are as follows:
190 @rem
191 @rem 1 = test number
192 @rem 2 = outputdir
193 @rem 3 = test name use double quotes
194 @rem 4 - 9 = pcretest options
195
196 if [%1] == [] (
197 echo Missing test number argument!
198 exit /b 1
199 )
200
201 if [%2] == [] (
202 echo Missing outputdir!
203 exit /b 1
204 )
205
206 if [%3] == [] (
207 echo Missing test name argument!
208 exit /b 1
209 )
210
211 set testinput=testinput%1
212 set testoutput=testoutput%1
213 if exist %srcdir%\testdata\win%testinput% (
214 set testinput=wintestinput%1
215 set testoutput=wintestoutput%1
216 )
217
218 echo Test %1: %3
219 "%pcretest%" %mode% %4 %5 %6 %7 %8 %9 "%srcdir%\testdata\%testinput%">%2%bits%\%testoutput%
220 if errorlevel 1 (
221 echo. failed executing command-line:
222 echo. "%pcretest%" %mode% %4 %5 %6 %7 %8 %9 "%srcdir%\testdata\%testinput%"^>%2%bits%\%testoutput%
223 set failed="yes"
224 goto :eof
225 )
226
227 if [%1]==[11] (
228 fc /n "%srcdir%\testdata\%testoutput%-%bits%" "%2%bits%\%testoutput%">NUL
229 ) else (
230 fc /n "%srcdir%\testdata\%testoutput%" "%2%bits%\%testoutput%">NUL
231 )
232 if errorlevel 1 (
233 echo. failed comparison: fc /n "%srcdir%\testdata\%testoutput%" "%2%bits%\%testoutput%"
234 if [%1]==[2] (
235 echo.
236 echo ** Test 2 requires a lot of stack. PCRE can be configured to
237 echo ** use heap for recursion. Otherwise, to pass Test 2
238 echo ** you generally need to allocate 8 mb stack to PCRE.
239 echo ** See the 'pcrestack' page for a discussion of PCRE's
240 echo ** stack usage.
241 echo.
242 )
243 if [%1]==[3] (
244 echo.
245 echo ** Test 3 failure usually means french locale is not
246 echo ** available on the system, rather than a bug or problem with PCRE.
247 echo.
248 goto :eof
249 )
250
251 set failed="yes"
252 goto :eof
253 )
254
255 echo. Passed.
256 goto :eof
257
258 :do1
259 call :runsub 1 testout "Main functionality - Compatible with Perl 5.8 and above" -q
260 call :runsub 1 testoutstudy "Test with Study Override" -q -s
261 if %jit% EQU 1 call :runsub 1 testoutjit "Test with JIT Override" -q -s+
262 goto :eof
263
264 :do2
265 call :runsub 2 testout "API, errors, internals, and non-Perl stuff (not UTF-8)" -q
266 call :runsub 2 testoutstudy "Test with Study Override" -q -s
267 if %jit% EQU 1 call :runsub 2 testoutjit "Test with JIT Override" -q -s+
268 goto :eof
269
270 :do3
271 call :runsub 3 testout "Locale-specific features" -q
272 call :runsub 3 testoutstudy "Test with Study Override" -q -s
273 if %jit% EQU 1 call :runsub 3 testoutjit "Test with JIT Override" -q -s+
274 goto :eof
275
276 :do4
277 if %utf% EQU 0 (
278 echo Test 4 Skipped due to absence of UTF-%bits% support.
279 goto :eof
280 )
281 call :runsub 4 testout "UTF-%bits% support - Compatible with Perl 5.8 and above" -q
282 call :runsub 4 testoutstudy "Test with Study Override" -q -s
283 if %jit% EQU 1 call :runsub 4 testoutjit "Test with JIT Override" -q -s+
284 goto :eof
285
286 :do5
287 if %utf% EQU 0 (
288 echo Test 5 Skipped due to absence of UTF-%bits% support.
289 goto :eof
290 )
291 call :runsub 5 testout "API, internals, and non-Perl stuff for UTF-%bits% support" -q
292 call :runsub 5 testoutstudy "Test with Study Override" -q -s
293 if %jit% EQU 1 call :runsub 5 testoutjit "Test with JIT Override" -q -s+
294 goto :eof
295
296 :do6
297 if %ucp% EQU 0 (
298 echo Test 6 Skipped due to absence of Unicode property support.
299 goto :eof
300 )
301 call :runsub 6 testout "Unicode property support (Compatible with Perl >= 5.10)" -q
302 call :runsub 6 testoutstudy "Test with Study Override" -q -s
303 if %jit% EQU 1 call :runsub 6 testoutjit "Test with JIT Override" -q -s+
304 goto :eof
305
306 :do7
307 if %ucp% EQU 0 (
308 echo Test 7 Skipped due to absence of Unicode property support.
309 goto :eof
310 )
311 call :runsub 7 testout "API, internals, and non-Perl stuff for Unicode property support" -q
312 call :runsub 7 testoutstudy "Test with Study Override" -q -s
313 if %jit% EQU 1 call :runsub 7 testoutjit "Test with JIT Override" -q -s+
314 goto :eof
315
316 :do8
317 call :runsub 8 testout "DFA matching main functionality" -q -dfa
318 call :runsub 8 testoutstudy "Test with Study Override" -q -dfa -s
319 goto :eof
320
321 :do9
322 if %utf% EQU 0 (
323 echo Test 9 Skipped due to absence of UTF-%bits% support.
324 goto :eof
325 )
326 call :runsub 9 testout "DFA matching with UTF-%bits%" -q -dfa
327 call :runsub 9 testoutstudy "Test with Study Override" -q -dfa -s
328 goto :eof
329
330 :do10
331 if %ucp% EQU 0 (
332 echo Test 10 Skipped due to absence of Unicode property support.
333 goto :eof
334 )
335 call :runsub 10 testout "DFA matching with Unicode properties" -q -dfa
336 call :runsub 10 testoutstudy "Test with Study Override" -q -dfa -s
337 goto :eof
338
339 :do11
340 if NOT %link_size% EQU 2 (
341 echo Test 11 Skipped because link size is not 2.
342 goto :eof
343 )
344 if %ucp% EQU 0 (
345 echo Test 11 Skipped due to absence of Unicode property support.
346 goto :eof
347 )
348 call :runsub 11 testout "Internal offsets and code size tests" -q
349 call :runsub 11 testoutstudy "Test with Study Override" -q -s
350 goto :eof
351
352 :do12
353 if %jit% EQU 0 (
354 echo Test 12 Skipped due to absence of JIT support.
355 goto :eof
356 )
357 call :runsub 12 testout "JIT-specific features - have JIT" -q
358 goto :eof
359
360 :do13
361 if %jit% EQU 1 (
362 echo Test 13 Skipped due to presence of JIT support.
363 goto :eof
364 )
365 call :runsub 13 testout "JIT-specific features - no JIT" -q
366 goto :eof
367
368 :do14
369 if NOT %bits% EQU 8 (
370 echo Test 14 Skipped when running 16-bit tests.
371 goto :eof
372 )
373 copy /Y "%srcdir%\testdata\saved16" testsaved16
374 call :runsub 14 testout "Specials for the basic 8-bit library" -q
375 call :runsub 14 testoutstudy "Test with Study Override" -q -s
376 if %jit% EQU 1 call :runsub 14 testoutjit "Test with JIT Override" -q -s+
377 goto :eof
378
379 :do15
380 if NOT %bits% EQU 8 (
381 echo Test 15 Skipped when running 16-bit tests.
382 goto :eof
383 )
384 if %utf% EQU 0 (
385 echo Test 15 Skipped due to absence of UTF-8 support.
386 goto :eof
387 )
388 call :runsub 15 testout "Specials for the 8-bit library with UTF-8 support" -q
389 call :runsub 15 testoutstudy "Test with Study Override" -q -s
390 if %jit% EQU 1 call :runsub 15 testoutjit "Test with JIT Override" -q -s+
391 goto :eof
392
393 :do16
394 if NOT %bits% EQU 8 (
395 echo Test 16 Skipped when running 16-bit tests.
396 goto :eof
397 )
398 if %ucp% EQU 0 (
399 echo Test 16 Skipped due to absence of Unicode property support.
400 goto :eof
401 )
402 call :runsub 16 testout "Specials for the 8-bit library with Unicode propery support" -q
403 call :runsub 16 testoutstudy "Test with Study Override" -q -s
404 if %jit% EQU 1 call :runsub 16 testoutjit "Test with JIT Override" -q -s+
405 goto :eof
406
407 :do17
408 if NOT %bits% EQU 16 (
409 echo Test 17 Skipped when running 8-bit tests.
410 goto :eof
411 )
412 copy /Y "%srcdir%\testdata\saved8" testsaved8
413 copy /Y "%srcdir%\testdata\saved16LE-1" testsaved16LE-1
414 copy /Y "%srcdir%\testdata\saved16BE-1" testsaved16BE-1
415 call :runsub 17 testout "Specials for the basic 8-bit library" -q
416 call :runsub 17 testoutstudy "Test with Study Override" -q -s
417 if %jit% EQU 1 call :runsub 17 testoutjit "Test with JIT Override" -q -s+
418 goto :eof
419
420 :do18
421 if NOT %bits% EQU 16 (
422 echo Test 18 Skipped when running 8-bit tests.
423 goto :eof
424 )
425 if %utf% EQU 0 (
426 echo Test 18 Skipped due to absence of UTF-8 support.
427 goto :eof
428 )
429 copy /Y "%srcdir%\testdata\saved16LE-2" testsaved16LE-2
430 copy /Y "%srcdir%\testdata\saved16BE-2" testsaved16BE-2
431 call :runsub 18 testout "Specials for the basic 8-bit library" -q
432 call :runsub 18 testoutstudy "Test with Study Override" -q -s
433 if %jit% EQU 1 call :runsub 18 testoutjit "Test with JIT Override" -q -s+
434 goto :eof
435
436 :do19
437 if NOT %bits% EQU 16 (
438 echo Test 19 Skipped when running 8-bit tests.
439 goto :eof
440 )
441 if %ucp% EQU 0 (
442 echo Test 19 Skipped due to absence of Unicode property support.
443 goto :eof
444 )
445 call :runsub 19 testout "Specials for the basic 8-bit library" -q
446 call :runsub 19 testoutstudy "Test with Study Override" -q -s
447 if %jit% EQU 1 call :runsub 19 testoutjit "Test with JIT Override" -q -s+
448 goto :eof
449
450 :do20
451 if NOT %bits% EQU 16 (
452 echo Test 20 Skipped when running 8-bit tests.
453 goto :eof
454 )
455 call :runsub 20 testout "DFA specials for the basic 16-bit library" -q
456 call :runsub 20 testoutstudy "Test with Study Override" -q -s
457 goto :eof
458
459 :conferror
460 @echo.
461 @echo Either your build is incomplete or you have a configuration error.
462 @echo.
463 @echo If configured with cmake and executed via "make test" or the MSVC "RUN_TESTS"
464 @echo project, pcre_test.bat defines variables and automatically calls RunTest.bat.
465 @echo For manual testing of all available features, after configuring with cmake
466 @echo and building, you can run the built pcre_test.bat. For best results with
467 @echo cmake builds and tests avoid directories with full path names that include
468 @echo spaces for source or build.
469 @echo.
470 @echo Otherwise, if the build dir is in a subdir of the source dir, testdata needed
471 @echo for input and verification should be found automatically when (from the
472 @echo location of the the built exes) you call RunTest.bat. By default RunTest.bat
473 @echo runs all tests compatible with the linked pcre library but it can be given
474 @echo a test number as an argument.
475 @echo.
476 @echo If the build dir is not under the source dir you can either copy your exes
477 @echo to the source folder or copy RunTest.bat and the testdata folder to the
478 @echo location of your built exes and then run RunTest.bat.
479 @echo.
480 goto :eof

Properties

Name Value
svn:keywords "Author Date Id Revision Url"

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12