Home | History | Annotate | Download | only in testing
      1 // Copyright 2008 The RE2 Authors.  All Rights Reserved.
      2 // Use of this source code is governed by a BSD-style
      3 // license that can be found in the LICENSE file.
      4 
      5 // Exhaustive testing of regular expression matching.
      6 
      7 #include "util/test.h"
      8 #include "re2/testing/exhaustive_tester.h"
      9 
     10 namespace re2 {
     11 
     12 DECLARE_string(regexp_engines);
     13 
     14 // Test very simple expressions.
     15 TEST(EgrepLiterals, Lowercase) {
     16   EgrepTest(3, 2, "abc.", 3, "abc", "");
     17 }
     18 
     19 // Test mixed-case expressions.
     20 TEST(EgrepLiterals, MixedCase) {
     21   EgrepTest(3, 2, "AaBb.", 2, "AaBb", "");
     22 }
     23 
     24 // Test mixed-case in case-insensitive mode.
     25 TEST(EgrepLiterals, FoldCase) {
     26   // The punctuation characters surround A-Z and a-z
     27   // in the ASCII table.  This looks for bugs in the
     28   // bytemap range code in the DFA.
     29   EgrepTest(3, 2, "abAB.", 2, "aBc@_~", "(?i:%s)");
     30 }
     31 
     32 // Test very simple expressions.
     33 TEST(EgrepLiterals, UTF8) {
     34   EgrepTest(3, 2, "ab.", 4, "a\xE2\x98\xBA", "");
     35 }
     36 
     37 }  // namespace re2
     38 
     39