| #! /bin/sh |
| |
| # Script to run the Perl-compatible PCRE2 tests through Perl. For testing |
| # with different versions of Perl, if the first argument is "-perl" then the |
| # second is taken as the Perl command to use, and both are then removed. |
| # |
| # The argument can be the number of the specific Perl compatible test to run |
| # (ex: "1", "4", "26" or "27"), otherwise it runs all tests and returns at |
| # exit, the test number with an incorrect output or the test number plus 32 |
| # if it failed to run completely. It returns with 0 on success. |
| |
| # This script should be run with the main PCRE2 directory current. |
| |
| if [ "$1" = "-perl" ]; then |
| PERL="$2" |
| ARGS="$1 $PERL" |
| shift 2 |
| else |
| PERL=perl |
| ARGS="" |
| fi |
| |
| RC=0 |
| |
| if [ -z "$1" ] || [ "$1" = "1" ]; then |
| echo "-----------------------------------------------------------------" |
| echo "Perl test: main functionality (PCRE2 test 1)" |
| if ./perltest.sh $ARGS testdata/testinput1 testtry; then |
| tail -n +2 testtry > testtry2 |
| diff -u testdata/testoutput1 testtry2 || RC=1 |
| else |
| RC=33 |
| fi |
| /bin/rm -f testtry testtry2 |
| echo "" |
| fi |
| |
| if [ -z "$1" ] || [ "$1" = "4" ]; then |
| echo "-----------------------------------------------------------------" |
| echo "Perl test: UTF-8 and Unicode property features (PCRE2 test 4)" |
| if ./perltest.sh $ARGS -utf8 testdata/testinput4 testtry; then |
| tail -n +2 testtry > testtry2 |
| diff -u testdata/testoutput4 testtry2 || RC=4 |
| else |
| RC=36 |
| fi |
| /bin/rm -f testtry testtry2 |
| echo "" |
| fi |
| |
| P=$($PERL -MUnicode::UCD -e 'print Unicode::UCD::UnicodeVersion, "\n"') |
| |
| if [ -z "$1" ] || [ "$1" = "26" ]; then |
| echo "-----------------------------------------------------------------" |
| echo "Perl test: Unicode property tests (PCRE2 test 26)" |
| U=$(head -5 testdata/testinput26 | $PERL -ne 'print "$1\n" if /tests for version ([\d.]+)$/') |
| if [ "$U" != "$P" ]; then |
| echo "SKIPPED: Perl uses Unicode $P but version $U was expected" |
| else |
| if ./perltest.sh $ARGS testdata/testinput26 testtry; then |
| tail -n +2 testtry > testtry2 |
| diff -u testdata/testoutput26 testtry2 || RC=26 |
| else |
| RC=58 |
| fi |
| /bin/rm -f testtry testtry2 |
| echo "" |
| fi |
| fi |
| |
| if [ -z "$1" ] || [ "$1" = "27" ]; then |
| echo "-----------------------------------------------------------------" |
| echo "Perl test: Unicode property tests (PCRE2 test 27)" |
| U=$(head -5 testdata/testinput27 | $PERL -ne 'print "$1\n" if /tests for version ([\d.]+)$/') |
| if [ "$U" != "$P" ]; then |
| echo "SKIPPED: Perl uses Unicode $P but version $U was expected" |
| else |
| if ./perltest.sh $ARGS testdata/testinput27 testtry; then |
| tail -n +2 testtry > testtry2 |
| diff -u testdata/testoutput27 testtry2 || RC=27 |
| else |
| RC=59 |
| fi |
| /bin/rm -f testtry testtry2 |
| echo "" |
| fi |
| fi |
| |
| exit $RC |
| # End |