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