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 10namespace re2 { 11 12DECLARE_string(regexp_engines); 13 14// Test very simple expressions. 15TEST(EgrepLiterals, Lowercase) { 16 EgrepTest(3, 2, "abc.", 3, "abc", ""); 17} 18 19// Test mixed-case expressions. 20TEST(EgrepLiterals, MixedCase) { 21 EgrepTest(3, 2, "AaBb.", 2, "AaBb", ""); 22} 23 24// Test mixed-case in case-insensitive mode. 25TEST(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. 33TEST(EgrepLiterals, UTF8) { 34 EgrepTest(3, 2, "ab.", 4, "a\xE2\x98\xBA", ""); 35} 36 37} // namespace re2 38 39