[Pcre-svn] [1270] code/trunk: Update pcre2test to check deli…

Top Page
Delete this message
Author: Subversion repository
Date:  
To: pcre-svn
Subject: [Pcre-svn] [1270] code/trunk: Update pcre2test to check delimiters after #perltest and fix some in test 1.
Revision: 1270
          http://www.exim.org/viewvc/pcre2?view=rev&revision=1270
Author:   ph10
Date:     2020-09-14 16:39:39 +0100 (Mon, 14 Sep 2020)
Log Message:
-----------
Update pcre2test to check delimiters after #perltest and fix some in test 1.


Modified Paths:
--------------
    code/trunk/doc/pcre2test.1
    code/trunk/src/pcre2test.c
    code/trunk/testdata/testinput1
    code/trunk/testdata/testoutput1


Modified: code/trunk/doc/pcre2test.1
===================================================================
--- code/trunk/doc/pcre2test.1    2020-09-13 15:56:32 UTC (rev 1269)
+++ code/trunk/doc/pcre2test.1    2020-09-14 15:39:39 UTC (rev 1270)
@@ -1,4 +1,4 @@
-.TH PCRE2TEST 1 "20 March 2020" "PCRE 10.35"
+.TH PCRE2TEST 1 "14 September 2020" "PCRE 10.36"
 .SH NAME
 pcre2test - a program for testing Perl-compatible regular expressions.
 .SH SYNOPSIS
@@ -273,7 +273,7 @@
 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
 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
 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
@@ -369,14 +369,19 @@
 .sp
   #perltest
 .sp
-The appearance of this line causes all subsequent modifier settings to be
-checked for compatibility with the \fBperltest.sh\fP script, which is used to
-confirm that Perl gives the same results as PCRE2. Also, apart from comment
-lines, #pattern commands, and #subject commands that set or unset "mark", no
-command lines are permitted, because they and many of the modifiers are
-specific to \fBpcre2test\fP, and should not be used in test files that are also
-processed by \fBperltest.sh\fP. The \fB#perltest\fP command helps detect tests
-that are accidentally put in the wrong file.
+This line is used in test files that can also be processed by \fBperltest.sh\fP
+to confirm that Perl gives the same results as PCRE2. Subsequent tests are
+checked for the use of \fBpcre2test\fP features that are incompatible with the
+\fBperltest.sh\fP script. 
+.P
+Patterns must use '/' as their delimiter, and only certain modifiers are
+supported. Comment lines, #pattern commands, and #subject commands that set or
+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
   #pop [<modifiers>]
   #popcopy [<modifiers>]
@@ -2096,6 +2101,6 @@
 .rs
 .sp
 .nf
-Last updated: 20 March 2020
+Last updated: 14 September 2020
 Copyright (c) 1997-2020 University of Cambridge.
 .fi


Modified: code/trunk/src/pcre2test.c
===================================================================
--- code/trunk/src/pcre2test.c    2020-09-13 15:56:32 UTC (rev 1269)
+++ code/trunk/src/pcre2test.c    2020-09-14 15:39:39 UTC (rev 1270)
@@ -5136,6 +5136,14 @@
 PCRE2_SIZE valgrind_access_length;
 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
defaults. */


Modified: code/trunk/testdata/testinput1
===================================================================
--- code/trunk/testdata/testinput1    2020-09-13 15:56:32 UTC (rev 1269)
+++ code/trunk/testdata/testinput1    2020-09-14 15:39:39 UTC (rev 1270)
@@ -5652,16 +5652,16 @@
 \= Expect no match
     acb


-'\A(?:[^\"]++|\"(?:[^\"]*+|\"\")*+\")++'
+/\A(?:[^\"]++|\"(?:[^\"]*+|\"\")*+\")++/
     NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED


-'\A(?:[^\"]++|\"(?:[^\"]++|\"\")*+\")++'
+/\A(?:[^\"]++|\"(?:[^\"]++|\"\")*+\")++/
     NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED


-'\A(?:[^\"]++|\"(?:[^\"]++|\"\")++\")++'
+/\A(?:[^\"]++|\"(?:[^\"]++|\"\")++\")++/
     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


 /^\w+(?>\s*)(?<=\w)/
@@ -5826,19 +5826,19 @@
 \= Expect no match     
     aab


-'(?>ab|abab){1,5}?M'
+/(?>ab|abab){1,5}?M/
     abababababababababababM


-'(?>ab|abab){2}?M'
+/(?>ab|abab){2}?M/
     abababM


-'((?(?=(a))a)+k)'
+/((?(?=(a))a)+k)/
     bbak


-'((?(?=(a))a|)+k)'
+/((?(?=(a))a|)+k)/
     bbak


-'(?(?!(b))a|b)+k'
+/(?(?!(b))a|b)+k/
     ababbalbbadabak


/(?!(b))c|b/

Modified: code/trunk/testdata/testoutput1
===================================================================
--- code/trunk/testdata/testoutput1    2020-09-13 15:56:32 UTC (rev 1269)
+++ code/trunk/testdata/testoutput1    2020-09-14 15:39:39 UTC (rev 1270)
@@ -8978,19 +8978,19 @@
     acb
 No match


-'\A(?:[^\"]++|\"(?:[^\"]*+|\"\")*+\")++'
+/\A(?:[^\"]++|\"(?:[^\"]*+|\"\")*+\")++/
     NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED
  0: NON QUOTED "QUOT""ED" AFTER 


-'\A(?:[^\"]++|\"(?:[^\"]++|\"\")*+\")++'
+/\A(?:[^\"]++|\"(?:[^\"]++|\"\")*+\")++/
     NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED
  0: NON QUOTED "QUOT""ED" AFTER 


-'\A(?:[^\"]++|\"(?:[^\"]++|\"\")++\")++'
+/\A(?:[^\"]++|\"(?:[^\"]++|\"\")++\")++/
     NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED
  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
  0: NON QUOTED "QUOT""ED" AFTER 
  1:  AFTER 
@@ -9312,27 +9312,27 @@
     aab
 No match


-'(?>ab|abab){1,5}?M'
+/(?>ab|abab){1,5}?M/
     abababababababababababM
  0: abababababM


-'(?>ab|abab){2}?M'
+/(?>ab|abab){2}?M/
     abababM
  0: ababM


-'((?(?=(a))a)+k)'
+/((?(?=(a))a)+k)/
     bbak
  0: ak
  1: ak
  2: a


-'((?(?=(a))a|)+k)'
+/((?(?=(a))a|)+k)/
     bbak
  0: ak
  1: ak
  2: a


-'(?(?!(b))a|b)+k'
+/(?(?!(b))a|b)+k/
     ababbalbbadabak
  0: abak
  1: b