mirror of
https://github.com/PCRE2Project/pcre2.git
synced 2025-10-16 22:35:45 +08:00

Found by Clang-Analyze in #576 This test fails without the code fix, which required correcting the way the pcre2grep tests are run with valgrind. The new test passes with the code changes made.
1158 lines
56 KiB
Bash
Executable File
1158 lines
56 KiB
Bash
Executable File
#! /bin/sh
|
|
|
|
# Run pcre2grep tests. The assumption is that the PCRE2 tests check the library
|
|
# itself. What we are checking here is the file handling and options that are
|
|
# supported by pcre2grep. This script must be run in the build directory.
|
|
|
|
# CODING CONVENTIONS:
|
|
# * Put printf arguments in single, not double quotes to avoid unwanted
|
|
# escaping.
|
|
# * Use \0 for binary zero in printf, not \x0, for the benefit of older
|
|
# versions (and use octal for other special values).
|
|
|
|
# Set the C locale, so that sort(1) behaves predictably.
|
|
|
|
LC_ALL=C
|
|
export LC_ALL
|
|
|
|
# Remove any non-default colouring and aliases that the caller may have set.
|
|
|
|
unset PCRE2GREP_COLOUR PCRE2GREP_COLOR PCREGREP_COLOUR PCREGREP_COLOR
|
|
unset GREP_COLOR GREP_COLORS
|
|
unset cp ls mv rm
|
|
|
|
# Remember the current (build) directory, set the program to be tested, and
|
|
# valgrind settings when requested.
|
|
|
|
builddir=`pwd`
|
|
: ${pcre2grep:=$builddir/pcre2grep}
|
|
: ${pcre2test:=$builddir/pcre2test}
|
|
|
|
if [ ! -x $pcre2grep ] ; then
|
|
echo "** $pcre2grep does not exist or is not executable."
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -x $pcre2test ] ; then
|
|
echo "** $pcre2test does not exist or is not executable."
|
|
exit 1
|
|
fi
|
|
|
|
valgrind=
|
|
while [ $# -gt 0 ] ; do
|
|
case $1 in
|
|
valgrind|-valgrind) valgrind="valgrind -q --leak-check=no --smc-check=all-non-file --error-exitcode=70";;
|
|
*) echo "RunGrepTest: Unknown argument $1"; exit 1;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
pcre2grep_version=`$pcre2grep -V`
|
|
if [ "$valgrind" = "" ] ; then
|
|
echo "Testing $pcre2grep_version"
|
|
else
|
|
echo "Testing $pcre2grep_version using valgrind"
|
|
fi
|
|
|
|
# Set up a suitable "diff" command for comparison. Some systems have a diff
|
|
# that lacks a -u option. Try to deal with this; better do the test for the -b
|
|
# option as well.
|
|
|
|
cf="diff"
|
|
diff -b /dev/null /dev/null 2>/dev/null && cf="diff -b"
|
|
diff -u /dev/null /dev/null 2>/dev/null && cf="diff -u"
|
|
diff -ub /dev/null /dev/null 2>/dev/null && cf="diff -ub"
|
|
|
|
# Add a -a (always treat as text) if available. This was added in an attempt
|
|
# to get more detail from an Alpine Linux test failure on GitHub.
|
|
|
|
$cf -a /dev/null /dev/null 2>/dev/null && cf="$cf -a"
|
|
|
|
# Some tests involve NUL characters. It seems impossible to handle them easily
|
|
# in many operating systems. An earlier version of this script used sed to
|
|
# translate NUL into the string ZERO, but this didn't work on Solaris (aka
|
|
# SunOS), where the version of sed explicitly doesn't like them, and also MacOS
|
|
# (Darwin), OpenBSD, FreeBSD, NetBSD, and some Linux distributions like Alpine,
|
|
# even when using GNU sed. A user suggested using tr instead, which
|
|
# necessitates translating to a single character. However, on (some versions
|
|
# of?) Solaris, the normal "tr" cannot handle binary zeros, but if
|
|
# /usr/xpg4/bin/tr is available, it can do so, so test for that.
|
|
|
|
if [ -x /usr/xpg4/bin/tr ] ; then
|
|
tr=/usr/xpg4/bin/tr
|
|
else
|
|
tr=tr
|
|
fi
|
|
|
|
# If this test is being run from "make check", $srcdir will be set. If not, set
|
|
# it to the current or parent directory, whichever one contains the test data.
|
|
# Subsequently, we run most of the pcre2grep tests in the source directory so
|
|
# that the file names in the output are always the same.
|
|
|
|
if [ -z "$srcdir" -o ! -d "$srcdir/testdata" ] ; then
|
|
if [ -d "./testdata" ] ; then
|
|
srcdir=.
|
|
elif [ -d "../testdata" ] ; then
|
|
srcdir=..
|
|
else
|
|
echo "Cannot find the testdata directory"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
# Set up the path to the valgrind JIT suppressions
|
|
|
|
vjs=
|
|
if [ "$valgrind" != "" ] ; then
|
|
$pcre2test -C jit >/dev/null
|
|
if [ $? -ne 0 ]; then
|
|
vjs="--suppressions=`realpath "$srcdir"`/testdata/valgrind-jit.supp"
|
|
fi
|
|
fi
|
|
|
|
# Check for the availability of UTF-8 support
|
|
|
|
$pcre2test -C unicode >/dev/null
|
|
utf8=$?
|
|
|
|
# Check default newline convention. If it does not include LF, force LF.
|
|
|
|
nl=`$pcre2test -C newline`
|
|
if [ "$nl" != "LF" -a "$nl" != "ANY" -a "$nl" != "ANYCRLF" ]; then
|
|
pcre2grep="$pcre2grep -N LF"
|
|
echo "Default newline setting forced to LF"
|
|
fi
|
|
|
|
# ------ Function to run and check a special pcre2grep arguments test -------
|
|
|
|
checkspecial()
|
|
{
|
|
$valgrind $pcre2grep $1 >>testtrygrep 2>&1
|
|
if [ $? -ne $2 ] ; then
|
|
echo "** pcre2grep $1 failed - check testtrygrep"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
# ------ Normal tests ------
|
|
|
|
echo "Testing pcre2grep main features"
|
|
|
|
echo "---------------------------- Test 1 ------------------------------" >testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep PATTERN ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 2 ------------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep '^PATTERN' ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 3 ------------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -in PATTERN ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 4 ------------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -ic PATTERN ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 5 ------------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -in PATTERN ./testdata/grepinput ./testdata/grepinputx) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 6 ------------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -inh PATTERN ./testdata/grepinput ./testdata/grepinputx) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 7 ------------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -il PATTERN ./testdata/grepinput ./testdata/grepinputx) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 8 ------------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -l PATTERN ./testdata/grepinput ./testdata/grepinputx) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 9 ------------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -q PATTERN ./testdata/grepinput ./testdata/grepinputx) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 10 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -q NEVER-PATTERN ./testdata/grepinput ./testdata/grepinputx) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 11 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -vn pattern ./testdata/grepinputx) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 12 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -ix pattern ./testdata/grepinputx) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 13 -----------------------------" >>testtrygrep
|
|
echo seventeen >testtemp1grep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -f./testdata/greplist -f $builddir/testtemp1grep ./testdata/grepinputx) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 14 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -w pat ./testdata/grepinput ./testdata/grepinputx) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 15 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep 'abc^*' ./testdata/grepinput) >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 16 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep abc ./testdata/grepinput ./testdata/nonexistfile) >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 17 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -M 'the\noutput' ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 18 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -Mn '(the\noutput|dog\.\n--)' ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 19 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -Mix 'Pattern' ./testdata/grepinputx) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 20 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -Mixn 'complete pair\nof lines' ./testdata/grepinputx) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 21 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -nA3 'four' ./testdata/grepinputx) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 22 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -nB3 'four' ./testdata/grepinputx) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 23 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -C3 'four' ./testdata/grepinputx) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 24 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -A9 'four' ./testdata/grepinputx) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 25 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -nB9 'four' ./testdata/grepinputx) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 26 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -A9 -B9 'four' ./testdata/grepinputx) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 27 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -A10 'four' ./testdata/grepinputx) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 28 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -nB10 'four' ./testdata/grepinputx) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 29 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -C12 -B10 'four' ./testdata/grepinputx) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 30 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -inB3 'pattern' ./testdata/grepinput ./testdata/grepinputx) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 31 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -inA3 'pattern' ./testdata/grepinput ./testdata/grepinputx) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 32 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -L 'fox' ./testdata/grepinput ./testdata/grepinputx) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 33 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep 'fox' ./testdata/grepnonexist) >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 34 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -s 'fox' ./testdata/grepnonexist) >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 35 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -L -r --include=grepinputx --include grepinput8 --exclude-dir='^\.' 'fox' ./testdata | sort) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 36 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -L -r --include='grepinput[^C]' --exclude 'grepinput$' --exclude='grepinput(Bad)?8' --exclude=grepinputM --exclude=grepinputUN --exclude-dir='^\.' 'fox' ./testdata | sort) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 37 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep '^(a+)*\d' ./testdata/grepinput) >>testtrygrep 2>teststderrgrep
|
|
echo "RC=$?" >>testtrygrep
|
|
echo "======== STDERR ========" >>testtrygrep
|
|
cat teststderrgrep >>testtrygrep
|
|
|
|
echo "---------------------------- Test 38 ------------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep '>\x00<' ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 39 ------------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -A1 'before the binary zero' ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 40 ------------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -B1 'after the binary zero' ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 41 ------------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -B1 -o '\w+ the binary zero' ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 42 ------------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -B1 -onH '\w+ the binary zero' ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 43 ------------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -on 'before|zero|after' ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 44 ------------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -on -e before -ezero -e after ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 45 ------------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -on -f ./testdata/greplist -e binary ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 46 ------------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -e 'unopened)' -e abc ./testdata/grepinput) >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -eabc -e '(unclosed' ./testdata/grepinput) >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -eabc -e xyz -e '[unclosed' ./testdata/grepinput) >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep --regex=123 -eabc -e xyz -e '[unclosed' ./testdata/grepinput) >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 47 ------------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -Fx "AB.VE
|
|
elephant" ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 48 ------------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -F "AB.VE
|
|
elephant" ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 49 ------------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -F -e DATA -e "AB.VE
|
|
elephant" ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 50 ------------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep "^(abc|def|ghi|jkl)" ./testdata/grepinputx) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 51 ------------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -Mv "brown\sfox" ./testdata/grepinputv) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 52 ------------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep --colour=always jumps ./testdata/grepinputv) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 53 ------------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep --file-offsets 'before|zero|after' ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 54 ------------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep --line-offsets 'before|zero|after' ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 55 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -f./testdata/greplist --color=always ./testdata/grepinputx) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 56 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -c --exclude=grepinputC lazy ./testdata/grepinput*) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 57 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -c -l --exclude=grepinputC lazy ./testdata/grepinput*) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 58 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep --regex=PATTERN ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 59 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep --regexp=PATTERN ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 60 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep --regex PATTERN ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 61 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep --regexp PATTERN ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 62 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $pcre2grep --match-limit=1000 --no-jit -M 'This is a file(.|\R)*file.' ./testdata/grepinput) >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 63 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $pcre2grep --recursion-limit=1K --no-jit -M 'This is a file(.|\R)*file.' ./testdata/grepinput) >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 64 ------------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -o1 '(?<=PAT)TERN (ap(pear)s)' ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 65 ------------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -o2 '(?<=PAT)TERN (ap(pear)s)' ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 66 ------------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -o3 '(?<=PAT)TERN (ap(pear)s)' ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 67 ------------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -o12 '(?<=PAT)TERN (ap(pear)s)' ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 68 ------------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep --only-matching=2 '(?<=PAT)TERN (ap(pear)s)' ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 69 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -vn --colour=always pattern ./testdata/grepinputx) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 70 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep --color=always -M "triple:\t.*\n\n" ./testdata/grepinput3) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep --color=always -M -n "triple:\t.*\n\n" ./testdata/grepinput3) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -M "triple:\t.*\n\n" ./testdata/grepinput3) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -M -n "triple:\t.*\n\n" ./testdata/grepinput3) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 71 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -o "^01|^02|^03" ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 72 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep --color=always "^01|^02|^03" ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 73 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -o --colour=always "^01|^02|^03" ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 74 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -o "^01|02|^03" ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 75 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep --color=always "^01|02|^03" ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 76 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -o --colour=always "^01|02|^03" ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 77 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -o "^01|^02|03" ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 78 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep --color=always "^01|^02|03" ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 79 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -o --colour=always "^01|^02|03" ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 80 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -o "\b01|\b02" ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 81 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep --color=always "\\b01|\\b02" ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 82 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -o --colour=always "\\b01|\\b02" ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 83 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep --buffer-size=10 --max-buffer-size=100 "^a" ./testdata/grepinput3) >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 84 -----------------------------" >>testtrygrep
|
|
echo testdata/grepinput3 >testtemp1grep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep --file-list ./testdata/grepfilelist --file-list $builddir/testtemp1grep "fox|complete|t7") >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 85 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep --file-list=./testdata/grepfilelist "dolor" ./testdata/grepinput3) >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 86 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep "dog" ./testdata/grepbinary) >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 87 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep "cat" ./testdata/grepbinary) >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 88 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -v "cat" ./testdata/grepbinary) >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 89 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -I "dog" ./testdata/grepbinary) >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 90 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep --binary-files=without-match "dog" ./testdata/grepbinary) >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 91 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -a "dog" ./testdata/grepbinary) >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 92 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep --binary-files=text "dog" ./testdata/grepbinary) >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 93 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep --text "dog" ./testdata/grepbinary) >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 94 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -L -r --include=grepinputx --include grepinput8 'fox' ./testdata/grepinput* | sort) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 95 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep --file-list ./testdata/grepfilelist --exclude grepinputv "fox|complete") >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 96 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -L -r --include-dir=testdata --exclude '^(?!grepinput)' --exclude=grepinput[MCU] 'fox' ./test* | sort) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 97 -----------------------------" >>testtrygrep
|
|
echo "grepinput$" >testtemp1grep
|
|
echo "grepinput8" >>testtemp1grep
|
|
echo "grepinputBad8" >>testtemp1grep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -L -r --include=grepinput --exclude=grepinput[MCU] --exclude-from $builddir/testtemp1grep --exclude-dir='^\.' 'fox' ./testdata | sort) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 98 -----------------------------" >>testtrygrep
|
|
echo "grepinput$" >testtemp1grep
|
|
echo "grepinput8" >>testtemp1grep
|
|
echo "grepinputBad8" >>testtemp1grep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -L -r --exclude=grepinput3 --exclude=grepinput[MCU] --include=grepinput --exclude-from $builddir/testtemp1grep --exclude-dir='^\.' 'fox' ./testdata | sort) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 99 -----------------------------" >>testtrygrep
|
|
echo "grepinput$" >testtemp1grep
|
|
echo "grepinput8" >testtemp2grep
|
|
echo "grepinputBad8" >>testtemp1grep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -L -r --include grepinput --exclude=grepinput[MCU] --exclude-from $builddir/testtemp1grep --exclude-from=$builddir/testtemp2grep --exclude-dir='^\.' 'fox' ./testdata | sort) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 100 ------------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -Ho2 --only-matching=1 -o3 '(\w+) binary (\w+)(\.)?' ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 101 ------------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -o3 -Ho2 -o12 --only-matching=1 -o3 --colour=always --om-separator='|' '(\w+) binary (\w+)(\.)?' ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 102 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -n "^$" ./testdata/grepinput3) >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 103 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep --only-matching "^$" ./testdata/grepinput3) >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 104 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -n --only-matching "^$" ./testdata/grepinput3) >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 105 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep --colour=always "ipsum|" ./testdata/grepinput3) >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 106 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; echo "a" | $valgrind $vjs $pcre2grep -M "|a" ) >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 107 -----------------------------" >>testtrygrep
|
|
echo "a" >testtemp1grep
|
|
echo "aaaaa" >>testtemp1grep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep --line-offsets --allow-lookaround-bsk '(?<=\Ka)' $builddir/testtemp1grep) >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 108 ------------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -lq PATTERN ./testdata/grepinput ./testdata/grepinputx) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 109 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -cq --exclude=grepinputC lazy ./testdata/grepinput*) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 110 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep --om-separator / -Mo0 -o1 -o2 'match (\d+):\n (.)\n' testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 111 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep --line-offsets -M 'match (\d+):\n (.)\n' testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 112 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep --file-offsets -M 'match (\d+):\n (.)\n' testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 113 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep --total-count --exclude=grepinputC 'the' testdata/grepinput*) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 114 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -tc --exclude=grepinputC 'the' testdata/grepinput*) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 115 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -tlc --exclude=grepinputC 'the' testdata/grepinput*) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 116 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep --exclude=grepinput[MCU] -th 'the' testdata/grepinput*) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 117 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -tch --exclude=grepinputC 'the' testdata/grepinput*) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 118 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -tL --exclude=grepinputC 'the' testdata/grepinput*) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 119 -----------------------------" >>testtrygrep
|
|
printf '123\n456\n789\n---abc\ndef\nxyz\n---\n' >testNinputgrep
|
|
$valgrind $vjs $pcre2grep -Mo '(\n|[^-])*---' testNinputgrep >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 120 ------------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -HO '$0:$2$1$3' '(\w+) binary (\w+)(\.)?' ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -HO '$&:$2$1$3' '(\w+) binary (\w+)(\.)?' ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -m 1 -O '$0:$a$b$e$f$r$t$v' '(\w+) binary (\w+)(\.)?' ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -HO '${X}' '(\w+) binary (\w+)(\.)?' ./testdata/grepinput) >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -HO 'XX$' '(\w+) binary (\w+)(\.)?' ./testdata/grepinput) >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -O '$x{12345678}' '(\w+) binary (\w+)(\.)?' ./testdata/grepinput) >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -O '$x{123Z' '(\w+) binary (\w+)(\.)?' ./testdata/grepinput) >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep --output '$x{1234}' '(\w+) binary (\w+)(\.)?' ./testdata/grepinput) >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 121 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -F '\E and (regex)' testdata/grepinputv) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 122 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -w 'cat|dog' testdata/grepinputv) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 123 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -w 'dog|cat' testdata/grepinputv) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 124 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -Mn --colour=always 'start[\s]+end' testdata/grepinputM) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -Mn --colour=always -A2 'start[\s]+end' testdata/grepinputM) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -Mn 'start[\s]+end' testdata/grepinputM) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -Mn -A2 'start[\s]+end' testdata/grepinputM) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 125 -----------------------------" >>testtrygrep
|
|
printf 'abcd\n' >testNinputgrep
|
|
$valgrind $vjs $pcre2grep --colour=always --allow-lookaround-bsk '(?<=\K.)' testNinputgrep >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
$valgrind $vjs $pcre2grep --colour=always --allow-lookaround-bsk '(?=.\K)' testNinputgrep >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
$valgrind $vjs $pcre2grep --colour=always --allow-lookaround-bsk '(?<=\K[ac])' testNinputgrep >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
$valgrind $vjs $pcre2grep --colour=always --allow-lookaround-bsk '(?=[ac]\K)' testNinputgrep >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
GREP_COLORS='ms=1;20' $valgrind $vjs $pcre2grep --colour=always --allow-lookaround-bsk '(?=[ac]\K)' testNinputgrep >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 126 -----------------------------" >>testtrygrep
|
|
printf 'Next line pattern has binary zero\nABC\0XYZ\n' >testtemp1grep
|
|
printf 'ABC\0XYZ\nABCDEF\nDEFABC\n' >testtemp2grep
|
|
$valgrind $vjs $pcre2grep -a -f testtemp1grep testtemp2grep >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
printf 'Next line pattern is erroneous.\n^abc)(xy' >testtemp1grep
|
|
$valgrind $vjs $pcre2grep -a -f testtemp1grep testtemp2grep >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 127 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -o --om-capture=0 'pattern()()()()' testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 128 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -m1M -o1 --om-capture=0 'pattern()()()()' testdata/grepinput) >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 129 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -m 2 'fox' testdata/grepinput) >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 130 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -o -m2 'fox' testdata/grepinput) >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 131 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -oc -m2 'fox' testdata/grepinput) >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 132 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; exec 3<testdata/grepinput; $valgrind $vjs $pcre2grep -m1 -A3 '^match' <&3; echo '---'; head -1 <&3; exec 3<&-) >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 133 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; exec 3<testdata/grepinput; $valgrind $vjs $pcre2grep -m1 -A3 '^match' <&3; echo '---'; $valgrind $vjs $pcre2grep -m1 -A3 '^match' <&3; exec 3<&-) >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 134 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep --max-count=1 -nH -O '=$x{41}$x423$o{103}$o1045=' 'fox' -) <$srcdir/testdata/grepinputv >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 135 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -HZ 'word' ./testdata/grepinputv) | $tr '\000' '@' >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -lZ 'word' ./testdata/grepinputv ./testdata/grepinputv) | $tr '\000' '@' >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -A 1 -B 1 -HZ 'word' ./testdata/grepinputv) | $tr '\000' '@' >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -MHZn 'start[\s]+end' testdata/grepinputM) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 136 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -m1MK -o1 --om-capture=0 'pattern()()()()' testdata/grepinput) >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep --max-count=1MK -o1 --om-capture=0 'pattern()()()()' testdata/grepinput) >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 137 -----------------------------" >>testtrygrep
|
|
printf 'Last line\nhas no newline' >testtemp1grep
|
|
$valgrind $vjs $pcre2grep -A1 Last testtemp1grep >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 138 -----------------------------" >>testtrygrep
|
|
printf 'AbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\n' >testtemp1grep
|
|
$valgrind $vjs $pcre2grep --no-jit --heap-limit=0 b testtemp1grep >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 139 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep --line-buffered 'fox' testdata/grepinputv) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 140 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep --buffer-size=10 -A1 'brown' testdata/grepinputv) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 141 -----------------------------" >>testtrygrep
|
|
printf "%s/testdata/grepinputv\n-\n" "$srcdir" >testtemp1grep
|
|
printf 'This is a line from stdin.' >testtemp2grep
|
|
$valgrind $vjs $pcre2grep --file-list testtemp1grep "line from stdin" <testtemp2grep >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 142 -----------------------------" >>testtrygrep
|
|
printf "/does/not/exist\n" >testtemp1grep
|
|
printf 'This is a line from stdin.' >testtemp2grep
|
|
$valgrind $vjs $pcre2grep --file-list testtemp1grep "line from stdin" >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 143 -----------------------------" >>testtrygrep
|
|
printf 'fox|cat' >testtemp1grep
|
|
$valgrind $vjs $pcre2grep -f - $srcdir/testdata/grepinputv <testtemp1grep >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 144 -----------------------------" >>testtrygrep
|
|
$valgrind $vjs $pcre2grep -f /non/exist $srcdir/testdata/grepinputv >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 145 -----------------------------" >>testtrygrep
|
|
printf '*meta*\rdog.' >testtemp1grep
|
|
$valgrind $vjs $pcre2grep -Ncr -F -f testtemp1grep $srcdir/testdata/grepinputv >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 146 -----------------------------" >>testtrygrep
|
|
printf 'A123B' >testtemp1grep
|
|
$valgrind $vjs $pcre2grep -H -e '123|fox' - <testtemp1grep >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
$valgrind $vjs $pcre2grep -h -e '123|fox' - $srcdir/testdata/grepinputv <testtemp1grep >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
$valgrind $vjs $pcre2grep - $srcdir/testdata/grepinputv <testtemp1grep >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 147 -----------------------------" >>testtrygrep
|
|
$valgrind $vjs $pcre2grep -e '123|fox' -- -nonfile >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 148 -----------------------------" >>testtrygrep
|
|
$valgrind $vjs $pcre2grep --nonexist >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
$valgrind $vjs $pcre2grep -n-n-bad >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
$valgrind $vjs $pcre2grep --context >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
$valgrind $vjs $pcre2grep --only-matching --output=xx >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
$valgrind $vjs $pcre2grep --colour=badvalue >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
$valgrind $vjs $pcre2grep --newline=badvalue >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
$valgrind $vjs $pcre2grep -d badvalue >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
$valgrind $vjs $pcre2grep -D badvalue >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
$valgrind $vjs $pcre2grep --buffer-size=0 >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
$valgrind $vjs $pcre2grep --exclude '(badpat' abc /dev/null >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
$valgrind $vjs $pcre2grep --exclude-from /non/exist abc /dev/null >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
$valgrind $vjs $pcre2grep --include-from /non/exist abc /dev/null >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
$valgrind $vjs $pcre2grep --file-list=/non/exist abc /dev/null >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 149 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep --binary-files=binary "dog" ./testdata/grepbinary) >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep --binary-files=wrong "dog" ./testdata/grepbinary) >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
# This test runs the code that tests locale support. However, on some systems
|
|
# (e.g. Alpine Linux) there is no locale support and running this test just
|
|
# generates a "no match" result. Therefore, we test for locale support, and if
|
|
# it is found missing, we pretend that the test has run as expected so that the
|
|
# output matches.
|
|
|
|
echo "---------------------------- Test 150 -----------------------------" >>testtrygrep
|
|
which locale >/dev/null 2>&1
|
|
if [ $? -ne 0 ]; then
|
|
echo "pcre2grep: Failed to set locale locale.bad (obtained from LC_CTYPE)" >>testtrygrep
|
|
echo "RC=2" >>testtrygrep
|
|
else
|
|
|
|
(cd $srcdir; unset LC_ALL; LC_CTYPE=locale.bad $valgrind $vjs $pcre2grep abc /dev/null) >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
fi
|
|
|
|
echo "---------------------------- Test 151 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep --colour=always -e this -e The -e 'The wo' testdata/grepinputv) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 152 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -nA3 --group-separator='++' 'four' ./testdata/grepinputx) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 153 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -nA3 --no-group-separator 'four' ./testdata/grepinputx) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 154 -----------------------------" >>testtrygrep
|
|
>testtemp1grep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -f $builddir/testtemp1grep ./testdata/grepinputv) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 155 -----------------------------" >>testtrygrep
|
|
echo "" >testtemp1grep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -f $builddir/testtemp1grep ./testdata/grepinputv) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 156 -----------------------------" >>testtrygrep
|
|
echo "" >testtemp1grep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep --posix-pattern-file --file $builddir/testtemp1grep ./testdata/grepinputv) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 157 -----------------------------" >>testtrygrep
|
|
echo "spaces " >testtemp1grep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -o --posix-pattern-file --file=$builddir/testtemp1grep ./testdata/grepinputv >$builddir/testtemp2grep && $valgrind $vjs $pcre2grep -q "s " $builddir/testtemp2grep) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 158 -----------------------------" >>testtrygrep
|
|
echo "spaces." >testtemp1grep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -f $builddir/testtemp1grep ./testdata/grepinputv) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 159 -----------------------------" >>testtrygrep
|
|
printf "spaces.\r\n" >testtemp1grep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep --posix-pattern-file -f$builddir/testtemp1grep ./testdata/grepinputv) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test 160 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -nC3 '^(ert|jkl)' ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -n -B4 -A2 '^(ert|dfg)' ./testdata/grepinput) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
|
|
# Now compare the results.
|
|
|
|
$cf $srcdir/testdata/grepoutput testtrygrep
|
|
if [ $? != 0 ] ; then exit 1; fi
|
|
|
|
|
|
# These tests require UTF-8 support
|
|
|
|
if [ $utf8 -ne 0 ] ; then
|
|
echo "Testing pcre2grep UTF-8 features"
|
|
|
|
echo "---------------------------- Test U1 ------------------------------" >testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -n -u --newline=any "^X" ./testdata/grepinput8) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test U2 ------------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -n -u -C 3 --newline=any "Match" ./testdata/grepinput8) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test U3 ------------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep --line-offsets -u --newline=any --allow-lookaround-bsk '(?<=\K\x{17f})' ./testdata/grepinput8) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test U4 ------------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -u -o '....' ./testdata/grepinputBad8) >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test U5 ------------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -U -o '....' ./testdata/grepinputBad8) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test U6 -----------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -u -m1 -O '=$x{1d3}$o{744}=' 'fox') <$srcdir/testdata/grepinputv >>testtrygrep 2>&1
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test U7 ------------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -ui --colour=always 'k+|\babc\b' ./testdata/grepinput8) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test U8 ------------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -UiEP --colour=always 'k+|\babc\b' ./testdata/grepinput8) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test U9 ------------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -u --colour=always 'A\d' ./testdata/grepinput8) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "---------------------------- Test U10 ------------------------------" >>testtrygrep
|
|
(cd $srcdir; $valgrind $vjs $pcre2grep -u --posix-digit --colour=always 'A\d' ./testdata/grepinput8) >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
$cf $srcdir/testdata/grepoutput8 testtrygrep
|
|
if [ $? != 0 ] ; then exit 1; fi
|
|
|
|
else
|
|
echo "Skipping pcre2grep UTF-8 tests: no UTF-8 support in PCRE2 library"
|
|
fi
|
|
|
|
|
|
# We go to some contortions to try to ensure that the tests for the various
|
|
# newline settings will work in environments where the normal newline sequence
|
|
# is not \n. Do not use exported files, whose line endings might be changed.
|
|
# Instead, create an input file using printf so that its contents are exactly
|
|
# what we want. Note the messy fudge to get printf to write a string that
|
|
# starts with a hyphen. These tests are run in the build directory.
|
|
|
|
echo "Testing pcre2grep newline settings"
|
|
printf 'abc\rdef\r\nghi\njkl' >testNinputgrep
|
|
|
|
printf '%c--------------------------- Test N1 ------------------------------\r\n' - >testtrygrep
|
|
$valgrind $vjs $pcre2grep -n -N CR "^(abc|def|ghi|jkl)" testNinputgrep >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
$valgrind $vjs $pcre2grep -B1 -n -N CR "^def" testNinputgrep >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
printf '%c--------------------------- Test N2 ------------------------------\r\n' - >>testtrygrep
|
|
$valgrind $vjs $pcre2grep -n --newline=crlf "^(abc|def|ghi|jkl)" testNinputgrep >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
$valgrind $vjs $pcre2grep -B1 -n -N CRLF "^ghi" testNinputgrep >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
printf '%c--------------------------- Test N3 ------------------------------\r\n' - >>testtrygrep
|
|
pattern=`printf 'def\rjkl'`
|
|
$valgrind $vjs $pcre2grep -n --newline=cr -F "$pattern" testNinputgrep >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
printf '%c--------------------------- Test N4 ------------------------------\r\n' - >>testtrygrep
|
|
$valgrind $vjs $pcre2grep -n --newline=crlf -F -f $srcdir/testdata/greppatN4 testNinputgrep >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
printf '%c--------------------------- Test N5 ------------------------------\r\n' - >>testtrygrep
|
|
$valgrind $vjs $pcre2grep -n --newline=any "^(abc|def|ghi|jkl)" testNinputgrep >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
$valgrind $vjs $pcre2grep -B1 -n --newline=any "^def" testNinputgrep >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
printf '%c--------------------------- Test N6 ------------------------------\r\n' - >>testtrygrep
|
|
$valgrind $vjs $pcre2grep -n --newline=anycrlf "^(abc|def|ghi|jkl)" testNinputgrep >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
$valgrind $vjs $pcre2grep -B1 -n --newline=anycrlf "^jkl" testNinputgrep >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
printf '%c--------------------------- Test N7 ------------------------------\r\n' - >>testtrygrep
|
|
printf 'xyz\0abc\0def' >testNinputgrep
|
|
$valgrind $vjs $pcre2grep -na --newline=nul "^(abc|def)" testNinputgrep | $tr '\000' '@' >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
$valgrind $vjs $pcre2grep -B1 -na --newline=nul "^(abc|def)" testNinputgrep | $tr '\000' '@' >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
printf '%c--------------------------- Test N8 ------------------------------\r\n' - >>testtrygrep
|
|
$valgrind $vjs $pcre2grep -na --newline=anycrlf "^a" $srcdir/testdata/grepinputBad8_Trail >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "" >>testtrygrep
|
|
|
|
$cf $srcdir/testdata/grepoutputN testtrygrep
|
|
if [ $? != 0 ] ; then exit 1; fi
|
|
|
|
|
|
# These newline tests need UTF support.
|
|
|
|
if [ $utf8 -ne 0 ] ; then
|
|
echo "Testing pcre2grep newline settings with UTF-8 features"
|
|
|
|
printf '%c--------------------------- Test UN1 ------------------------------\r\n' - >testtrygrep
|
|
$valgrind $vjs $pcre2grep -nau --newline=anycrlf "^(abc|def)" $srcdir/testdata/grepinputUN >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
printf '%c--------------------------- Test UN2 ------------------------------\r\n' - >testtrygrep
|
|
$valgrind $vjs $pcre2grep -nauU --newline=anycrlf "^a" $srcdir/testdata/grepinputBad8_Trail >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
echo "" >>testtrygrep
|
|
|
|
$cf $srcdir/testdata/grepoutputUN testtrygrep
|
|
if [ $? != 0 ] ; then exit 1; fi
|
|
else
|
|
echo "Skipping pcre2grep newline UTF-8 tests: no UTF-8 support in PCRE2 library"
|
|
fi
|
|
|
|
|
|
# If pcre2grep supports script callouts, run some tests on them. It is possible
|
|
# to restrict these callouts to the non-fork case, either for security, or for
|
|
# environments that do not support fork(). This is handled by comparing to a
|
|
# different output.
|
|
|
|
if $valgrind $vjs $pcre2grep --help | $valgrind $vjs $pcre2grep -q 'callout scripts in patterns are supported'; then
|
|
echo "Testing pcre2grep script callouts"
|
|
echo "--- Test 1 ---" >testtrygrep
|
|
$valgrind $vjs $pcre2grep '(T)(..(.))(?C"/bin/echo|Arg1: [$1] [$2] [$3]|Arg2: $|${1}$| ($4) ($14) ($0)")()' $srcdir/testdata/grepinputv >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
echo "--- Test 2 ---" >>testtrygrep
|
|
$valgrind $vjs $pcre2grep '(T)(..(.))()()()()()()()(..)(?C"/bin/echo|Arg1: [$11] [${11}]")' $srcdir/testdata/grepinputv >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
echo "--- Test 3 ---" >>testtrygrep
|
|
$valgrind $vjs $pcre2grep '(T)(?C"|$0:$1$n")' $srcdir/testdata/grepinputv >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
echo "--- Test 4 ---" >>testtrygrep
|
|
$valgrind $vjs $pcre2grep '(T)(?C"/bin/echo|$0:$1$n")' $srcdir/testdata/grepinputv >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
echo "--- Test 5 ---" >>testtrygrep
|
|
$valgrind $vjs $pcre2grep '(T)(?C"|$1$n")(*F)' $srcdir/testdata/grepinputv >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
echo "--- Test 6 ---" >>testtrygrep
|
|
$valgrind $vjs $pcre2grep -m1 '(T)(?C"|$0:$1:$x{41}$o{101}$n")' $srcdir/testdata/grepinputv >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
if $valgrind $vjs $pcre2grep --help | $valgrind $vjs $pcre2grep -q 'Non-fork callout scripts in patterns are supported'; then
|
|
nonfork=1
|
|
$cf $srcdir/testdata/grepoutputCN testtrygrep
|
|
else
|
|
nonfork=0
|
|
$cf $srcdir/testdata/grepoutputC testtrygrep
|
|
fi
|
|
if [ $? != 0 ] ; then exit 1; fi
|
|
|
|
# These callout tests need UTF support.
|
|
|
|
if [ $utf8 -ne 0 ] ; then
|
|
echo "Testing pcre2grep script callout with UTF-8 features"
|
|
echo "--- Test 1 ---" >testtrygrep
|
|
$valgrind $vjs $pcre2grep -u '(T)(?C"|$0:$x{a6}$n")' $srcdir/testdata/grepinputv >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
echo "--- Test 2 ---" >>testtrygrep
|
|
$valgrind $vjs $pcre2grep -u '(T)(?C"/bin/echo|$0:$x{a6}$n")' $srcdir/testdata/grepinputv >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
|
|
if [ $nonfork = 1 ] ; then
|
|
$cf $srcdir/testdata/grepoutputCNU testtrygrep
|
|
else
|
|
$cf $srcdir/testdata/grepoutputCU testtrygrep
|
|
fi
|
|
if [ $? != 0 ] ; then exit 1; fi
|
|
else
|
|
echo "Skipping pcre2grep script callout UTF-8 tests: no UTF-8 support in PCRE2 library"
|
|
fi
|
|
|
|
unset nonfork
|
|
else
|
|
echo "Script callouts are not supported"
|
|
fi
|
|
|
|
|
|
# Test reading .gz and .bz2 files when supported.
|
|
|
|
if $valgrind $vjs $pcre2grep --help | $valgrind $vjs $pcre2grep -q '\.gz are read using zlib'; then
|
|
echo "Testing reading .gz file"
|
|
$valgrind $vjs $pcre2grep 'one|two' $srcdir/testdata/grepinputC.gz >testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
$cf $srcdir/testdata/grepoutputCgz testtrygrep
|
|
if [ $? != 0 ] ; then exit 1; fi
|
|
fi
|
|
|
|
if $valgrind $vjs $pcre2grep --help | $valgrind $vjs $pcre2grep -q '\.bz2 are read using bzlib2'; then
|
|
echo "Testing reading .bz2 file"
|
|
$valgrind $vjs $pcre2grep 'one|two' $srcdir/testdata/grepinputC.bz2 >testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
$valgrind $vjs $pcre2grep 'one|two' $srcdir/testdata/grepnot.bz2 >>testtrygrep
|
|
echo "RC=$?" >>testtrygrep
|
|
$cf $srcdir/testdata/grepoutputCbz2 testtrygrep
|
|
if [ $? != 0 ] ; then exit 1; fi
|
|
fi
|
|
|
|
|
|
# Finally, some tests to exercise code that is not tested above, just to be
|
|
# sure that it runs OK. Doing this improves the coverage statistics. The output
|
|
# is not checked.
|
|
|
|
echo "Testing miscellaneous pcre2grep arguments (unchecked)"
|
|
echo '' >testtrygrep
|
|
checkspecial '-xxxxx' 2
|
|
checkspecial '--help' 0
|
|
checkspecial '--line-buffered --colour=auto abc /dev/null' 1
|
|
checkspecial '--line-buffered --color abc /dev/null' 1
|
|
checkspecial '-dskip abc .' 1
|
|
checkspecial '-Dread -Dskip abc /dev/null' 1
|
|
|
|
# Clean up local working files
|
|
rm -f testNinputgrep teststderrgrep testtrygrep testtemp1grep testtemp2grep
|
|
|
|
exit 0
|
|
|
|
# End
|