"Fossies" - the Fresh Open Source Software Archive

Member "pcre-8.42/RunTest.bat" (31 Jan 2014, 17518 Bytes) of package /linux/misc/pcre-8.42.tar.bz2:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) MS DOS Batch source code syntax highlighting (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file.

    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 presence 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 @rem Zoltan Herczeg added libpcre32 support
   23 
   24 setlocal enabledelayedexpansion
   25 if [%srcdir%]==[] (
   26 if exist testdata\ set srcdir=.)
   27 if [%srcdir%]==[] (
   28 if exist ..\testdata\ set srcdir=..)
   29 if [%srcdir%]==[] (
   30 if exist ..\..\testdata\ set srcdir=..\..)
   31 if NOT exist %srcdir%\testdata\ (
   32 Error: echo distribution testdata folder not found!
   33 call :conferror
   34 exit /b 1
   35 goto :eof
   36 )
   37 
   38 if [%pcretest%]==[] set pcretest=.\pcretest.exe
   39 
   40 echo source dir is %srcdir%
   41 echo pcretest=%pcretest%
   42 
   43 if NOT exist %pcretest% (
   44 echo Error: %pcretest% not found!
   45 echo.
   46 call :conferror
   47 exit /b 1
   48 )
   49 
   50 %pcretest% -C linksize >NUL
   51 set link_size=%ERRORLEVEL%
   52 %pcretest% -C pcre8 >NUL
   53 set support8=%ERRORLEVEL%
   54 %pcretest% -C pcre16 >NUL
   55 set support16=%ERRORLEVEL%
   56 %pcretest% -C pcre32 >NUL
   57 set support32=%ERRORLEVEL%
   58 %pcretest% -C utf >NUL
   59 set utf=%ERRORLEVEL%
   60 %pcretest% -C ucp >NUL
   61 set ucp=%ERRORLEVEL%
   62 %pcretest% -C jit >NUL
   63 set jit=%ERRORLEVEL%
   64 
   65 if %support8% EQU 1 (
   66 if not exist testout8 md testout8
   67 if not exist testoutstudy8 md testoutstudy8
   68 if not exist testoutjit8 md testoutjit8
   69 )
   70 
   71 if %support16% EQU 1 (
   72 if not exist testout16 md testout16
   73 if not exist testoutstudy16 md testoutstudy16
   74 if not exist testoutjit16 md testoutjit16
   75 )
   76 
   77 if %support16% EQU 1 (
   78 if not exist testout32 md testout32
   79 if not exist testoutstudy32 md testoutstudy32
   80 if not exist testoutjit32 md testoutjit32
   81 )
   82 
   83 set do1=no
   84 set do2=no
   85 set do3=no
   86 set do4=no
   87 set do5=no
   88 set do6=no
   89 set do7=no
   90 set do8=no
   91 set do9=no
   92 set do10=no
   93 set do11=no
   94 set do12=no
   95 set do13=no
   96 set do14=no
   97 set do15=no
   98 set do16=no
   99 set do17=no
  100 set do18=no
  101 set do19=no
  102 set do20=no
  103 set do21=no
  104 set do22=no
  105 set do23=no
  106 set do24=no
  107 set do25=no
  108 set do26=no
  109 set all=yes
  110 
  111 for %%a in (%*) do (
  112   set valid=no
  113   for %%v in (1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26) do if %%v == %%a set valid=yes
  114   if "!valid!" == "yes" (
  115     set do%%a=yes
  116     set all=no
  117 ) else (
  118     echo Invalid test number - %%a!
  119         echo Usage %0 [ test_number ] ...
  120         echo Where test_number is one or more optional test numbers 1 through 26, default is all tests.
  121         exit /b 1
  122 )
  123 )
  124 set failed="no"
  125 
  126 if "%all%" == "yes" (
  127   set do1=yes
  128   set do2=yes
  129   set do3=yes
  130   set do4=yes
  131   set do5=yes
  132   set do6=yes
  133   set do7=yes
  134   set do8=yes
  135   set do9=yes
  136   set do10=yes
  137   set do11=yes
  138   set do12=yes
  139   set do13=yes
  140   set do14=yes
  141   set do15=yes
  142   set do16=yes
  143   set do17=yes
  144   set do18=yes
  145   set do19=yes
  146   set do20=yes
  147   set do21=yes
  148   set do22=yes
  149   set do23=yes
  150   set do24=yes
  151   set do25=yes
  152   set do26=yes
  153 )
  154 
  155 @echo RunTest.bat's pcretest output is written to newly created subfolders named
  156 @echo testout, testoutstudy and testoutjit.
  157 @echo.
  158 
  159 set mode=
  160 set bits=8
  161 
  162 :nextMode
  163 if "%mode%" == "" (
  164   if %support8% EQU 0 goto modeSkip
  165   echo.
  166   echo ---- Testing 8-bit library ----
  167   echo.
  168 )
  169 if "%mode%" == "-16" (
  170   if %support16% EQU 0 goto modeSkip
  171   echo.
  172   echo ---- Testing 16-bit library ----
  173   echo.
  174 )
  175 if "%mode%" == "-32" (
  176   if %support32% EQU 0 goto modeSkip
  177   echo.
  178   echo ---- Testing 32-bit library ----
  179   echo.
  180 )
  181 if "%do1%" == "yes" call :do1
  182 if "%do2%" == "yes" call :do2
  183 if "%do3%" == "yes" call :do3
  184 if "%do4%" == "yes" call :do4
  185 if "%do5%" == "yes" call :do5
  186 if "%do6%" == "yes" call :do6
  187 if "%do7%" == "yes" call :do7
  188 if "%do8%" == "yes" call :do8
  189 if "%do9%" == "yes" call :do9
  190 if "%do10%" == "yes" call :do10
  191 if "%do11%" == "yes" call :do11
  192 if "%do12%" == "yes" call :do12
  193 if "%do13%" == "yes" call :do13
  194 if "%do14%" == "yes" call :do14
  195 if "%do15%" == "yes" call :do15
  196 if "%do16%" == "yes" call :do16
  197 if "%do17%" == "yes" call :do17
  198 if "%do18%" == "yes" call :do18
  199 if "%do19%" == "yes" call :do19
  200 if "%do20%" == "yes" call :do20
  201 if "%do21%" == "yes" call :do21
  202 if "%do22%" == "yes" call :do22
  203 if "%do23%" == "yes" call :do23
  204 if "%do24%" == "yes" call :do24
  205 if "%do25%" == "yes" call :do25
  206 if "%do26%" == "yes" call :do26
  207 :modeSkip
  208 if "%mode%" == "" (
  209   set mode=-16
  210   set bits=16
  211   goto nextMode
  212 )
  213 if "%mode%" == "-16" (
  214   set mode=-32
  215   set bits=32
  216   goto nextMode
  217 )
  218 
  219 @rem If mode is -32, testing is finished
  220 if %failed% == "yes" (
  221 echo In above output, one or more of the various tests failed!
  222 exit /b 1
  223 )
  224 echo All OK
  225 goto :eof
  226 
  227 :runsub
  228 @rem Function to execute pcretest and compare the output
  229 @rem Arguments are as follows:
  230 @rem
  231 @rem       1 = test number
  232 @rem       2 = outputdir
  233 @rem       3 = test name use double quotes
  234 @rem   4 - 9 = pcretest options
  235 
  236 if [%1] == [] (
  237   echo Missing test number argument!
  238   exit /b 1
  239 )
  240 
  241 if [%2] == [] (
  242   echo Missing outputdir!
  243   exit /b 1
  244 )
  245 
  246 if [%3] == [] (
  247   echo Missing test name argument!
  248   exit /b 1
  249 )
  250 
  251 set testinput=testinput%1
  252 set testoutput=testoutput%1
  253 if exist %srcdir%\testdata\win%testinput% (
  254   set testinput=wintestinput%1
  255   set testoutput=wintestoutput%1
  256 )
  257 
  258 echo Test %1: %3
  259 %pcretest% %mode% %4 %5 %6 %7 %8 %9 %srcdir%\testdata\%testinput% >%2%bits%\%testoutput%
  260 if errorlevel 1 (
  261   echo.          failed executing command-line:
  262   echo.            %pcretest% %mode% %4 %5 %6 %7 %8 %9 %srcdir%\testdata\%testinput% ^>%2%bits%\%testoutput%
  263   set failed="yes"
  264   goto :eof
  265 )
  266 
  267 set type=
  268 if [%1]==[11] (
  269   set type=-%bits%
  270 )
  271 if [%1]==[18] (
  272   set type=-%bits%
  273 )
  274 if [%1]==[21] (
  275   set type=-%bits%
  276 )
  277 if [%1]==[22] (
  278   set type=-%bits%
  279 )
  280 
  281 fc /n %srcdir%\testdata\%testoutput%%type% %2%bits%\%testoutput% >NUL
  282 
  283 if errorlevel 1 (
  284   echo.          failed comparison: fc /n %srcdir%\testdata\%testoutput% %2%bits%\%testoutput%
  285   if [%1]==[2] (
  286     echo.
  287     echo ** Test 2 requires a lot of stack. PCRE can be configured to
  288     echo ** use heap for recursion. Otherwise, to pass Test 2
  289     echo ** you generally need to allocate 8 mb stack to PCRE.
  290     echo ** See the 'pcrestack' page for a discussion of PCRE's
  291     echo ** stack usage.
  292     echo.
  293 )
  294   if [%1]==[3] (
  295     echo.
  296     echo ** Test 3 failure usually means french locale is not
  297     echo ** available on the system, rather than a bug or problem with PCRE.
  298     echo.
  299     goto :eof
  300 )
  301 
  302   set failed="yes"
  303   goto :eof
  304 )
  305 
  306 echo.          Passed.
  307 goto :eof
  308 
  309 :do1
  310 call :runsub 1 testout "Main functionality (Compatible with Perl >= 5.10)" -q
  311 call :runsub 1 testoutstudy "Test with Study Override" -q -s
  312 if %jit% EQU 1 call :runsub 1 testoutjit "Test with JIT Override" -q -s+
  313 goto :eof
  314 
  315 :do2
  316   call :runsub 2 testout "API, errors, internals, and non-Perl stuff" -q
  317   call :runsub 2 testoutstudy "Test with Study Override" -q -s
  318   if %jit% EQU 1 call :runsub 2 testoutjit "Test with JIT Override" -q -s+
  319 goto :eof
  320 
  321 :do3
  322   call :runsub 3 testout "Locale-specific features" -q
  323   call :runsub 3 testoutstudy "Test with Study Override" -q -s
  324   if %jit% EQU 1 call :runsub 3 testoutjit "Test with JIT Override" -q -s+
  325 goto :eof
  326 
  327 :do4
  328 if %utf% EQU 0 (
  329   echo Test 4 Skipped due to absence of UTF-%bits% support.
  330   goto :eof
  331 )
  332   call :runsub 4 testout "UTF-%bits% support - (Compatible with Perl >= 5.10)" -q
  333   call :runsub 4 testoutstudy "Test with Study Override" -q -s
  334   if %jit% EQU 1 call :runsub 4 testoutjit "Test with JIT Override" -q -s+
  335 goto :eof
  336 
  337 :do5
  338 if %utf% EQU 0 (
  339   echo Test 5 Skipped due to absence of UTF-%bits% support.
  340   goto :eof
  341 )
  342   call :runsub 5 testout "API, internals, and non-Perl stuff for UTF-%bits%" -q
  343   call :runsub 5 testoutstudy "Test with Study Override" -q -s
  344   if %jit% EQU 1 call :runsub 5 testoutjit "Test with JIT Override" -q -s+
  345 goto :eof
  346 
  347 :do6
  348 if %ucp% EQU 0 (
  349   echo Test 6 Skipped due to absence of Unicode property support.
  350   goto :eof
  351 )
  352   call :runsub 6 testout "Unicode property support (Compatible with Perl >= 5.10)" -q
  353   call :runsub 6 testoutstudy "Test with Study Override" -q -s
  354   if %jit% EQU 1 call :runsub 6 testoutjit "Test with JIT Override" -q -s+
  355 goto :eof
  356 
  357 :do7
  358 if %ucp% EQU 0 (
  359   echo Test 7 Skipped due to absence of Unicode property support.
  360   goto :eof
  361 )
  362   call :runsub 7 testout "API, internals, and non-Perl stuff for Unicode property support" -q
  363   call :runsub 7 testoutstudy "Test with Study Override" -q -s
  364   if %jit% EQU 1 call :runsub 7 testoutjit "Test with JIT Override" -q -s+
  365 goto :eof
  366 
  367 :do8
  368   call :runsub 8 testout "DFA matching main functionality" -q -dfa
  369   call :runsub 8 testoutstudy "Test with Study Override" -q -dfa -s
  370 goto :eof
  371 
  372 :do9
  373 if %utf% EQU 0 (
  374   echo Test 9 Skipped due to absence of UTF-%bits% support.
  375   goto :eof
  376 )
  377   call :runsub 9 testout "DFA matching with UTF-%bits%" -q -dfa
  378   call :runsub 9 testoutstudy "Test with Study Override" -q -dfa -s
  379   goto :eof
  380 
  381 :do10
  382 if %ucp% EQU 0 (
  383   echo Test 10 Skipped due to absence of Unicode property support.
  384   goto :eof
  385 )
  386   call :runsub 10 testout "DFA matching with Unicode properties" -q -dfa
  387   call :runsub 10 testoutstudy "Test with Study Override" -q -dfa -s
  388 goto :eof
  389 
  390 :do11
  391 if NOT %link_size% EQU 2 (
  392   echo Test 11 Skipped because link size is not 2.
  393   goto :eof
  394 )
  395 if %ucp% EQU 0 (
  396   echo Test 11 Skipped due to absence of Unicode property support.
  397   goto :eof
  398 )
  399   call :runsub 11 testout "Internal offsets and code size tests" -q
  400   call :runsub 11 testoutstudy "Test with Study Override" -q -s
  401 goto :eof
  402 
  403 :do12
  404 if %jit% EQU 0 (
  405   echo Test 12 Skipped due to absence of JIT support.
  406   goto :eof
  407 )
  408   call :runsub 12 testout "JIT-specific features (JIT available)" -q
  409 goto :eof
  410 
  411 :do13
  412 if %jit% EQU 1 (
  413   echo Test 13 Skipped due to presence of JIT support.
  414   goto :eof
  415 )
  416   call :runsub 13 testout "JIT-specific features (JIT not available)" -q
  417 goto :eof
  418 
  419 :do14
  420 if NOT %bits% EQU 8 (
  421   echo Test 14 Skipped when running 16/32-bit tests.
  422   goto :eof
  423 )
  424   copy /Y %srcdir%\testdata\saved16 testsaved16
  425   copy /Y %srcdir%\testdata\saved32 testsaved32
  426   call :runsub 14 testout "Specials for the basic 8-bit library" -q
  427   call :runsub 14 testoutstudy "Test with Study Override" -q -s
  428   if %jit% EQU 1 call :runsub 14 testoutjit "Test with JIT Override" -q -s+
  429 goto :eof
  430 
  431 :do15
  432 if NOT %bits% EQU 8 (
  433   echo Test 15 Skipped when running 16/32-bit tests.
  434   goto :eof
  435 )
  436 if %utf% EQU 0 (
  437   echo Test 15 Skipped due to absence of UTF-%bits% support.
  438   goto :eof
  439 )
  440   call :runsub 15 testout "Specials for the 8-bit library with UTF-%bits% support" -q
  441   call :runsub 15 testoutstudy "Test with Study Override" -q -s
  442   if %jit% EQU 1 call :runsub 15 testoutjit "Test with JIT Override" -q -s+
  443 goto :eof
  444 
  445 :do16
  446 if NOT %bits% EQU 8 (
  447   echo Test 16 Skipped when running 16/32-bit tests.
  448   goto :eof
  449 )
  450 if %ucp% EQU 0 (
  451   echo Test 16 Skipped due to absence of Unicode property support.
  452   goto :eof
  453 )
  454   call :runsub 16 testout "Specials for the 8-bit library with Unicode propery support" -q
  455   call :runsub 16 testoutstudy "Test with Study Override" -q -s
  456   if %jit% EQU 1 call :runsub 16 testoutjit "Test with JIT Override" -q -s+
  457 goto :eof
  458 
  459 :do17
  460 if %bits% EQU 8 (
  461   echo Test 17 Skipped when running 8-bit tests.
  462   goto :eof
  463 )
  464   call :runsub 17 testout "Specials for the basic 16/32-bit library" -q
  465   call :runsub 17 testoutstudy "Test with Study Override" -q -s
  466   if %jit% EQU 1 call :runsub 17 testoutjit "Test with JIT Override" -q -s+
  467 goto :eof
  468 
  469 :do18
  470 if %bits% EQU 8 (
  471   echo Test 18 Skipped when running 8-bit tests.
  472   goto :eof
  473 )
  474 if %utf% EQU 0 (
  475   echo Test 18 Skipped due to absence of UTF-%bits% support.
  476   goto :eof
  477 )
  478   call :runsub 18 testout "Specials for the 16/32-bit library with UTF-%bits% support" -q
  479   call :runsub 18 testoutstudy "Test with Study Override" -q -s
  480   if %jit% EQU 1 call :runsub 18 testoutjit "Test with JIT Override" -q -s+
  481 goto :eof
  482 
  483 :do19
  484 if %bits% EQU 8 (
  485   echo Test 19 Skipped when running 8-bit tests.
  486   goto :eof
  487 )
  488 if %ucp% EQU 0 (
  489   echo Test 19 Skipped due to absence of Unicode property support.
  490   goto :eof
  491 )
  492   call :runsub 19 testout "Specials for the 16/32-bit library with Unicode property support" -q
  493   call :runsub 19 testoutstudy "Test with Study Override" -q -s
  494   if %jit% EQU 1 call :runsub 19 testoutjit "Test with JIT Override" -q -s+
  495 goto :eof
  496 
  497 :do20
  498 if %bits% EQU 8 (
  499   echo Test 20 Skipped when running 8-bit tests.
  500   goto :eof
  501 )
  502   call :runsub 20 testout "DFA specials for the basic 16/32-bit library" -q -dfa
  503   call :runsub 20 testoutstudy "Test with Study Override" -q -dfa -s
  504 goto :eof
  505 
  506 :do21
  507 if %bits% EQU 8 (
  508   echo Test 21 Skipped when running 8-bit tests.
  509   goto :eof
  510 )
  511 if NOT %link_size% EQU 2 (
  512   echo Test 21 Skipped because link size is not 2.
  513   goto :eof
  514 )
  515 copy /Y %srcdir%\testdata\saved8 testsaved8
  516 copy /Y %srcdir%\testdata\saved16LE-1 testsaved16LE-1
  517 copy /Y %srcdir%\testdata\saved16BE-1 testsaved16BE-1
  518 copy /Y %srcdir%\testdata\saved32LE-1 testsaved32LE-1
  519 copy /Y %srcdir%\testdata\saved32BE-1 testsaved32BE-1
  520 call :runsub 21 testout "Reloads for the basic 16/32-bit library" -q
  521 call :runsub 21 testoutstudy "Test with Study Override" -q -s
  522 if %jit% EQU 1 call :runsub 21 testoutjit "Test with JIT Override" -q -s+
  523 goto :eof
  524 
  525 :do22
  526 if %bits% EQU 8 (
  527   echo Test 22 Skipped when running 8-bit tests.
  528   goto :eof
  529 )
  530 if %utf% EQU 0 (
  531   echo Test 22 Skipped due to absence of UTF-%bits% support.
  532   goto :eof
  533 )
  534 if NOT %link_size% EQU 2 (
  535   echo Test 22 Skipped because link size is not 2.
  536   goto :eof
  537 )
  538 copy /Y %srcdir%\testdata\saved16LE-2 testsaved16LE-2
  539 copy /Y %srcdir%\testdata\saved16BE-2 testsaved16BE-2
  540 copy /Y %srcdir%\testdata\saved32LE-2 testsaved32LE-2
  541 copy /Y %srcdir%\testdata\saved32BE-2 testsaved32BE-2
  542 call :runsub 22 testout "Reloads for the 16/32-bit library with UTF-16/32 support" -q
  543 call :runsub 22 testoutstudy "Test with Study Override" -q -s
  544 if %jit% EQU 1 call :runsub 22 testoutjit "Test with JIT Override" -q -s+
  545 goto :eof
  546 
  547 :do23
  548 if NOT %bits% EQU 16 (
  549   echo Test 23 Skipped when running 8/32-bit tests.
  550   goto :eof
  551 )
  552 call :runsub 23 testout "Specials for the 16-bit library" -q
  553 call :runsub 23 testoutstudy "Test with Study Override" -q -s
  554 if %jit% EQU 1 call :runsub 23 testoutjit "Test with JIT Override" -q -s+
  555 goto :eof
  556 
  557 :do24
  558 if NOT %bits% EQU 16 (
  559   echo Test 24 Skipped when running 8/32-bit tests.
  560   goto :eof
  561 )
  562 if %utf% EQU 0 (
  563   echo Test 24 Skipped due to absence of UTF-%bits% support.
  564   goto :eof
  565 )
  566 call :runsub 24 testout "Specials for the 16-bit library with UTF-16 support" -q
  567 call :runsub 24 testoutstudy "Test with Study Override" -q -s
  568 if %jit% EQU 1 call :runsub 24 testoutjit "Test with JIT Override" -q -s+
  569 goto :eof
  570 
  571 :do25
  572 if NOT %bits% EQU 32 (
  573   echo Test 25 Skipped when running 8/16-bit tests.
  574   goto :eof
  575 )
  576 call :runsub 25 testout "Specials for the 32-bit library" -q
  577 call :runsub 25 testoutstudy "Test with Study Override" -q -s
  578 if %jit% EQU 1 call :runsub 25 testoutjit "Test with JIT Override" -q -s+
  579 goto :eof
  580 
  581 :do26
  582 if NOT %bits% EQU 32 (
  583   echo Test 26 Skipped when running 8/16-bit tests.
  584   goto :eof
  585 )
  586 if %utf% EQU 0 (
  587   echo Test 26 Skipped due to absence of UTF-%bits% support.
  588   goto :eof
  589 )
  590 call :runsub 26 testout "Specials for the 32-bit library with UTF-32 support" -q
  591 call :runsub 26 testoutstudy "Test with Study Override" -q -s
  592 if %jit% EQU 1 call :runsub 26 testoutjit "Test with JIT Override" -q -s+
  593 goto :eof
  594 
  595 :conferror
  596 @echo.
  597 @echo Either your build is incomplete or you have a configuration error.
  598 @echo.
  599 @echo If configured with cmake and executed via "make test" or the MSVC "RUN_TESTS"
  600 @echo project, pcre_test.bat defines variables and automatically calls RunTest.bat.
  601 @echo For manual testing of all available features, after configuring with cmake
  602 @echo and building, you can run the built pcre_test.bat. For best results with
  603 @echo cmake builds and tests avoid directories with full path names that include
  604 @echo spaces for source or build.
  605 @echo.
  606 @echo Otherwise, if the build dir is in a subdir of the source dir, testdata needed
  607 @echo for input and verification should be found automatically when (from the
  608 @echo location of the the built exes) you call RunTest.bat. By default RunTest.bat
  609 @echo runs all tests compatible with the linked pcre library but it can be given
  610 @echo a test number as an argument.
  611 @echo.
  612 @echo If the build dir is not under the source dir you can either copy your exes
  613 @echo to the source folder or copy RunTest.bat and the testdata folder to the
  614 @echo location of your built exes and then run RunTest.bat.
  615 @echo.
  616 goto :eof