summaryrefslogtreecommitdiff
path: root/RunTest
diff options
context:
space:
mode:
authorchpe <chpe@2f5784b3-3f2a-0410-8824-cb99058d5e15>2012-10-16 15:53:30 +0000
committerchpe <chpe@2f5784b3-3f2a-0410-8824-cb99058d5e15>2012-10-16 15:53:30 +0000
commit62c2f93fe63ee94ff2692091a42a7d594f5d4fe3 (patch)
tree3d1739b24c57943c20fa880eed55ab341db96a81 /RunTest
parent3f6d05379ea067a3b4f4a61e4be268ee8c37e7a6 (diff)
downloadpcre-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-xRunTest190
1 files changed, 158 insertions, 32 deletions
diff --git a/RunTest b/RunTest
index 61da889..115ce67 100755
--- a/RunTest
+++ b/RunTest
@@ -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