diff options
author | chpe <chpe@2f5784b3-3f2a-0410-8824-cb99058d5e15> | 2012-10-16 15:53:30 +0000 |
---|---|---|
committer | chpe <chpe@2f5784b3-3f2a-0410-8824-cb99058d5e15> | 2012-10-16 15:53:30 +0000 |
commit | 62c2f93fe63ee94ff2692091a42a7d594f5d4fe3 (patch) | |
tree | 3d1739b24c57943c20fa880eed55ab341db96a81 /RunTest | |
parent | 3f6d05379ea067a3b4f4a61e4be268ee8c37e7a6 (diff) | |
download | pcre-62c2f93fe63ee94ff2692091a42a7d594f5d4fe3.tar.gz |
pcre32: Add 32-bit library
Create libpcre32 that operates on 32-bit characters (UTF-32).
This turned out to be surprisingly simple after the UTF-16 support
was introduced; mostly just extra ifdefs and adjusting and adding
some tests.
git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1055 2f5784b3-3f2a-0410-8824-cb99058d5e15
Diffstat (limited to 'RunTest')
-rwxr-xr-x | RunTest | 190 |
1 files changed, 158 insertions, 32 deletions
@@ -18,8 +18,8 @@ # two tests for JIT-specific features, one to be run when JIT support is # available, and one when it is not. # -# Whichever of the 8-bit and 16-bit libraries exist are tested. It is also -# possible to select which to test by the arguments -8 or -16. +# Whichever of the 8-, 16- and 32-bit libraries exist are tested. It is also +# possible to select which to test by the arguments -8, -16 or -32. # # Other arguments for this script can be individual test numbers, or the word # "valgrind", or "sim" followed by an argument to run cross-compiled @@ -58,12 +58,16 @@ title13="Test 13: JIT-specific features (JIT not available)" title14="Test 14: Specials for the basic 8-bit library" title15="Test 15: Specials for the 8-bit library with UTF-8 support" title16="Test 16: Specials for the 8-bit library with Unicode propery support" -title17="Test 17: Specials for the basic 16-bit library" -title18="Test 18: Specials for the 16-bit library with UTF-16 support" -title19="Test 19: Specials for the 16-bit library with Unicode propery support" -title20="Test 20: DFA specials for the basic 16-bit library" -title21="Test 21: Reloads for the basic 16-bit library" -title22="Test 22: Reloads for the 16-bit library with UTF-16 support" +title17="Test 17: Specials for the basic 16/32-bit library" +title18="Test 18: Specials for the 16/32-bit library with UTF-16/32 support" +title19="Test 19: Specials for the 16/32-bit library with Unicode property support" +title20="Test 20: DFA specials for the basic 16/32-bit library" +title21="Test 21: Reloads for the basic 16/32-bit library" +title22="Test 22: Reloads for the 16/32-bit library with UTF-16/32 support" +title23="Test 23: Specials for the 16-bit library" +title24="Test 24: Specials for the 16-bit library with UTF-16 support" +title25="Test 25: Specials for the 32-bit library" +title26="Test 26: Specials for the 32-bit library with UTF-32 support" if [ $# -eq 1 -a "$1" = "list" ]; then echo $title1 @@ -88,6 +92,10 @@ if [ $# -eq 1 -a "$1" = "list" ]; then echo $title20 echo $title21 echo $title22 + echo $title23 + echo $title24 + echo $title25 + echo $title26 exit 0 fi @@ -147,6 +155,7 @@ valgrind= sim= arg8= arg16= +arg32= # This is in case the caller has set aliases (as I do - PH) unset cp ls mv rm @@ -176,6 +185,10 @@ do19=no do20=no do21=no do22=no +do23=no +do24=no +do25=no +do26=no while [ $# -gt 0 ] ; do case $1 in @@ -201,9 +214,14 @@ while [ $# -gt 0 ] ; do 20) do20=yes;; 21) do21=yes;; 22) do22=yes;; + 23) do23=yes;; + 24) do24=yes;; + 25) do25=yes;; + 26) do26=yes;; -8) arg8=yes;; -16) arg16=yes;; - valgrind) valgrind="valgrind -q --smc-check=all";; + -32) arg32=yes;; + valgrind) valgrind="valgrind --tool=memcheck --num-callers=30 --leak-check=no --error-limit=no --smc-check=all --log-file=report.%p ";; sim) shift; sim=$1;; *) echo "Unknown test number '$1'"; exit 1;; esac @@ -230,14 +248,24 @@ $sim ./pcretest -C pcre8 >/dev/null support8=$? $sim ./pcretest -C pcre16 >/dev/null support16=$? -if [ `expr $support8 + $support16` -eq 2 ] ; then +$sim ./pcretest -C pcre32 >/dev/null +support32=$? + +if [ `expr $support8 + $support16 + $support32` -gt 1 ] ; then test8= test16=-16 - if [ "$arg8" = yes -a "$arg16" != yes ] ; then + test32=-32 + if [ "$arg8" = yes -a "$arg16$arg32" != nono ] ; then test16=skip + test32=skip + fi + if [ "$arg16" = yes -a "$arg8$arg32" != nono ] ; then + test8=skip + test32=skip fi - if [ "$arg16" = yes -a "$arg8" != yes ] ; then + if [ "$arg32" = yes -a "$arg8$arg16" != nono ] ; then test8=skip + test16=skip fi else if [ $support8 -ne 0 ] ; then @@ -245,15 +273,37 @@ else echo "Cannot run 16-bit library tests: 16-bit library not compiled" exit 1 fi + if [ "$arg32" = yes ] ; then + echo "Cannot run 32-bit library tests: 32-bit library not compiled" + exit 1 + fi test8= test16=skip - else + test32=skip + elif [ $support16 -ne 0 ] ; then if [ "$arg8" = yes ] ; then echo "Cannot run 8-bit library tests: 8-bit library not compiled" exit 1 fi + if [ "$arg32" = yes ] ; then + echo "Cannot run 32-bit library tests: 32-bit library not compiled" + exit 1 + fi test8=skip test16=-16 + test32=skip + else # $support32 -ne 0 + if [ "$arg8" = yes ] ; then + echo "Cannot run 8-bit library tests: 8-bit library not compiled" + exit 1 + fi + if [ "$arg16" = yes ] ; then + echo "Cannot run 16-bit library tests: 16-bit library not compiled" + exit 1 + fi + test8=skip + test16=skip + test32=-32 fi fi @@ -348,7 +398,8 @@ if [ $do1 = no -a $do2 = no -a $do3 = no -a $do4 = no -a \ $do9 = no -a $do10 = no -a $do11 = no -a $do12 = no -a \ $do13 = no -a $do14 = no -a $do15 = no -a $do16 = no -a \ $do17 = no -a $do18 = no -a $do19 = no -a $do20 = no -a \ - $do21 = no -a $do22 = no ] ; then + $do21 = no -a $do22 = no -a $do23 = no -a $do24 = no -a \ + $do25 = no -a $do26 = no ] ; then do1=yes do2=yes do3=yes @@ -371,6 +422,10 @@ if [ $do1 = no -a $do2 = no -a $do3 = no -a $do4 = no -a \ do20=yes do21=yes do22=yes + do23=yes + do24=yes + do25=yes + do26=yes fi # Show which release and which test data @@ -379,11 +434,13 @@ echo "" echo PCRE C library tests using test data from $testdata $sim ./pcretest /dev/null -for bmode in "$test8" "$test16"; do +for bmode in "$test8" "$test16" "$test32"; do case "$bmode" in skip) continue;; - -16) if [ "$test8" != "skip" ] ; then echo ""; fi + -16) if [ "$test8$test32" != "skipskip" ] ; then echo ""; fi bits=16; echo "---- Testing 16-bit library ----"; echo "";; + -32) if [ "$test8$test16" != "skipskip" ] ; then echo ""; fi + bits=32; echo "---- Testing 32-bit library ----"; echo "";; *) bits=8; echo "---- Testing 8-bit library ----"; echo "";; esac @@ -687,10 +744,11 @@ fi if [ "$do14" = yes ] ; then echo $title14 - if [ "$bits" = "16" ] ; then - echo " Skipped when running 16-bit tests" + if [ "$bits" = "16" -o "$bits" = "32" ] ; then + echo " Skipped when running 16/32-bit tests" else cp -f $testdata/saved16 testsaved16 + cp -f $testdata/saved32 testsaved32 for opt in "" "-s" $jitopt; do $sim $valgrind ./pcretest -q $bmode $opt $testdata/testinput14 testtry if [ $? = 0 ] ; then @@ -710,8 +768,8 @@ fi if [ "$do15" = yes ] ; then echo $title15 - if [ "$bits" = "16" ] ; then - echo " Skipped when running 16-bit tests" + if [ "$bits" = "16" -o "$bits" = "32" ] ; then + echo " Skipped when running 16/32-bit tests" elif [ $utf -eq 0 ] ; then echo " Skipped because UTF-$bits support is not available" else @@ -734,8 +792,8 @@ fi if [ $do16 = yes ] ; then echo $title16 - if [ "$bits" = "16" ] ; then - echo " Skipped when running 16-bit tests" + if [ "$bits" = "16" -o "$bits" = "32" ] ; then + echo " Skipped when running 16/32-bit tests" elif [ $ucp -eq 0 ] ; then echo " Skipped because Unicode property support is not available" else @@ -754,7 +812,7 @@ if [ $do16 = yes ] ; then fi fi -# Tests for 16-bit-specific features +# Tests for 16/32-bit-specific features if [ $do17 = yes ] ; then echo $title17 @@ -776,7 +834,7 @@ if [ $do17 = yes ] ; then fi fi -# Tests for 16-bit-specific features (UTF-16 support) +# Tests for 16/32-bit-specific features (UTF-16/32 support) if [ $do18 = yes ] ; then echo $title18 @@ -788,7 +846,7 @@ if [ $do18 = yes ] ; then for opt in "" "-s" $jitopt; do $sim $valgrind ./pcretest -q $bmode $opt $testdata/testinput18 testtry if [ $? = 0 ] ; then - $cf $testdata/testoutput18 testtry + $cf $testdata/testoutput18-$bits testtry if [ $? != 0 ] ; then exit 1; fi else exit 1 fi @@ -800,7 +858,7 @@ if [ $do18 = yes ] ; then fi fi -# Tests for 16-bit-specific features (Unicode property support) +# Tests for 16/32-bit-specific features (Unicode property support) if [ $do19 = yes ] ; then echo $title19 @@ -824,7 +882,7 @@ if [ $do19 = yes ] ; then fi fi -# Tests for 16-bit-specific features in DFA non-UTF-16 mode +# Tests for 16/32-bit-specific features in DFA non-UTF-16 mode if [ $do20 = yes ] ; then echo $title20 @@ -845,7 +903,7 @@ if [ $do20 = yes ] ; then fi fi -# Tests for reloads with 16-bit library +# Tests for reloads with 16/32-bit library if [ $do21 = yes ] ; then echo $title21 @@ -857,9 +915,11 @@ if [ $do21 = yes ] ; then cp -f $testdata/saved8 testsaved8 cp -f $testdata/saved16LE-1 testsaved16LE-1 cp -f $testdata/saved16BE-1 testsaved16BE-1 + cp -f $testdata/saved32LE-1 testsaved32LE-1 + cp -f $testdata/saved32BE-1 testsaved32BE-1 $sim $valgrind ./pcretest -q $bmode $testdata/testinput21 testtry if [ $? = 0 ] ; then - $cf $testdata/testoutput21 testtry + $cf $testdata/testoutput21-$bits testtry if [ $? != 0 ] ; then exit 1; fi else exit 1 fi @@ -867,7 +927,7 @@ if [ $do21 = yes ] ; then fi fi -# Tests for reloads with 16-bit library (UTF-16 support) +# Tests for reloads with 16/32-bit library (UTF-16 support) if [ $do22 = yes ] ; then echo $title22 @@ -880,9 +940,75 @@ if [ $do22 = yes ] ; then else cp -f $testdata/saved16LE-2 testsaved16LE-2 cp -f $testdata/saved16BE-2 testsaved16BE-2 + cp -f $testdata/saved32LE-2 testsaved32LE-2 + cp -f $testdata/saved32BE-2 testsaved32BE-2 $sim $valgrind ./pcretest -q $bmode $testdata/testinput22 testtry if [ $? = 0 ] ; then - $cf $testdata/testoutput22 testtry + $cf $testdata/testoutput22-$bits testtry + if [ $? != 0 ] ; then exit 1; fi + else exit 1 + fi + echo " OK" + fi +fi + +if [ $do23 = yes ] ; then + echo $title23 + if [ "$bits" = "8" -o "$bits" = "32" ] ; then + echo " Skipped when running 8/32-bit tests" + else + $sim $valgrind ./pcretest -q $bmode $testdata/testinput23 testtry + if [ $? = 0 ] ; then + $cf $testdata/testoutput23 testtry + if [ $? != 0 ] ; then exit 1; fi + else exit 1 + fi + echo " OK" + fi +fi + +if [ $do24 = yes ] ; then + echo $title24 + if [ "$bits" = "8" -o "$bits" = "32" ] ; then + echo " Skipped when running 8/32-bit tests" + elif [ $utf -eq 0 ] ; then + echo " Skipped because UTF-$bits support is not available" + else + $sim $valgrind ./pcretest -q $bmode $testdata/testinput24 testtry + if [ $? = 0 ] ; then + $cf $testdata/testoutput24 testtry + if [ $? != 0 ] ; then exit 1; fi + else exit 1 + fi + echo " OK" + fi +fi + +if [ $do25 = yes ] ; then + echo $title25 + if [ "$bits" = "8" -o "$bits" = "16" ] ; then + echo " Skipped when running 8/16-bit tests" + else + $sim $valgrind ./pcretest -q $bmode $testdata/testinput25 testtry + if [ $? = 0 ] ; then + $cf $testdata/testoutput25 testtry + if [ $? != 0 ] ; then exit 1; fi + else exit 1 + fi + echo " OK" + fi +fi + +if [ $do26 = yes ] ; then + echo $title26 + if [ "$bits" = "8" -o "$bits" = "16" ] ; then + echo " Skipped when running 8/16-bit tests" + elif [ $utf -eq 0 ] ; then + echo " Skipped because UTF-$bits support is not available" + else + $sim $valgrind ./pcretest -q $bmode $testdata/testinput26 testtry + if [ $? = 0 ] ; then + $cf $testdata/testoutput26 testtry if [ $? != 0 ] ; then exit 1; fi else exit 1 fi @@ -890,7 +1016,7 @@ if [ $do22 = yes ] ; then fi fi -# End of loop for 8-bit/16-bit tests +# End of loop for 8/16/32-bit tests done # Clean up local working files |