OLD | NEW |
1 // Copyright 2010 The RE2 Authors. All Rights Reserved. | 1 // Copyright 2010 The RE2 Authors. All Rights Reserved. |
2 // Use of this source code is governed by a BSD-style | 2 // Use of this source code is governed by a BSD-style |
3 // license that can be found in the LICENSE file. | 3 // license that can be found in the LICENSE file. |
4 | 4 |
5 #include <sys/types.h> | 5 #include <sys/types.h> |
6 #include <sys/stat.h> | 6 #include <sys/stat.h> |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "util/test.h" | 9 #include "util/test.h" |
10 #include "re2/re2.h" | 10 #include "re2/re2.h" |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
64 CHECK_EQ(v.size(), 1); | 64 CHECK_EQ(v.size(), 1); |
65 CHECK_EQ(v[0], 0); | 65 CHECK_EQ(v[0], 0); |
66 | 66 |
67 v.clear(); | 67 v.clear(); |
68 CHECK_EQ(s.Match("oobar", &v), false); | 68 CHECK_EQ(s.Match("oobar", &v), false); |
69 CHECK_EQ(v.size(), 0); | 69 CHECK_EQ(v.size(), 0); |
70 } | 70 } |
71 | 71 |
72 TEST(Set, UnanchoredDollar) { | 72 TEST(Set, UnanchoredDollar) { |
73 RE2::Set s(RE2::DefaultOptions, RE2::UNANCHORED); | 73 RE2::Set s(RE2::DefaultOptions, RE2::UNANCHORED); |
74 | 74 |
75 CHECK_EQ(s.Add("foo$", NULL), 0); | 75 CHECK_EQ(s.Add("foo$", NULL), 0); |
76 CHECK_EQ(s.Compile(), true); | 76 CHECK_EQ(s.Compile(), true); |
77 | 77 |
78 vector<int> v; | 78 vector<int> v; |
79 CHECK_EQ(s.Match("foo", &v), true); | 79 CHECK_EQ(s.Match("foo", &v), true); |
80 CHECK_EQ(v.size(), 1); | 80 CHECK_EQ(v.size(), 1); |
81 CHECK_EQ(v[0], 0); | 81 CHECK_EQ(v[0], 0); |
82 } | 82 } |
83 | 83 |
84 TEST(Set, Anchored) { | 84 TEST(Set, Anchored) { |
85 RE2::Set s(RE2::DefaultOptions, RE2::ANCHOR_BOTH); | 85 RE2::Set s(RE2::DefaultOptions, RE2::ANCHOR_BOTH); |
86 | 86 |
87 CHECK_EQ(s.Add("foo", NULL), 0); | 87 CHECK_EQ(s.Add("foo", NULL), 0); |
(...skipping 12 matching lines...) Expand all Loading... |
100 CHECK_EQ(s.Match("oobar", &v), false); | 100 CHECK_EQ(s.Match("oobar", &v), false); |
101 CHECK_EQ(v.size(), 0); | 101 CHECK_EQ(v.size(), 0); |
102 | 102 |
103 CHECK_EQ(s.Match("foo", &v), true); | 103 CHECK_EQ(s.Match("foo", &v), true); |
104 CHECK_EQ(v.size(), 1); | 104 CHECK_EQ(v.size(), 1); |
105 CHECK_EQ(v[0], 0); | 105 CHECK_EQ(v[0], 0); |
106 | 106 |
107 CHECK_EQ(s.Match("bar", &v), true); | 107 CHECK_EQ(s.Match("bar", &v), true); |
108 CHECK_EQ(v.size(), 1); | 108 CHECK_EQ(v.size(), 1); |
109 CHECK_EQ(v[0], 1); | 109 CHECK_EQ(v[0], 1); |
| 110 } |
110 | 111 |
| 112 TEST(Set, EmptyUnanchored) { |
| 113 RE2::Set s(RE2::DefaultOptions, RE2::UNANCHORED); |
| 114 |
| 115 CHECK_EQ(s.Compile(), true); |
| 116 |
| 117 vector<int> v; |
| 118 CHECK_EQ(s.Match("", &v), false); |
| 119 CHECK_EQ(v.size(), 0); |
| 120 |
| 121 v.clear(); |
| 122 CHECK_EQ(s.Match("foobar", &v), false); |
| 123 CHECK_EQ(v.size(), 0); |
| 124 } |
| 125 |
| 126 TEST(Set, EmptyAnchored) { |
| 127 RE2::Set s(RE2::DefaultOptions, RE2::ANCHOR_BOTH); |
| 128 |
| 129 CHECK_EQ(s.Compile(), true); |
| 130 |
| 131 vector<int> v; |
| 132 CHECK_EQ(s.Match("", &v), false); |
| 133 CHECK_EQ(v.size(), 0); |
| 134 |
| 135 v.clear(); |
| 136 CHECK_EQ(s.Match("foobar", &v), false); |
| 137 CHECK_EQ(v.size(), 0); |
111 } | 138 } |
112 | 139 |
113 } // namespace re2 | 140 } // namespace re2 |
114 | |
OLD | NEW |