Fix escaping test data
This commit is contained in:
parent
88ac25e9e7
commit
bade53dd5d
@ -0,0 +1,412 @@
|
|||||||
|
From 0edcbc5e42409ea801908af0917ae11eb70a1435 Mon Sep 17 00:00:00 2001
|
||||||
|
From: ph10 <ph10@6239d852-aaf2-0410-a92c-79f79f948069>
|
||||||
|
Date: Sun, 13 Sep 2020 15:56:32 +0000
|
||||||
|
Subject: [PATCH] Fix delimiters in tests 1 and 4 for correct Perl behaviour
|
||||||
|
(Bugzilla #2641). Also move \K in lookaround tests to test 2 (Perl no longer
|
||||||
|
supports).
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
git-svn-id: svn://vcs.exim.org/pcre2/code/trunk@1269 6239d852-aaf2-0410-a92c-79f79f948069
|
||||||
|
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||||
|
---
|
||||||
|
perltest.sh | 3 +++
|
||||||
|
testdata/testinput1 | 43 +++++++++++++++++----------------------
|
||||||
|
testdata/testinput2 | 16 +++++++++++++++
|
||||||
|
testdata/testinput4 | 8 ++++++--
|
||||||
|
testdata/testoutput1 | 48 ++++++++++++++++++--------------------------
|
||||||
|
testdata/testoutput2 | 20 ++++++++++++++++++
|
||||||
|
testdata/testoutput4 | 8 ++++++--
|
||||||
|
|
||||||
|
diff --git a/perltest.sh b/perltest.sh
|
||||||
|
index 8368781..31406c5 100755
|
||||||
|
--- a/perltest.sh
|
||||||
|
+++ b/perltest.sh
|
||||||
|
@@ -68,6 +68,9 @@ fi
|
||||||
|
# #newline_default commands, which are needed in the relevant pcre2test files,
|
||||||
|
# are ignored. Any other #-command is ignored, with a warning message.
|
||||||
|
#
|
||||||
|
+# The pattern lines should use only / as the delimiter. The other characters
|
||||||
|
+# that pcre2test supports cause problems with this script.
|
||||||
|
+#
|
||||||
|
# The data lines must not have any pcre2test modifiers. Unless
|
||||||
|
# "subject_literal" is on the pattern, data lines are processed as
|
||||||
|
# Perl double-quoted strings, so if they contain " $ or @ characters, these
|
||||||
|
diff --git a/testdata/testinput1 b/testdata/testinput1
|
||||||
|
index 8d952e2..8a50cfa 100644
|
||||||
|
--- a/testdata/testinput1
|
||||||
|
+++ b/testdata/testinput1
|
||||||
|
@@ -1,6 +1,10 @@
|
||||||
|
# This set of tests is for features that are compatible with all versions of
|
||||||
|
# Perl >= 5.10, in non-UTF mode. It should run clean for the 8-bit, 16-bit, and
|
||||||
|
# 32-bit PCRE libraries, and also using the perltest.sh script.
|
||||||
|
+
|
||||||
|
+# WARNING: Use only / as the pattern delimiter. Although pcre2test supports
|
||||||
|
+# a number of delimiters, all those other than / give problems with the
|
||||||
|
+# perltest.sh script.
|
||||||
|
|
||||||
|
#forbid_utf
|
||||||
|
#newline_default lf any anycrlf
|
||||||
|
@@ -1957,7 +1961,7 @@
|
||||||
|
abc\nzzz
|
||||||
|
qqq\nabc\nzzz
|
||||||
|
|
||||||
|
-"(?>.*/)foo"
|
||||||
|
+/(?>.*\/)foo/
|
||||||
|
/this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
|
||||||
|
\= Expect no match
|
||||||
|
/this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/
|
||||||
|
@@ -3831,12 +3835,13 @@
|
||||||
|
/(?-x: )/x
|
||||||
|
A\x20B
|
||||||
|
|
||||||
|
-"(?x)(?-x: \s*#\s*)"
|
||||||
|
+/(?x)(?-x: \s*#\s*)/
|
||||||
|
A # B
|
||||||
|
\= Expect no match
|
||||||
|
#
|
||||||
|
+ A s#s B
|
||||||
|
|
||||||
|
-"(?x-is)(?:(?-ixs) \s*#\s*) include"
|
||||||
|
+/(?x-is)(?:(?-ixs) \s*#\s*) include/
|
||||||
|
A #include
|
||||||
|
\= Expect no match
|
||||||
|
A#include
|
||||||
|
@@ -5232,11 +5237,11 @@ name)/mark
|
||||||
|
alphabetabcd
|
||||||
|
endingwxyz
|
||||||
|
|
||||||
|
-"(?>.*)foo"
|
||||||
|
+/(?>.*)foo/
|
||||||
|
\= Expect no match
|
||||||
|
abcdfooxyz
|
||||||
|
|
||||||
|
-"(?>.*?)foo"
|
||||||
|
+/(?>.*?)foo/
|
||||||
|
abcdfooxyz
|
||||||
|
|
||||||
|
/(?:(a(*PRUNE)b)){0}(?:(?1)|ac)/
|
||||||
|
@@ -5423,18 +5428,6 @@ name)/mark
|
||||||
|
\= Expect no match
|
||||||
|
a
|
||||||
|
|
||||||
|
-/(?=a\Kb)ab/
|
||||||
|
- ab
|
||||||
|
-
|
||||||
|
-/(?!a\Kb)ac/
|
||||||
|
- ac
|
||||||
|
-
|
||||||
|
-/^abc(?<=b\Kc)d/
|
||||||
|
- abcd
|
||||||
|
-
|
||||||
|
-/^abc(?<!b\Kq)d/
|
||||||
|
- abcd
|
||||||
|
-
|
||||||
|
/A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/x,mark
|
||||||
|
\= Expect no match
|
||||||
|
AAAC
|
||||||
|
@@ -5727,9 +5720,9 @@ name)/mark
|
||||||
|
|
||||||
|
/(\2)(\1)/
|
||||||
|
|
||||||
|
-"Z*(|d*){216}"
|
||||||
|
+/Z*(|d*){216}/
|
||||||
|
|
||||||
|
-"(?1)(?#?'){8}(a)"
|
||||||
|
+/(?1)(?#?'){8}(a)/
|
||||||
|
baaaaaaaaac
|
||||||
|
|
||||||
|
/((((((((((((x))))))))))))\12/
|
||||||
|
@@ -5741,7 +5734,7 @@ name)/mark
|
||||||
|
/(?1)()((((((\1++))\x85)+)|))/
|
||||||
|
\x85\x85
|
||||||
|
|
||||||
|
-"(?|(\k'Pm')|(?'Pm'))"
|
||||||
|
+/(?|(\k'Pm')|(?'Pm'))/
|
||||||
|
abcd
|
||||||
|
|
||||||
|
/(?|(aaa)|(b))\g{1}/
|
||||||
|
@@ -6411,20 +6404,20 @@ ef) x/x,mark
|
||||||
|
Hackdaws love my big sphinx of quartz.
|
||||||
|
Pack my fox with five dozen liquor jugs.
|
||||||
|
|
||||||
|
-"(?<=X(?(DEFINE)(A)))X(*F)"
|
||||||
|
+/(?<=X(?(DEFINE)(A)))X(*F)/
|
||||||
|
\= Expect no match
|
||||||
|
AXYZ
|
||||||
|
|
||||||
|
-"(?<=X(?(DEFINE)(A)))."
|
||||||
|
+/(?<=X(?(DEFINE)(A)))./
|
||||||
|
AXYZ
|
||||||
|
|
||||||
|
-"(?<=X(?(DEFINE)(.*))Y)."
|
||||||
|
+/(?<=X(?(DEFINE)(.*))Y)./
|
||||||
|
AXYZ
|
||||||
|
|
||||||
|
-"(?<=X(?(DEFINE)(Y))(?1))."
|
||||||
|
+/(?<=X(?(DEFINE)(Y))(?1))./
|
||||||
|
AXYZ
|
||||||
|
|
||||||
|
-"(?(DEFINE)(?<foo>bar))(?<![-a-z0-9])word"
|
||||||
|
+/(?(DEFINE)(?<foo>bar))(?<![-a-z0-9])word/
|
||||||
|
word
|
||||||
|
|
||||||
|
# End of testinput1
|
||||||
|
diff --git a/testdata/testinput2 b/testdata/testinput2
|
||||||
|
index 47320eb..14ad824 100644
|
||||||
|
--- a/testdata/testinput2
|
||||||
|
+++ b/testdata/testinput2
|
||||||
|
@@ -5866,4 +5866,20 @@ a)"xI
|
||||||
|
|
||||||
|
/(?(VERSION=0.0/
|
||||||
|
|
||||||
|
+# Perl has made \K in lookarounds an error. At the moment PCRE2 still accepts.
|
||||||
|
+
|
||||||
|
+/(?=a\Kb)ab/
|
||||||
|
+ ab
|
||||||
|
+
|
||||||
|
+/(?!a\Kb)ac/
|
||||||
|
+ ac
|
||||||
|
+
|
||||||
|
+/^abc(?<=b\Kc)d/
|
||||||
|
+ abcd
|
||||||
|
+
|
||||||
|
+/^abc(?<!b\Kq)d/
|
||||||
|
+ abcd
|
||||||
|
+
|
||||||
|
+# ---------
|
||||||
|
+
|
||||||
|
# End of testinput2
|
||||||
|
diff --git a/testdata/testinput4 b/testdata/testinput4
|
||||||
|
index 0bdac57..4e2a0ab 100644
|
||||||
|
--- a/testdata/testinput4
|
||||||
|
+++ b/testdata/testinput4
|
||||||
|
@@ -3,6 +3,10 @@
|
||||||
|
# some of the property tests may differ because of different versions of
|
||||||
|
# Unicode in use by PCRE2 and Perl.
|
||||||
|
|
||||||
|
+# WARNING: Use only / as the pattern delimiter. Although pcre2test supports
|
||||||
|
+# a number of delimiters, all those other than / give problems with the
|
||||||
|
+# perltest.sh script.
|
||||||
|
+
|
||||||
|
#newline_default lf anycrlf any
|
||||||
|
#perltest
|
||||||
|
|
||||||
|
@@ -476,7 +480,7 @@
|
||||||
|
/^\ሴ/utf
|
||||||
|
ሴ
|
||||||
|
|
||||||
|
-"(?s)(.{1,5})"utf
|
||||||
|
+/(?s)(.{1,5})/utf
|
||||||
|
abcdefg
|
||||||
|
ab
|
||||||
|
|
||||||
|
@@ -2220,7 +2224,7 @@
|
||||||
|
/[A-`]/i,utf
|
||||||
|
abcdefghijklmno
|
||||||
|
|
||||||
|
-"[\S\V\H]"utf
|
||||||
|
+/[\S\V\H]/utf
|
||||||
|
|
||||||
|
/[^\p{Any}]*+x/utf
|
||||||
|
x
|
||||||
|
diff --git a/testdata/testoutput1 b/testdata/testoutput1
|
||||||
|
index 470e412..47d42ee 100644
|
||||||
|
--- a/testdata/testoutput1
|
||||||
|
+++ b/testdata/testoutput1
|
||||||
|
@@ -1,6 +1,10 @@
|
||||||
|
# This set of tests is for features that are compatible with all versions of
|
||||||
|
# Perl >= 5.10, in non-UTF mode. It should run clean for the 8-bit, 16-bit, and
|
||||||
|
# 32-bit PCRE libraries, and also using the perltest.sh script.
|
||||||
|
+
|
||||||
|
+# WARNING: Use only / as the pattern delimiter. Although pcre2test supports
|
||||||
|
+# a number of delimiters, all those other than / give problems with the
|
||||||
|
+# perltest.sh script.
|
||||||
|
|
||||||
|
#forbid_utf
|
||||||
|
#newline_default lf any anycrlf
|
||||||
|
@@ -2949,7 +2953,7 @@ No match
|
||||||
|
qqq\nabc\nzzz
|
||||||
|
No match
|
||||||
|
|
||||||
|
-"(?>.*/)foo"
|
||||||
|
+/(?>.*\/)foo/
|
||||||
|
/this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
|
||||||
|
0: /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
|
||||||
|
\= Expect no match
|
||||||
|
@@ -6081,14 +6085,16 @@ No match
|
||||||
|
A\x20B
|
||||||
|
0:
|
||||||
|
|
||||||
|
-"(?x)(?-x: \s*#\s*)"
|
||||||
|
+/(?x)(?-x: \s*#\s*)/
|
||||||
|
A # B
|
||||||
|
0: #
|
||||||
|
\= Expect no match
|
||||||
|
#
|
||||||
|
No match
|
||||||
|
+ A s#s B
|
||||||
|
+No match
|
||||||
|
|
||||||
|
-"(?x-is)(?:(?-ixs) \s*#\s*) include"
|
||||||
|
+/(?x-is)(?:(?-ixs) \s*#\s*) include/
|
||||||
|
A #include
|
||||||
|
0: #include
|
||||||
|
\= Expect no match
|
||||||
|
@@ -8402,12 +8408,12 @@ No match
|
||||||
|
1: <unset>
|
||||||
|
2: wxyz
|
||||||
|
|
||||||
|
-"(?>.*)foo"
|
||||||
|
+/(?>.*)foo/
|
||||||
|
\= Expect no match
|
||||||
|
abcdfooxyz
|
||||||
|
No match
|
||||||
|
|
||||||
|
-"(?>.*?)foo"
|
||||||
|
+/(?>.*?)foo/
|
||||||
|
abcdfooxyz
|
||||||
|
0: foo
|
||||||
|
|
||||||
|
@@ -8648,22 +8654,6 @@ No match
|
||||||
|
a
|
||||||
|
No match
|
||||||
|
|
||||||
|
-/(?=a\Kb)ab/
|
||||||
|
- ab
|
||||||
|
- 0: b
|
||||||
|
-
|
||||||
|
-/(?!a\Kb)ac/
|
||||||
|
- ac
|
||||||
|
- 0: ac
|
||||||
|
-
|
||||||
|
-/^abc(?<=b\Kc)d/
|
||||||
|
- abcd
|
||||||
|
- 0: cd
|
||||||
|
-
|
||||||
|
-/^abc(?<!b\Kq)d/
|
||||||
|
- abcd
|
||||||
|
- 0: abcd
|
||||||
|
-
|
||||||
|
/A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/x,mark
|
||||||
|
\= Expect no match
|
||||||
|
AAAC
|
||||||
|
@@ -9128,9 +9118,9 @@ No match
|
||||||
|
|
||||||
|
/(\2)(\1)/
|
||||||
|
|
||||||
|
-"Z*(|d*){216}"
|
||||||
|
+/Z*(|d*){216}/
|
||||||
|
|
||||||
|
-"(?1)(?#?'){8}(a)"
|
||||||
|
+/(?1)(?#?'){8}(a)/
|
||||||
|
baaaaaaaaac
|
||||||
|
0: aaaaaaaaa
|
||||||
|
1: a
|
||||||
|
@@ -9166,7 +9156,7 @@ No match
|
||||||
|
6:
|
||||||
|
7:
|
||||||
|
|
||||||
|
-"(?|(\k'Pm')|(?'Pm'))"
|
||||||
|
+/(?|(\k'Pm')|(?'Pm'))/
|
||||||
|
abcd
|
||||||
|
0:
|
||||||
|
1:
|
||||||
|
@@ -10165,24 +10155,24 @@ No match
|
||||||
|
Pack my fox with five dozen liquor jugs.
|
||||||
|
No match
|
||||||
|
|
||||||
|
-"(?<=X(?(DEFINE)(A)))X(*F)"
|
||||||
|
+/(?<=X(?(DEFINE)(A)))X(*F)/
|
||||||
|
\= Expect no match
|
||||||
|
AXYZ
|
||||||
|
No match
|
||||||
|
|
||||||
|
-"(?<=X(?(DEFINE)(A)))."
|
||||||
|
+/(?<=X(?(DEFINE)(A)))./
|
||||||
|
AXYZ
|
||||||
|
0: Y
|
||||||
|
|
||||||
|
-"(?<=X(?(DEFINE)(.*))Y)."
|
||||||
|
+/(?<=X(?(DEFINE)(.*))Y)./
|
||||||
|
AXYZ
|
||||||
|
0: Z
|
||||||
|
|
||||||
|
-"(?<=X(?(DEFINE)(Y))(?1))."
|
||||||
|
+/(?<=X(?(DEFINE)(Y))(?1))./
|
||||||
|
AXYZ
|
||||||
|
0: Z
|
||||||
|
|
||||||
|
-"(?(DEFINE)(?<foo>bar))(?<![-a-z0-9])word"
|
||||||
|
+/(?(DEFINE)(?<foo>bar))(?<![-a-z0-9])word/
|
||||||
|
word
|
||||||
|
0: word
|
||||||
|
|
||||||
|
diff --git a/testdata/testoutput2 b/testdata/testoutput2
|
||||||
|
index c06363a..d0592d3 100644
|
||||||
|
--- a/testdata/testoutput2
|
||||||
|
+++ b/testdata/testoutput2
|
||||||
|
@@ -17624,6 +17624,26 @@ MK: >\x00<
|
||||||
|
/(?(VERSION=0.0/
|
||||||
|
Failed: error 179 at offset 14: syntax error or number too big in (?(VERSION condition
|
||||||
|
|
||||||
|
+# Perl has made \K in lookarounds an error. At the moment PCRE2 still accepts.
|
||||||
|
+
|
||||||
|
+/(?=a\Kb)ab/
|
||||||
|
+ ab
|
||||||
|
+ 0: b
|
||||||
|
+
|
||||||
|
+/(?!a\Kb)ac/
|
||||||
|
+ ac
|
||||||
|
+ 0: ac
|
||||||
|
+
|
||||||
|
+/^abc(?<=b\Kc)d/
|
||||||
|
+ abcd
|
||||||
|
+ 0: cd
|
||||||
|
+
|
||||||
|
+/^abc(?<!b\Kq)d/
|
||||||
|
+ abcd
|
||||||
|
+ 0: abcd
|
||||||
|
+
|
||||||
|
+# ---------
|
||||||
|
+
|
||||||
|
# End of testinput2
|
||||||
|
Error -70: PCRE2_ERROR_BADDATA (unknown error number)
|
||||||
|
Error -62: bad serialized data
|
||||||
|
diff --git a/testdata/testoutput4 b/testdata/testoutput4
|
||||||
|
index 245a036..f43d940 100644
|
||||||
|
--- a/testdata/testoutput4
|
||||||
|
+++ b/testdata/testoutput4
|
||||||
|
@@ -3,6 +3,10 @@
|
||||||
|
# some of the property tests may differ because of different versions of
|
||||||
|
# Unicode in use by PCRE2 and Perl.
|
||||||
|
|
||||||
|
+# WARNING: Use only / as the pattern delimiter. Although pcre2test supports
|
||||||
|
+# a number of delimiters, all those other than / give problems with the
|
||||||
|
+# perltest.sh script.
|
||||||
|
+
|
||||||
|
#newline_default lf anycrlf any
|
||||||
|
#perltest
|
||||||
|
|
||||||
|
@@ -795,7 +799,7 @@ No match
|
||||||
|
ሴ
|
||||||
|
0: \x{1234}
|
||||||
|
|
||||||
|
-"(?s)(.{1,5})"utf
|
||||||
|
+/(?s)(.{1,5})/utf
|
||||||
|
abcdefg
|
||||||
|
0: abcde
|
||||||
|
1: abcde
|
||||||
|
@@ -3596,7 +3600,7 @@ No match
|
||||||
|
abcdefghijklmno
|
||||||
|
0: a
|
||||||
|
|
||||||
|
-"[\S\V\H]"utf
|
||||||
|
+/[\S\V\H]/utf
|
||||||
|
|
||||||
|
/[^\p{Any}]*+x/utf
|
||||||
|
x
|
||||||
|
--
|
||||||
|
2.25.4
|
||||||
|
|
@ -9,7 +9,7 @@
|
|||||||
#%%global rcversion RC1
|
#%%global rcversion RC1
|
||||||
Name: pcre2
|
Name: pcre2
|
||||||
Version: 10.35
|
Version: 10.35
|
||||||
Release: %{?rcversion:0.}4%{?rcversion:.%rcversion}%{?dist}.1
|
Release: %{?rcversion:0.}5%{?rcversion:.%rcversion}%{?dist}
|
||||||
%global myversion %{version}%{?rcversion:-%rcversion}
|
%global myversion %{version}%{?rcversion:-%rcversion}
|
||||||
Summary: Perl-compatible regular expression library
|
Summary: Perl-compatible regular expression library
|
||||||
# the library: BSD with exceptions
|
# the library: BSD with exceptions
|
||||||
@ -67,6 +67,8 @@ Patch4: pcre2-10.35-Fix-read-overflow-for-invalid-VERSION-test-with-one-.pat
|
|||||||
# Fix an early fail optimization with character ranges and a buffer overread
|
# Fix an early fail optimization with character ranges and a buffer overread
|
||||||
# in JIT, upstream bug #2621, in upstream after 10.35
|
# in JIT, upstream bug #2621, in upstream after 10.35
|
||||||
Patch5: pcre2-10.35-Fix-an-early-fail-optimization-issue-and-a-buffer-ov.patch
|
Patch5: pcre2-10.35-Fix-an-early-fail-optimization-issue-and-a-buffer-ov.patch
|
||||||
|
# Fix escaping test data, upstream bug #2641, in upstream after 10.35
|
||||||
|
Patch6: pcre2-10.35-Fix-delimiters-in-tests-1-and-4-for-correct-Perl-beh.patch
|
||||||
BuildRequires: autoconf
|
BuildRequires: autoconf
|
||||||
BuildRequires: automake
|
BuildRequires: automake
|
||||||
BuildRequires: coreutils
|
BuildRequires: coreutils
|
||||||
@ -163,6 +165,7 @@ Utilities demonstrating PCRE2 capabilities like pcre2grep or pcre2test.
|
|||||||
%patch3 -p1
|
%patch3 -p1
|
||||||
%patch4 -p1
|
%patch4 -p1
|
||||||
%patch5 -p1
|
%patch5 -p1
|
||||||
|
%patch6 -p1
|
||||||
# Because of multilib patch
|
# Because of multilib patch
|
||||||
libtoolize --copy --force
|
libtoolize --copy --force
|
||||||
autoreconf -vif
|
autoreconf -vif
|
||||||
@ -276,6 +279,9 @@ make %{?_smp_mflags} check VERBOSE=yes
|
|||||||
%{_mandir}/man1/pcre2test.*
|
%{_mandir}/man1/pcre2test.*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Sep 14 2020 Petr Pisar <ppisar@redhat.com> - 10.35-5
|
||||||
|
- Fix escaping test data (upstream bug #2641)
|
||||||
|
|
||||||
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 10.35-4.1
|
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 10.35-4.1
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user