Revision: 1388
http://vcs.pcre.org/viewvc?view=rev&revision=1388
Author: ph10
Date: 2013-11-05 15:24:45 +0000 (Tue, 05 Nov 2013)
Log Message:
-----------
Add a simple tripwire to pcretest to lock out certain modifiers.
Modified Paths:
--------------
code/trunk/ChangeLog
code/trunk/doc/pcretest.1
code/trunk/pcretest.c
code/trunk/perltest.pl
code/trunk/testdata/testinput1
code/trunk/testdata/testinput14
code/trunk/testdata/testinput15
code/trunk/testdata/testinput17
code/trunk/testdata/testinput18
code/trunk/testdata/testinput2
code/trunk/testdata/testinput23
code/trunk/testdata/testinput24
code/trunk/testdata/testinput25
code/trunk/testdata/testinput26
code/trunk/testdata/testinput3
code/trunk/testdata/testinput4
code/trunk/testdata/testinput5
code/trunk/testdata/testinput6
code/trunk/testdata/testinput8
code/trunk/testdata/testinput9
code/trunk/testdata/testoutput1
code/trunk/testdata/testoutput14
code/trunk/testdata/testoutput15
code/trunk/testdata/testoutput17
code/trunk/testdata/testoutput18-16
code/trunk/testdata/testoutput18-32
code/trunk/testdata/testoutput2
code/trunk/testdata/testoutput23
code/trunk/testdata/testoutput24
code/trunk/testdata/testoutput25
code/trunk/testdata/testoutput26
code/trunk/testdata/testoutput3
code/trunk/testdata/testoutput4
code/trunk/testdata/testoutput5
code/trunk/testdata/testoutput6
code/trunk/testdata/testoutput8
code/trunk/testdata/testoutput9
Modified: code/trunk/ChangeLog
===================================================================
--- code/trunk/ChangeLog 2013-11-02 18:29:05 UTC (rev 1387)
+++ code/trunk/ChangeLog 2013-11-05 15:24:45 UTC (rev 1388)
@@ -151,6 +151,9 @@
31. Upgraded the handling of the POSIX classes [:graph:], [:print:], and
[:punct:] when PCRE_UCP is set so as to include the same characters as Perl
does in Unicode mode.
+
+32. Added the "forbid" facility to pcretest so that putting tests into the
+ wrong test files can sometimes be quickly detected.
Version 8.33 28-May-2013
Modified: code/trunk/doc/pcretest.1
===================================================================
--- code/trunk/doc/pcretest.1 2013-11-02 18:29:05 UTC (rev 1387)
+++ code/trunk/doc/pcretest.1 2013-11-05 15:24:45 UTC (rev 1388)
@@ -1,4 +1,4 @@
-.TH PCRETEST 1 "09 October 2013" "PCRE 8.34"
+.TH PCRETEST 1 "05 November 2013" "PCRE 8.34"
.SH NAME
pcretest - a program for testing Perl-compatible regular expressions.
.SH SYNOPSIS
@@ -254,7 +254,7 @@
.P
The program handles any number of sets of input on a single input file. Each
set starts with a regular expression, and continues with any number of data
-lines to be matched against the pattern.
+lines to be matched against that pattern.
.P
Each data line is matched separately and independently. If you want to do
multi-line matches, you have to use the \en escape sequence (or \er or \er\en,
@@ -595,6 +595,37 @@
ignored.
.
.
+.SS "Locking out certain modifiers"
+.rs
+.sp
+PCRE can be compiled with or without support for certain features such as
+UTF-8/16/32 or Unicode properties. Accordingly, the standard tests are split up
+into a number of different files that are selected for running depending on
+which features are available. When updating the tests, it is all too easy to
+put a new test into the wrong file by mistake; for example, to put a test that
+requires UTF support into a file that is used when it is not available. To help
+detect such mistakes as early as possible, there is a facility for locking out
+specific modifiers. If an input line for \fBpcretest\fP starts with the string
+"< forbid " the following sequence of characters is taken as a list of
+forbidden modifiers. For example, in the test files that must not use UTF or
+Unicode property support, this line appears:
+.sp
+ < forbid 8W
+.sp
+This locks out the /8 and /W modifiers. An immediate error is given if they are
+subsequently encountered. If the character string contains < but not >, all the
+multi-character modifiers that begin with < are locked out. Otherwise, such
+modifiers must be explicitly listed, for example:
+.sp
+ < forbid <JS><cr>
+.sp
+There must be a single space between < and "forbid" for this feature to be
+recognised. If there is not, the line is interpreted either as a request to
+re-load a pre-compiled pattern (see "SAVING AND RELOADING COMPILED PATTERNS"
+below) or, if there is a another < character, as a pattern that uses < as its
+delimiter.
+.
+.
.SH "DATA LINES"
.rs
.sp
@@ -1042,10 +1073,9 @@
writing the file, \fBpcretest\fP expects to read a new pattern.
.P
A saved pattern can be reloaded into \fBpcretest\fP by specifying < and a file
-name instead of a pattern. The name of the file must not contain a < character,
-as otherwise \fBpcretest\fP will interpret the line as a pattern delimited by <
-characters.
-For example:
+name instead of a pattern. There must be no space between < and the file name,
+which must not contain a < character, as otherwise \fBpcretest\fP will
+interpret the line as a pattern delimited by < characters. For example:
.sp
re> </some/file
Compiled pattern loaded from /some/file
@@ -1105,6 +1135,6 @@
.rs
.sp
.nf
-Last updated: 09 October 2013
+Last updated: 05 November 2013
Copyright (c) 1997-2013 University of Cambridge.
.fi
Modified: code/trunk/pcretest.c
===================================================================
--- code/trunk/pcretest.c 2013-11-02 18:29:05 UTC (rev 1387)
+++ code/trunk/pcretest.c 2013-11-05 15:24:45 UTC (rev 1388)
@@ -2823,7 +2823,7 @@
/*************************************************
-* Check newline indicator *
+* Check multicharacter option *
*************************************************/
/* This is used both at compile and run-time to check for <xxx> escapes. Print
@@ -2832,12 +2832,14 @@
Arguments:
p points after the leading '<'
f file for error message
+ nl TRUE to check only for newline settings
+ stype "modifier" or "escape sequence"
Returns: appropriate PCRE_NEWLINE_xxx flags, or 0
*/
static int
-check_newline(pcre_uint8 *p, FILE *f)
+check_mc_option(pcre_uint8 *p, FILE *f, BOOL nl, const char *stype)
{
if (strncmpic(p, (pcre_uint8 *)"cr>", 3) == 0) return PCRE_NEWLINE_CR;
if (strncmpic(p, (pcre_uint8 *)"lf>", 3) == 0) return PCRE_NEWLINE_LF;
@@ -2846,7 +2848,13 @@
if (strncmpic(p, (pcre_uint8 *)"any>", 4) == 0) return PCRE_NEWLINE_ANY;
if (strncmpic(p, (pcre_uint8 *)"bsr_anycrlf>", 12) == 0) return PCRE_BSR_ANYCRLF;
if (strncmpic(p, (pcre_uint8 *)"bsr_unicode>", 12) == 0) return PCRE_BSR_UNICODE;
-fprintf(f, "Unknown newline type at: <%s\n", p);
+
+if (!nl)
+ {
+ if (strncmpic(p, (pcre_uint8 *)"JS>", 3) == 0) return PCRE_JAVASCRIPT_COMPAT;
+ }
+
+fprintf(f, "Unknown %s at: <%s\n", stype, p);
return 0;
}
@@ -2951,6 +2959,7 @@
int yield = 0;
int stack_size;
pcre_uint8 *dbuffer = NULL;
+pcre_uint8 lockout[24] = { 0 };
size_t dbuffer_size = 1u << 14;
clock_t total_compile_time = 0;
clock_t total_study_time = 0;
@@ -3385,7 +3394,7 @@
pcre32_stack_free = stack_free;
#endif
-/* Heading line unless quiet, then prompt for first regex if stdin */
+/* Heading line unless quiet */
if (!quiet) fprintf(outfile, "PCRE version %s\n\n", version);
@@ -3436,6 +3445,30 @@
p = buffer;
while (isspace(*p)) p++;
if (*p == 0) continue;
+
+ /* Handle option lock-out setting */
+
+ if (*p == '<' && p[1] == ' ')
+ {
+ p += 2;
+ while (isspace(*p)) p++;
+ if (strncmp((char *)p, "forbid ", 7) == 0)
+ {
+ p += 7;
+ while (isspace(*p)) p++;
+ pp = lockout;
+ while (!isspace(*p) && pp < lockout + sizeof(lockout) - 1)
+ *pp++ = *p++;
+ *pp = 0;
+ }
+ else
+ {
+ fprintf(outfile, "** Unrecognized special command '%s'\n", p);
+ yield = 1;
+ goto EXIT;
+ }
+ continue;
+ }
/* See if the pattern is to be loaded pre-compiled from a file. */
@@ -3616,7 +3649,7 @@
*pp++ = 0;
strcpy((char *)pbuffer, (char *)p);
- /* Look for options after final delimiter */
+ /* Look for modifiers and options after the final delimiter. */
options = default_options;
study_options = force_study_options;
@@ -3624,6 +3657,55 @@
while (*pp != 0)
{
+ /* Check to see whether this modifier has been locked out for this file.
+ This is complicated for the multi-character options that begin with '<'.
+ If there is no '>' in the lockout string, all multi-character modifiers are
+ locked out. */
+
+ if (strchr((char *)lockout, *pp) != NULL)
+ {
+ if (*pp == '<' && strchr((char *)lockout, '>') != NULL)
+ {
+ int x = check_mc_option(pp+1, outfile, FALSE, "modifier");
+ if (x == 0) goto SKIP_DATA;
+
+ for (ppp = lockout; *ppp != 0; ppp++)
+ {
+ if (*ppp == '<')
+ {
+ int y = check_mc_option(ppp+1, outfile, FALSE, "modifier");
+ if (y == 0)
+ {
+ fprintf(outfile,
+ "** Error in modifier forbid data - giving up.\n");
+ yield = 1;
+ goto EXIT;
+ }
+ if (x == y)
+ {
+ ppp = pp;
+ while (*ppp != '>') ppp++;
+ fprintf(outfile, "** The %.*s modifier is locked out - "
+ "giving up.\n", ppp - pp + 1, pp);
+ yield = 1;
+ goto EXIT;
+ }
+ }
+ }
+ }
+
+ /* The single-character modifiers are straightforward. */
+
+ else
+ {
+ fprintf(outfile, "** The /%c modifier is locked out - giving up.\n", *pp);
+ yield = 1;
+ goto EXIT;
+ }
+ }
+
+ /* The modifier is not locked out; handle it. */
+
switch (*pp++)
{
case 'f': options |= PCRE_FIRSTLINE; break;
@@ -3748,18 +3830,10 @@
case '<':
{
- if (strncmpic(pp, (pcre_uint8 *)"JS>", 3) == 0)
- {
- options |= PCRE_JAVASCRIPT_COMPAT;
- pp += 3;
- }
- else
- {
- int x = check_newline(pp, outfile);
- if (x == 0) goto SKIP_DATA;
- options |= x;
- while (*pp++ != '>');
- }
+ int x = check_mc_option(pp, outfile, FALSE, "modifier");
+ if (x == 0) goto SKIP_DATA;
+ options |= x;
+ while (*pp++ != '>');
}
break;
@@ -3769,7 +3843,7 @@
break;
default:
- fprintf(outfile, "** Unknown option '%c'\n", pp[-1]);
+ fprintf(outfile, "** Unknown modifier '%c'\n", pp[-1]);
goto SKIP_DATA;
}
}
@@ -4757,7 +4831,7 @@
case '<':
{
- int x = check_newline(p, outfile);
+ int x = check_mc_option(p, outfile, TRUE, "escape sequence");
if (x == 0) goto NEXT_DATA;
options |= x;
while (*p++ != '>');
Modified: code/trunk/perltest.pl
===================================================================
--- code/trunk/perltest.pl 2013-11-02 18:29:05 UTC (rev 1387)
+++ code/trunk/perltest.pl 2013-11-05 15:24:45 UTC (rev 1388)
@@ -68,8 +68,8 @@
printf " re> " if $infile eq "STDIN";
last if ! ($_ = <$infile>);
printf $outfile "$_" if $infile ne "STDIN";
- next if ($_ eq "");
-
+ next if ($_ =~ /^\s*$/ || $_ =~ /^< forbid/);
+
$pattern = $_;
while ($pattern !~ /^\s*(.).*\1/s)
Modified: code/trunk/testdata/testinput1
===================================================================
--- code/trunk/testdata/testinput1 2013-11-02 18:29:05 UTC (rev 1387)
+++ code/trunk/testdata/testinput1 2013-11-05 15:24:45 UTC (rev 1388)
@@ -1,6 +1,8 @@
/-- This set of tests is for features that are compatible with all versions of
Perl >= 5.10, in non-UTF-8 mode. It should run clean for the 8-bit, 16-bit,
and 32-bit PCRE libraries. --/
+
+< forbid 8BCDIMWZ<
/the quick brown fox/
the quick brown fox
Modified: code/trunk/testdata/testinput14
===================================================================
--- code/trunk/testdata/testinput14 2013-11-02 18:29:05 UTC (rev 1387)
+++ code/trunk/testdata/testinput14 2013-11-05 15:24:45 UTC (rev 1388)
@@ -1,6 +1,9 @@
-/-- This set of tests is run only with the 8-bit library. It starts with all
- the tests of the POSIX interface, because that is supported only with the
- 8-bit library. --/
+/-- This set of tests is run only with the 8-bit library. They do not require
+ UTF-8 or Unicode property support. The file starts with all the tests of
+ the POSIX interface, because that is supported only with the 8-bit library.
+ --/
+
+< forbid 8W
/abc/P
abc
Modified: code/trunk/testdata/testinput15
===================================================================
--- code/trunk/testdata/testinput15 2013-11-02 18:29:05 UTC (rev 1387)
+++ code/trunk/testdata/testinput15 2013-11-05 15:24:45 UTC (rev 1388)
@@ -1,6 +1,8 @@
-/-- This set of tests is for UTF-8 support, and is relevant only to the 8-bit
- library. --/
+/-- This set of tests is for UTF-8 support but not Unicode property support,
+ and is relevant only to the 8-bit library. --/
+< forbid W
+
/X(\C{3})/8
X\x{1234}
Modified: code/trunk/testdata/testinput17
===================================================================
--- code/trunk/testdata/testinput17 2013-11-02 18:29:05 UTC (rev 1387)
+++ code/trunk/testdata/testinput17 2013-11-05 15:24:45 UTC (rev 1388)
@@ -1,6 +1,8 @@
/-- This set of tests is for the 16- and 32-bit library's basic (non-UTF-16
or -32) features that are not compatible with the 8-bit library, or which
give different output in 16- or 32-bit mode. --/
+
+< forbid 8W
/a\Cb/
aXb
Modified: code/trunk/testdata/testinput18
===================================================================
--- code/trunk/testdata/testinput18 2013-11-02 18:29:05 UTC (rev 1387)
+++ code/trunk/testdata/testinput18 2013-11-05 15:24:45 UTC (rev 1388)
@@ -1,5 +1,7 @@
-/-- This set of tests is for UTF-16 and UTF-32 support, and is relevant only to the
- 16- and 32-bit library. --/
+/-- This set of tests is for UTF-16 and UTF-32 support, and is relevant only to
+ the 16- and 32-bit libraries. --/
+
+< forbid W
/\xC3\xC3\xC3xxx/8?DZSS
Modified: code/trunk/testdata/testinput2
===================================================================
--- code/trunk/testdata/testinput2 2013-11-02 18:29:05 UTC (rev 1387)
+++ code/trunk/testdata/testinput2 2013-11-05 15:24:45 UTC (rev 1388)
@@ -7,6 +7,8 @@
NOTE: This is a non-UTF set of tests. When UTF support is needed, use
test 5, and if Unicode Property Support is needed, use test 7. --/
+
+< forbid 8W
/(a)b|/I
Modified: code/trunk/testdata/testinput23
===================================================================
--- code/trunk/testdata/testinput23 2013-11-02 18:29:05 UTC (rev 1387)
+++ code/trunk/testdata/testinput23 2013-11-05 15:24:45 UTC (rev 1388)
@@ -1,5 +1,7 @@
/-- Tests for the 16-bit library only */
+< forbid 8W
+
/-- Check maximum non-UTF character size --/
/\x{ffff}/
Modified: code/trunk/testdata/testinput24
===================================================================
--- code/trunk/testdata/testinput24 2013-11-02 18:29:05 UTC (rev 1387)
+++ code/trunk/testdata/testinput24 2013-11-05 15:24:45 UTC (rev 1388)
@@ -1,5 +1,7 @@
/-- Tests for the 16-bit library with UTF-16 support only */
+< forbid W
+
/bad/8
\x{d800}
Modified: code/trunk/testdata/testinput25
===================================================================
--- code/trunk/testdata/testinput25 2013-11-02 18:29:05 UTC (rev 1387)
+++ code/trunk/testdata/testinput25 2013-11-05 15:24:45 UTC (rev 1388)
@@ -1,5 +1,7 @@
/-- Tests for the 32-bit library only */
+< forbid 8w
+
/-- Check maximum character size --/
/\x{110000}/
Modified: code/trunk/testdata/testinput26
===================================================================
--- code/trunk/testdata/testinput26 2013-11-02 18:29:05 UTC (rev 1387)
+++ code/trunk/testdata/testinput26 2013-11-05 15:24:45 UTC (rev 1388)
@@ -1,5 +1,7 @@
/-- Tests for the 32-bit library with UTF-32 support only */
+< forbid W
+
/-- Non-UTF characters --/
/\x{110000}/8
Modified: code/trunk/testdata/testinput3
===================================================================
--- code/trunk/testdata/testinput3 2013-11-02 18:29:05 UTC (rev 1387)
+++ code/trunk/testdata/testinput3 2013-11-05 15:24:45 UTC (rev 1388)
@@ -1,6 +1,8 @@
/-- This set of tests checks local-specific features, using the fr_FR locale.
It is not Perl-compatible. There is different version called wintestinput3
f or use on Windows, where the locale is called "french". --/
+
+< forbid 8W
/^[\w]+/
*** Failers
Modified: code/trunk/testdata/testinput4
===================================================================
--- code/trunk/testdata/testinput4 2013-11-02 18:29:05 UTC (rev 1387)
+++ code/trunk/testdata/testinput4 2013-11-05 15:24:45 UTC (rev 1388)
@@ -1,6 +1,8 @@
/-- This set of tests is for UTF support, excluding Unicode properties. It is
compatible with all versions of Perl >= 5.10 and both the 8-bit and 16-bit
PCRE libraries. --/
+
+< forbid BCDIMWZ<
/a.b/8
acb
Modified: code/trunk/testdata/testinput5
===================================================================
--- code/trunk/testdata/testinput5 2013-11-02 18:29:05 UTC (rev 1387)
+++ code/trunk/testdata/testinput5 2013-11-05 15:24:45 UTC (rev 1388)
@@ -1,6 +1,8 @@
/-- This set of tests checks the API, internals, and non-Perl stuff for UTF
support, excluding Unicode properties. However, tests that give different
results in 8-bit and 16-bit modes are excluded (see tests 16 and 17). --/
+
+< forbid W
/\x{110000}/8DZ
Modified: code/trunk/testdata/testinput6
===================================================================
--- code/trunk/testdata/testinput6 2013-11-02 18:29:05 UTC (rev 1387)
+++ code/trunk/testdata/testinput6 2013-11-05 15:24:45 UTC (rev 1388)
@@ -1,5 +1,7 @@
/-- This set of tests is for Unicode property support. It is compatible with
Perl >= 5.15. --/
+
+< forbid BCDIMZ<
/^\pC\pL\pM\pN\pP\pS\pZ</8
\x7f\x{c0}\x{30f}\x{660}\x{66c}\x{f01}\x{1680}<
Modified: code/trunk/testdata/testinput8
===================================================================
--- code/trunk/testdata/testinput8 2013-11-02 18:29:05 UTC (rev 1387)
+++ code/trunk/testdata/testinput8 2013-11-05 15:24:45 UTC (rev 1388)
@@ -1,5 +1,8 @@
-/-- This set of tests check the DFA matching functionality of pcre_dfa_exec().
- The -dfa flag must be used with pcretest when running it. --/
+/-- This set of tests check the DFA matching functionality of pcre_dfa_exec(),
+ excluding UTF and Unicode property support. The -dfa flag must be used with
+ pcretest when running it. --/
+
+< forbid 8W
/abc/
abc
Modified: code/trunk/testdata/testinput9
===================================================================
--- code/trunk/testdata/testinput9 2013-11-02 18:29:05 UTC (rev 1387)
+++ code/trunk/testdata/testinput9 2013-11-05 15:24:45 UTC (rev 1388)
@@ -1,6 +1,8 @@
/-- This set of tests checks UTF-8 support with the DFA matching functionality
- of pcre_dfa_exec(). The -dfa flag must be used with pcretest when running
- it. --/
+ of pcre_dfa_exec(), excluding Unicode property support. The -dfa flag must
+ be used with pcretest when running it. --/
+
+< forbid W
/\x{100}ab/8
\x{100}ab
Modified: code/trunk/testdata/testoutput1
===================================================================
--- code/trunk/testdata/testoutput1 2013-11-02 18:29:05 UTC (rev 1387)
+++ code/trunk/testdata/testoutput1 2013-11-05 15:24:45 UTC (rev 1388)
@@ -1,6 +1,8 @@
/-- This set of tests is for features that are compatible with all versions of
Perl >= 5.10, in non-UTF-8 mode. It should run clean for the 8-bit, 16-bit,
and 32-bit PCRE libraries. --/
+
+< forbid 8BCDIMWZ<
/the quick brown fox/
the quick brown fox
Modified: code/trunk/testdata/testoutput14
===================================================================
--- code/trunk/testdata/testoutput14 2013-11-02 18:29:05 UTC (rev 1387)
+++ code/trunk/testdata/testoutput14 2013-11-05 15:24:45 UTC (rev 1388)
@@ -1,6 +1,9 @@
-/-- This set of tests is run only with the 8-bit library. It starts with all
- the tests of the POSIX interface, because that is supported only with the
- 8-bit library. --/
+/-- This set of tests is run only with the 8-bit library. They do not require
+ UTF-8 or Unicode property support. The file starts with all the tests of
+ the POSIX interface, because that is supported only with the 8-bit library.
+ --/
+
+< forbid 8W
/abc/P
abc
Modified: code/trunk/testdata/testoutput15
===================================================================
--- code/trunk/testdata/testoutput15 2013-11-02 18:29:05 UTC (rev 1387)
+++ code/trunk/testdata/testoutput15 2013-11-05 15:24:45 UTC (rev 1388)
@@ -1,6 +1,8 @@
-/-- This set of tests is for UTF-8 support, and is relevant only to the 8-bit
- library. --/
+/-- This set of tests is for UTF-8 support but not Unicode property support,
+ and is relevant only to the 8-bit library. --/
+< forbid W
+
/X(\C{3})/8
X\x{1234}
0: X\x{1234}
Modified: code/trunk/testdata/testoutput17
===================================================================
--- code/trunk/testdata/testoutput17 2013-11-02 18:29:05 UTC (rev 1387)
+++ code/trunk/testdata/testoutput17 2013-11-05 15:24:45 UTC (rev 1388)
@@ -1,6 +1,8 @@
/-- This set of tests is for the 16- and 32-bit library's basic (non-UTF-16
or -32) features that are not compatible with the 8-bit library, or which
give different output in 16- or 32-bit mode. --/
+
+< forbid 8W
/a\Cb/
aXb
Modified: code/trunk/testdata/testoutput18-16
===================================================================
--- code/trunk/testdata/testoutput18-16 2013-11-02 18:29:05 UTC (rev 1387)
+++ code/trunk/testdata/testoutput18-16 2013-11-05 15:24:45 UTC (rev 1388)
@@ -1,5 +1,7 @@
-/-- This set of tests is for UTF-16 and UTF-32 support, and is relevant only to the
- 16- and 32-bit library. --/
+/-- This set of tests is for UTF-16 and UTF-32 support, and is relevant only to
+ the 16- and 32-bit libraries. --/
+
+< forbid W
/\xC3\xC3\xC3xxx/8?DZSS
**Failed: invalid UTF-8 string cannot be converted to UTF-16
Modified: code/trunk/testdata/testoutput18-32
===================================================================
--- code/trunk/testdata/testoutput18-32 2013-11-02 18:29:05 UTC (rev 1387)
+++ code/trunk/testdata/testoutput18-32 2013-11-05 15:24:45 UTC (rev 1388)
@@ -1,5 +1,7 @@
-/-- This set of tests is for UTF-16 and UTF-32 support, and is relevant only to the
- 16- and 32-bit library. --/
+/-- This set of tests is for UTF-16 and UTF-32 support, and is relevant only to
+ the 16- and 32-bit libraries. --/
+
+< forbid W
/\xC3\xC3\xC3xxx/8?DZSS
**Failed: invalid UTF-8 string cannot be converted to UTF-32
Modified: code/trunk/testdata/testoutput2
===================================================================
--- code/trunk/testdata/testoutput2 2013-11-02 18:29:05 UTC (rev 1387)
+++ code/trunk/testdata/testoutput2 2013-11-05 15:24:45 UTC (rev 1388)
@@ -7,6 +7,8 @@
NOTE: This is a non-UTF set of tests. When UTF support is needed, use
test 5, and if Unicode Property Support is needed, use test 7. --/
+
+< forbid 8W
/(a)b|/I
Capturing subpattern count = 1
@@ -6540,7 +6542,7 @@
No match
/^abc/Im<bad>
-Unknown newline type at: <bad>
+Unknown modifier at: <bad>
/abc/I
@@ -6549,7 +6551,7 @@
First char = 'a'
Need char = 'c'
xyz\rabc\<bad>
-Unknown newline type at: <bad>
+Unknown escape sequence at: <bad>
abc
0: abc
Modified: code/trunk/testdata/testoutput23
===================================================================
--- code/trunk/testdata/testoutput23 2013-11-02 18:29:05 UTC (rev 1387)
+++ code/trunk/testdata/testoutput23 2013-11-05 15:24:45 UTC (rev 1388)
@@ -1,5 +1,7 @@
/-- Tests for the 16-bit library only */
+< forbid 8W
+
/-- Check maximum non-UTF character size --/
/\x{ffff}/
Modified: code/trunk/testdata/testoutput24
===================================================================
--- code/trunk/testdata/testoutput24 2013-11-02 18:29:05 UTC (rev 1387)
+++ code/trunk/testdata/testoutput24 2013-11-05 15:24:45 UTC (rev 1388)
@@ -1,5 +1,7 @@
/-- Tests for the 16-bit library with UTF-16 support only */
+< forbid W
+
/bad/8
\x{d800}
Error -10 (bad UTF-16 string) offset=0 reason=1
Modified: code/trunk/testdata/testoutput25
===================================================================
--- code/trunk/testdata/testoutput25 2013-11-02 18:29:05 UTC (rev 1387)
+++ code/trunk/testdata/testoutput25 2013-11-05 15:24:45 UTC (rev 1388)
@@ -1,5 +1,7 @@
/-- Tests for the 32-bit library only */
+< forbid 8w
+
/-- Check maximum character size --/
/\x{110000}/
Modified: code/trunk/testdata/testoutput26
===================================================================
--- code/trunk/testdata/testoutput26 2013-11-02 18:29:05 UTC (rev 1387)
+++ code/trunk/testdata/testoutput26 2013-11-05 15:24:45 UTC (rev 1388)
@@ -1,5 +1,7 @@
/-- Tests for the 32-bit library with UTF-32 support only */
+< forbid W
+
/-- Non-UTF characters --/
/\x{110000}/8
Modified: code/trunk/testdata/testoutput3
===================================================================
--- code/trunk/testdata/testoutput3 2013-11-02 18:29:05 UTC (rev 1387)
+++ code/trunk/testdata/testoutput3 2013-11-05 15:24:45 UTC (rev 1388)
@@ -1,6 +1,8 @@
/-- This set of tests checks local-specific features, using the fr_FR locale.
It is not Perl-compatible. There is different version called wintestinput3
f or use on Windows, where the locale is called "french". --/
+
+< forbid 8W
/^[\w]+/
*** Failers
Modified: code/trunk/testdata/testoutput4
===================================================================
--- code/trunk/testdata/testoutput4 2013-11-02 18:29:05 UTC (rev 1387)
+++ code/trunk/testdata/testoutput4 2013-11-05 15:24:45 UTC (rev 1388)
@@ -1,6 +1,8 @@
/-- This set of tests is for UTF support, excluding Unicode properties. It is
compatible with all versions of Perl >= 5.10 and both the 8-bit and 16-bit
PCRE libraries. --/
+
+< forbid BCDIMWZ<
/a.b/8
acb
Modified: code/trunk/testdata/testoutput5
===================================================================
--- code/trunk/testdata/testoutput5 2013-11-02 18:29:05 UTC (rev 1387)
+++ code/trunk/testdata/testoutput5 2013-11-05 15:24:45 UTC (rev 1388)
@@ -1,6 +1,8 @@
/-- This set of tests checks the API, internals, and non-Perl stuff for UTF
support, excluding Unicode properties. However, tests that give different
results in 8-bit and 16-bit modes are excluded (see tests 16 and 17). --/
+
+< forbid W
/\x{110000}/8DZ
Failed: character value in \x{} or \o{} is too large at offset 9
Modified: code/trunk/testdata/testoutput6
===================================================================
--- code/trunk/testdata/testoutput6 2013-11-02 18:29:05 UTC (rev 1387)
+++ code/trunk/testdata/testoutput6 2013-11-05 15:24:45 UTC (rev 1388)
@@ -1,5 +1,7 @@
/-- This set of tests is for Unicode property support. It is compatible with
Perl >= 5.15. --/
+
+< forbid BCDIMZ<
/^\pC\pL\pM\pN\pP\pS\pZ</8
\x7f\x{c0}\x{30f}\x{660}\x{66c}\x{f01}\x{1680}<
Modified: code/trunk/testdata/testoutput8
===================================================================
--- code/trunk/testdata/testoutput8 2013-11-02 18:29:05 UTC (rev 1387)
+++ code/trunk/testdata/testoutput8 2013-11-05 15:24:45 UTC (rev 1388)
@@ -1,5 +1,8 @@
-/-- This set of tests check the DFA matching functionality of pcre_dfa_exec().
- The -dfa flag must be used with pcretest when running it. --/
+/-- This set of tests check the DFA matching functionality of pcre_dfa_exec(),
+ excluding UTF and Unicode property support. The -dfa flag must be used with
+ pcretest when running it. --/
+
+< forbid 8W
/abc/
abc
Modified: code/trunk/testdata/testoutput9
===================================================================
--- code/trunk/testdata/testoutput9 2013-11-02 18:29:05 UTC (rev 1387)
+++ code/trunk/testdata/testoutput9 2013-11-05 15:24:45 UTC (rev 1388)
@@ -1,6 +1,8 @@
/-- This set of tests checks UTF-8 support with the DFA matching functionality
- of pcre_dfa_exec(). The -dfa flag must be used with pcretest when running
- it. --/
+ of pcre_dfa_exec(), excluding Unicode property support. The -dfa flag must
+ be used with pcretest when running it. --/
+
+< forbid W
/\x{100}ab/8
\x{100}ab