Update Perl tester to allow for optimization to be turned off. Required moving
some tests out of the Perl-compatible files.
This commit is contained in:
parent
7db5904b9f
commit
a0e367f5b6
11
perltest.sh
11
perltest.sh
|
@ -45,7 +45,7 @@ fi
|
||||||
# jitstack ignored
|
# jitstack ignored
|
||||||
# mark show mark information
|
# mark show mark information
|
||||||
# no_auto_possess ignored
|
# no_auto_possess ignored
|
||||||
# no_start_optimize ignored
|
# no_start_optimize insert ({""}) at pattern start (disable Perl optimizing)
|
||||||
# subject_literal does not process subjects for escapes
|
# subject_literal does not process subjects for escapes
|
||||||
# ucp sets Perl's /u modifier
|
# ucp sets Perl's /u modifier
|
||||||
# utf invoke UTF-8 functionality
|
# utf invoke UTF-8 functionality
|
||||||
|
@ -147,6 +147,7 @@ for (;;)
|
||||||
$pattern =~ /^\s*((.).*\2)(.*)$/s;
|
$pattern =~ /^\s*((.).*\2)(.*)$/s;
|
||||||
$pat = $1;
|
$pat = $1;
|
||||||
$mod = $3;
|
$mod = $3;
|
||||||
|
$del = $2;
|
||||||
|
|
||||||
# The private "aftertext" modifier means "print $' afterwards".
|
# The private "aftertext" modifier means "print $' afterwards".
|
||||||
|
|
||||||
|
@ -180,10 +181,14 @@ for (;;)
|
||||||
|
|
||||||
$mod =~ s/ucp,?/u/;
|
$mod =~ s/ucp,?/u/;
|
||||||
|
|
||||||
# Remove "no_auto_possess" and "no_start_optimize" (disable PCRE2 optimizations)
|
# Remove "no_auto_possess".
|
||||||
|
|
||||||
$mod =~ s/no_auto_possess,?//;
|
$mod =~ s/no_auto_possess,?//;
|
||||||
$mod =~ s/no_start_optimize,?//;
|
|
||||||
|
# Use no_start_optimize (disable PCRE2 start-up optimization) to disable Perl
|
||||||
|
# optimization by inserting (??{""}) at the start of the pattern.
|
||||||
|
|
||||||
|
if ($mod =~ s/no_start_optimize,?//) { $pat =~ s/$del/$del(??{""})/; }
|
||||||
|
|
||||||
# Add back retained modifiers and check that the pattern is valid.
|
# Add back retained modifiers and check that the pattern is valid.
|
||||||
|
|
||||||
|
|
|
@ -5157,14 +5157,6 @@ name)/mark
|
||||||
/A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/x,mark
|
/A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/x,mark
|
||||||
AAAC
|
AAAC
|
||||||
|
|
||||||
/a(*PRUNE:X)bc|qq/mark,no_start_optimize
|
|
||||||
\= Expect no match
|
|
||||||
axy
|
|
||||||
|
|
||||||
/a(*THEN:X)bc|qq/mark,no_start_optimize
|
|
||||||
\= Expect no match
|
|
||||||
axy
|
|
||||||
|
|
||||||
/(?=a(*MARK:A)b)..x/mark
|
/(?=a(*MARK:A)b)..x/mark
|
||||||
abxy
|
abxy
|
||||||
\= Expect no match
|
\= Expect no match
|
||||||
|
|
|
@ -5440,4 +5440,14 @@ a)"xI
|
||||||
|
|
||||||
/(?<=(?=.){4,5}x)/B
|
/(?<=(?=.){4,5}x)/B
|
||||||
|
|
||||||
|
# Perl behaves differently with these when optimization is turned off
|
||||||
|
|
||||||
|
/a(*PRUNE:X)bc|qq/mark,no_start_optimize
|
||||||
|
\= Expect no match
|
||||||
|
axy
|
||||||
|
|
||||||
|
/a(*THEN:X)bc|qq/mark,no_start_optimize
|
||||||
|
\= Expect no match
|
||||||
|
axy
|
||||||
|
|
||||||
# End of testinput2
|
# End of testinput2
|
||||||
|
|
|
@ -8282,16 +8282,6 @@ No match, mark = m
|
||||||
AAAC
|
AAAC
|
||||||
0: AAC
|
0: AAC
|
||||||
|
|
||||||
/a(*PRUNE:X)bc|qq/mark,no_start_optimize
|
|
||||||
\= Expect no match
|
|
||||||
axy
|
|
||||||
No match, mark = X
|
|
||||||
|
|
||||||
/a(*THEN:X)bc|qq/mark,no_start_optimize
|
|
||||||
\= Expect no match
|
|
||||||
axy
|
|
||||||
No match, mark = X
|
|
||||||
|
|
||||||
/(?=a(*MARK:A)b)..x/mark
|
/(?=a(*MARK:A)b)..x/mark
|
||||||
abxy
|
abxy
|
||||||
0: abx
|
0: abx
|
||||||
|
|
|
@ -16601,6 +16601,18 @@ No match
|
||||||
End
|
End
|
||||||
------------------------------------------------------------------
|
------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Perl behaves differently with these when optimization is turned off
|
||||||
|
|
||||||
|
/a(*PRUNE:X)bc|qq/mark,no_start_optimize
|
||||||
|
\= Expect no match
|
||||||
|
axy
|
||||||
|
No match, mark = X
|
||||||
|
|
||||||
|
/a(*THEN:X)bc|qq/mark,no_start_optimize
|
||||||
|
\= Expect no match
|
||||||
|
axy
|
||||||
|
No match, mark = X
|
||||||
|
|
||||||
# End of testinput2
|
# End of testinput2
|
||||||
Error -70: PCRE2_ERROR_BADDATA (unknown error number)
|
Error -70: PCRE2_ERROR_BADDATA (unknown error number)
|
||||||
Error -62: bad serialized data
|
Error -62: bad serialized data
|
||||||
|
|
Loading…
Reference in New Issue