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