Update pcre2test to check delimiters after #perltest and fix some in test 1.
This commit is contained in:
parent
5652d41209
commit
a2f0fd01c7
|
@ -1,4 +1,4 @@
|
||||||
.TH PCRE2TEST 1 "20 March 2020" "PCRE 10.35"
|
.TH PCRE2TEST 1 "14 September 2020" "PCRE 10.36"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
pcre2test - a program for testing Perl-compatible regular expressions.
|
pcre2test - a program for testing Perl-compatible regular expressions.
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
@ -273,7 +273,7 @@ test data, command lines that begin with # may appear. This file format, with
|
||||||
some restrictions, can also be processed by the \fBperltest.sh\fP script that
|
some restrictions, can also be processed by the \fBperltest.sh\fP script that
|
||||||
is distributed with PCRE2 as a means of checking that the behaviour of PCRE2
|
is distributed with PCRE2 as a means of checking that the behaviour of PCRE2
|
||||||
and Perl is the same. For a specification of \fBperltest.sh\fP, see the
|
and Perl is the same. For a specification of \fBperltest.sh\fP, see the
|
||||||
comments near its beginning.
|
comments near its beginning. See also the #perltest command below.
|
||||||
.P
|
.P
|
||||||
When the input is a terminal, \fBpcre2test\fP prompts for each line of input,
|
When the input is a terminal, \fBpcre2test\fP prompts for each line of input,
|
||||||
using "re>" to prompt for regular expression patterns, and "data>" to prompt
|
using "re>" to prompt for regular expression patterns, and "data>" to prompt
|
||||||
|
@ -369,14 +369,19 @@ patterns. Modifiers on a pattern can change these settings.
|
||||||
.sp
|
.sp
|
||||||
#perltest
|
#perltest
|
||||||
.sp
|
.sp
|
||||||
The appearance of this line causes all subsequent modifier settings to be
|
This line is used in test files that can also be processed by \fBperltest.sh\fP
|
||||||
checked for compatibility with the \fBperltest.sh\fP script, which is used to
|
to confirm that Perl gives the same results as PCRE2. Subsequent tests are
|
||||||
confirm that Perl gives the same results as PCRE2. Also, apart from comment
|
checked for the use of \fBpcre2test\fP features that are incompatible with the
|
||||||
lines, #pattern commands, and #subject commands that set or unset "mark", no
|
\fBperltest.sh\fP script.
|
||||||
command lines are permitted, because they and many of the modifiers are
|
.P
|
||||||
specific to \fBpcre2test\fP, and should not be used in test files that are also
|
Patterns must use '/' as their delimiter, and only certain modifiers are
|
||||||
processed by \fBperltest.sh\fP. The \fB#perltest\fP command helps detect tests
|
supported. Comment lines, #pattern commands, and #subject commands that set or
|
||||||
that are accidentally put in the wrong file.
|
unset "mark" are recognized and acted on. The #perltest, #forbid_utf, and
|
||||||
|
#newline_default commands, which are needed in the relevant pcre2test files,
|
||||||
|
are silently ignored. All other command lines are ignored, but give a warning
|
||||||
|
message. The \fB#perltest\fP command helps detect tests that are accidentally
|
||||||
|
put in the wrong file or use the wrong delimiter. For more details of the
|
||||||
|
\fBperltest.sh\fP script see the comments it contains.
|
||||||
.sp
|
.sp
|
||||||
#pop [<modifiers>]
|
#pop [<modifiers>]
|
||||||
#popcopy [<modifiers>]
|
#popcopy [<modifiers>]
|
||||||
|
@ -2096,6 +2101,6 @@ Cambridge, England.
|
||||||
.rs
|
.rs
|
||||||
.sp
|
.sp
|
||||||
.nf
|
.nf
|
||||||
Last updated: 20 March 2020
|
Last updated: 14 September 2020
|
||||||
Copyright (c) 1997-2020 University of Cambridge.
|
Copyright (c) 1997-2020 University of Cambridge.
|
||||||
.fi
|
.fi
|
||||||
|
|
|
@ -5136,6 +5136,14 @@ PCRE2_SIZE patlen;
|
||||||
PCRE2_SIZE valgrind_access_length;
|
PCRE2_SIZE valgrind_access_length;
|
||||||
PCRE2_SIZE erroroffset;
|
PCRE2_SIZE erroroffset;
|
||||||
|
|
||||||
|
/* The perltest.sh script supports only / as a delimiter. */
|
||||||
|
|
||||||
|
if (restrict_for_perl_test && delimiter != '/')
|
||||||
|
{
|
||||||
|
fprintf(outfile, "** The only allowed delimiter after #perltest is '/'\n");
|
||||||
|
return PR_ABEND;
|
||||||
|
}
|
||||||
|
|
||||||
/* Initialize the context and pattern/data controls for this test from the
|
/* Initialize the context and pattern/data controls for this test from the
|
||||||
defaults. */
|
defaults. */
|
||||||
|
|
||||||
|
|
|
@ -5652,16 +5652,16 @@ name)/mark
|
||||||
\= Expect no match
|
\= Expect no match
|
||||||
acb
|
acb
|
||||||
|
|
||||||
'\A(?:[^\"]++|\"(?:[^\"]*+|\"\")*+\")++'
|
/\A(?:[^\"]++|\"(?:[^\"]*+|\"\")*+\")++/
|
||||||
NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED
|
NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED
|
||||||
|
|
||||||
'\A(?:[^\"]++|\"(?:[^\"]++|\"\")*+\")++'
|
/\A(?:[^\"]++|\"(?:[^\"]++|\"\")*+\")++/
|
||||||
NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED
|
NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED
|
||||||
|
|
||||||
'\A(?:[^\"]++|\"(?:[^\"]++|\"\")++\")++'
|
/\A(?:[^\"]++|\"(?:[^\"]++|\"\")++\")++/
|
||||||
NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED
|
NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED
|
||||||
|
|
||||||
'\A([^\"1]++|[\"2]([^\"3]*+|[\"4][\"5])*+[\"6])++'
|
/\A([^\"1]++|[\"2]([^\"3]*+|[\"4][\"5])*+[\"6])++/
|
||||||
NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED
|
NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED
|
||||||
|
|
||||||
/^\w+(?>\s*)(?<=\w)/
|
/^\w+(?>\s*)(?<=\w)/
|
||||||
|
@ -5826,19 +5826,19 @@ ef) x/x,mark
|
||||||
\= Expect no match
|
\= Expect no match
|
||||||
aab
|
aab
|
||||||
|
|
||||||
'(?>ab|abab){1,5}?M'
|
/(?>ab|abab){1,5}?M/
|
||||||
abababababababababababM
|
abababababababababababM
|
||||||
|
|
||||||
'(?>ab|abab){2}?M'
|
/(?>ab|abab){2}?M/
|
||||||
abababM
|
abababM
|
||||||
|
|
||||||
'((?(?=(a))a)+k)'
|
/((?(?=(a))a)+k)/
|
||||||
bbak
|
bbak
|
||||||
|
|
||||||
'((?(?=(a))a|)+k)'
|
/((?(?=(a))a|)+k)/
|
||||||
bbak
|
bbak
|
||||||
|
|
||||||
'(?(?!(b))a|b)+k'
|
/(?(?!(b))a|b)+k/
|
||||||
ababbalbbadabak
|
ababbalbbadabak
|
||||||
|
|
||||||
/(?!(b))c|b/
|
/(?!(b))c|b/
|
||||||
|
|
|
@ -8978,19 +8978,19 @@ No match
|
||||||
acb
|
acb
|
||||||
No match
|
No match
|
||||||
|
|
||||||
'\A(?:[^\"]++|\"(?:[^\"]*+|\"\")*+\")++'
|
/\A(?:[^\"]++|\"(?:[^\"]*+|\"\")*+\")++/
|
||||||
NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED
|
NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED
|
||||||
0: NON QUOTED "QUOT""ED" AFTER
|
0: NON QUOTED "QUOT""ED" AFTER
|
||||||
|
|
||||||
'\A(?:[^\"]++|\"(?:[^\"]++|\"\")*+\")++'
|
/\A(?:[^\"]++|\"(?:[^\"]++|\"\")*+\")++/
|
||||||
NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED
|
NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED
|
||||||
0: NON QUOTED "QUOT""ED" AFTER
|
0: NON QUOTED "QUOT""ED" AFTER
|
||||||
|
|
||||||
'\A(?:[^\"]++|\"(?:[^\"]++|\"\")++\")++'
|
/\A(?:[^\"]++|\"(?:[^\"]++|\"\")++\")++/
|
||||||
NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED
|
NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED
|
||||||
0: NON QUOTED "QUOT""ED" AFTER
|
0: NON QUOTED "QUOT""ED" AFTER
|
||||||
|
|
||||||
'\A([^\"1]++|[\"2]([^\"3]*+|[\"4][\"5])*+[\"6])++'
|
/\A([^\"1]++|[\"2]([^\"3]*+|[\"4][\"5])*+[\"6])++/
|
||||||
NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED
|
NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED
|
||||||
0: NON QUOTED "QUOT""ED" AFTER
|
0: NON QUOTED "QUOT""ED" AFTER
|
||||||
1: AFTER
|
1: AFTER
|
||||||
|
@ -9312,27 +9312,27 @@ No match
|
||||||
aab
|
aab
|
||||||
No match
|
No match
|
||||||
|
|
||||||
'(?>ab|abab){1,5}?M'
|
/(?>ab|abab){1,5}?M/
|
||||||
abababababababababababM
|
abababababababababababM
|
||||||
0: abababababM
|
0: abababababM
|
||||||
|
|
||||||
'(?>ab|abab){2}?M'
|
/(?>ab|abab){2}?M/
|
||||||
abababM
|
abababM
|
||||||
0: ababM
|
0: ababM
|
||||||
|
|
||||||
'((?(?=(a))a)+k)'
|
/((?(?=(a))a)+k)/
|
||||||
bbak
|
bbak
|
||||||
0: ak
|
0: ak
|
||||||
1: ak
|
1: ak
|
||||||
2: a
|
2: a
|
||||||
|
|
||||||
'((?(?=(a))a|)+k)'
|
/((?(?=(a))a|)+k)/
|
||||||
bbak
|
bbak
|
||||||
0: ak
|
0: ak
|
||||||
1: ak
|
1: ak
|
||||||
2: a
|
2: a
|
||||||
|
|
||||||
'(?(?!(b))a|b)+k'
|
/(?(?!(b))a|b)+k/
|
||||||
ababbalbbadabak
|
ababbalbbadabak
|
||||||
0: abak
|
0: abak
|
||||||
1: b
|
1: b
|
||||||
|
|
Loading…
Reference in New Issue