mirror of
https://github.com/PCRE2Project/pcre2.git
synced 2025-10-16 05:17:33 +08:00

This makes it easier to se all the failures at once, rather than having to fix one at a time. The output is now grouped into directories.
91 lines
2.6 KiB
Bash
Executable File
91 lines
2.6 KiB
Bash
Executable File
#! /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
|