[Pcre-svn] [1388] code/trunk: Add a simple tripwire to pcret…

トップ ページ
このメッセージを削除
著者: Subversion repository
日付:  
To: pcre-svn
題目: [Pcre-svn] [1388] code/trunk: Add a simple tripwire to pcretest to lock out certain modifiers.
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