Index: third_party/re2/re2/testing/exhaustive_test.cc |
diff --git a/third_party/re2/re2/testing/exhaustive_test.cc b/third_party/re2/re2/testing/exhaustive_test.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..fc40dee881b65d7953649c35913debe861b0b92c |
--- /dev/null |
+++ b/third_party/re2/re2/testing/exhaustive_test.cc |
@@ -0,0 +1,38 @@ |
+// Copyright 2008 The RE2 Authors. All Rights Reserved. |
+// Use of this source code is governed by a BSD-style |
+// license that can be found in the LICENSE file. |
+ |
+// Exhaustive testing of regular expression matching. |
+ |
+#include "util/test.h" |
+#include "re2/testing/exhaustive_tester.h" |
+ |
+namespace re2 { |
+ |
+DECLARE_string(regexp_engines); |
+ |
+// Test very simple expressions. |
+TEST(EgrepLiterals, Lowercase) { |
+ EgrepTest(3, 2, "abc.", 3, "abc", ""); |
+} |
+ |
+// Test mixed-case expressions. |
+TEST(EgrepLiterals, MixedCase) { |
+ EgrepTest(3, 2, "AaBb.", 2, "AaBb", ""); |
+} |
+ |
+// Test mixed-case in case-insensitive mode. |
+TEST(EgrepLiterals, FoldCase) { |
+ // The punctuation characters surround A-Z and a-z |
+ // in the ASCII table. This looks for bugs in the |
+ // bytemap range code in the DFA. |
+ EgrepTest(3, 2, "abAB.", 2, "aBc@_~", "(?i:%s)"); |
+} |
+ |
+// Test very simple expressions. |
+TEST(EgrepLiterals, UTF8) { |
+ EgrepTest(3, 2, "ab.", 4, "a\xE2\x98\xBA", ""); |
+} |
+ |
+} // namespace re2 |
+ |