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