#! /bin/sh # Run PCRE tests cf=diff # Select which tests to run; if no selection, run all do1=no do2=no do3=no do4=no while [ $# -gt 0 ] ; do case $1 in 1) do1=yes;; 2) do2=yes;; 3) do3=yes;; 4) do4=yes;; *) echo "Unknown test number $1"; exit 1;; esac shift done if [ $do1 = no -a $do2 = no -a $do3 = no -a $do4 = no ] ; then do1=yes do2=yes do3=yes do4=yes fi # Primary test, Perl-compatible if [ $do1 = yes ] ; then echo "Testing main functionality (Perl compatible)" ./pcretest testdata/testinput1 testtry if [ $? = 0 ] ; then $cf testtry testdata/testoutput1 if [ $? != 0 ] ; then exit 1; fi else exit 1 fi fi # PCRE tests that are not Perl-compatible - API & error tests, mostly if [ $do2 = yes ] ; then echo "Testing API and error handling (not Perl compatible)" ./pcretest -i testdata/testinput2 testtry if [ $? = 0 ] ; then $cf testtry testdata/testoutput2 if [ $? != 0 ] ; then exit 1; fi else exit 1 fi fi # Additional Perl-compatible tests for Perl 5.005's new features if [ $do3 = yes ] ; then echo "Testing Perl 5.005 features (Perl 5.005 compatible)" ./pcretest testdata/testinput3 testtry if [ $? = 0 ] ; then $cf testtry testdata/testoutput3 if [ $? != 0 ] ; then exit 1; fi else exit 1 fi fi if [ $do1 = yes -a $do2 = yes -a $do3 = yes ] ; then echo "The three main tests all ran OK" echo " " fi # Locale-specific tests, provided the "fr" locale is available if [ $do4 = yes ] ; then locale -a | grep '^fr$' >/dev/null if [ $? -eq 0 ] ; then echo "Testing locale-specific features (using 'fr' locale)" ./pcretest testdata/testinput4 testtry if [ $? = 0 ] ; then $cf testtry testdata/testoutput4 if [ $? != 0 ] ; then exit 1; fi echo "Locale test ran OK" echo " " else exit 1 fi else echo "Cannot test locale-specific features - 'fr' locale not found," echo "or the \"locale\" command is not available to check for it." echo " " fi fi # End