Home | History | Annotate | Download | only in testing

Lines Matching refs:Regexp

10 #include "re2/regexp.h"
14 static const Regexp::ParseFlags TestZeroFlags = Regexp::ParseFlags(1<<30);
17 const char* regexp;
19 Regexp::ParseFlags flags;
22 static Regexp::ParseFlags kTestFlags = Regexp::MatchNL |
23 Regexp::PerlX |
24 Regexp::PerlClasses |
25 Regexp::UnicodeGroups;
152 { "[^ ]", "cc{0-0x9 0xb-0x1f 0x21-0x10ffff}", Regexp::FoldCase },
153 { "[^ ]", "cc{0-0x9 0xb-0x1f 0x21-0x10ffff}", Regexp::NeverNL },
154 { "[^ ]", "cc{0-0x9 0xb-0x1f 0x21-0x10ffff}", Regexp::NeverNL | Regexp::FoldCase },
156 { "[^ \f]", "cc{0-0x9 0xb 0xd-0x1f 0x21-0x10ffff}", Regexp::FoldCase },
157 { "[^ \f]", "cc{0-0x9 0xb 0xd-0x1f 0x21-0x10ffff}", Regexp::NeverNL },
158 { "[^ \f]", "cc{0-0x9 0xb 0xd-0x1f 0x21-0x10ffff}", Regexp::NeverNL | Regexp::FoldCase },
160 { "[^ \r]", "cc{0-0x9 0xb-0xc 0xe-0x1f 0x21-0x10ffff}", Regexp::FoldCase },
161 { "[^ \r]", "cc{0-0x9 0xb-0xc 0xe-0x1f 0x21-0x10ffff}", Regexp::NeverNL },
162 { "[^ \r]", "cc{0-0x9 0xb-0xc 0xe-0x1f 0x21-0x10ffff}", Regexp::NeverNL | Regexp::FoldCase },
164 { "[^ \v]", "cc{0-0x9 0xc-0x1f 0x21-0x10ffff}", Regexp::FoldCase },
165 { "[^ \v]", "cc{0-0x9 0xc-0x1f 0x21-0x10ffff}", Regexp::NeverNL },
166 { "[^ \v]", "cc{0-0x9 0xc-0x1f 0x21-0x10ffff}", Regexp::NeverNL | Regexp::FoldCase },
168 { "[^ \t]", "cc{0-0x8 0xb-0x1f 0x21-0x10ffff}", Regexp::FoldCase },
169 { "[^ \t]", "cc{0-0x8 0xb-0x1f 0x21-0x10ffff}", Regexp::NeverNL },
170 { "[^ \t]", "cc{0-0x8 0xb-0x1f 0x21-0x10ffff}", Regexp::NeverNL | Regexp::FoldCase },
171 { "[^ \r\f\v]", "cc{0-0x9 0xe-0x1f 0x21-0x10ffff}", Regexp::NeverNL },
172 { "[^ \r\f\v]", "cc{0-0x9 0xe-0x1f 0x21-0x10ffff}", Regexp::NeverNL | Regexp::FoldCase },
173 { "[^ \r\f\t\v]", "cc{0-0x8 0xe-0x1f 0x21-0x10ffff}", Regexp::NeverNL },
174 { "[^ \r\f\t\v]", "cc{0-0x8 0xe-0x1f 0x21-0x10ffff}", Regexp::NeverNL | Regexp::FoldCase },
175 { "[^ \r\n\f\t\v]", "cc{0-0x8 0xe-0x1f 0x21-0x10ffff}", Regexp::NeverNL },
176 { "[^ \r\n\f\t\v]", "cc{0-0x8 0xe-0x1f 0x21-0x10ffff}", Regexp::NeverNL | Regexp::FoldCase },
177 { "[^ \r\n\f\t]", "cc{0-0x8 0xb 0xe-0x1f 0x21-0x10ffff}", Regexp::NeverNL },
178 { "[^ \r\n\f\t]", "cc{0-0x8 0xb 0xe-0x1f 0x21-0x10ffff}", Regexp::NeverNL | Regexp::FoldCase },
180 Regexp::PerlClasses },
182 Regexp::PerlClasses | Regexp::FoldCase },
184 Regexp::PerlClasses | Regexp::NeverNL },
186 Regexp::PerlClasses | Regexp::NeverNL | Regexp::FoldCase },
188 Regexp::PerlClasses },
190 Regexp::PerlClasses | Regexp::FoldCase },
192 Regexp::PerlClasses | Regexp::NeverNL },
194 Regexp::PerlClasses | Regexp::NeverNL | Regexp::FoldCase },
197 bool RegexpEqualTestingOnly(Regexp* a, Regexp* b) {
198 return Regexp::Equal(a, b);
201 void TestParse(const Test* tests, int ntests, Regexp::ParseFlags flags,
203 Regexp** re = new Regexp*[ntests];
206 Regexp::ParseFlags f = flags;
210 re[i] = Regexp::Parse(tests[i].regexp, f, &status);
211 CHECK(re[i] != NULL) << " " << tests[i].regexp << " "
214 EXPECT_EQ(string(tests[i].parse), s) << "Regexp: " << tests[i].regexp
222 << "Regexp: " << tests[i].regexp << " " << tests[j].regexp;
250 TestParse(foldcase_tests, arraysize(foldcase_tests), Regexp::FoldCase, "foldcase");
259 TestParse(literal_tests, arraysize(literal_tests), Regexp::Literal, "literal");
272 TestParse(matchnl_tests, arraysize(matchnl_tests), Regexp::MatchNL, "with MatchNL");
284 TestParse(nomatchnl_tests, arraysize(nomatchnl_tests), Regexp::NoParseFlags, "without MatchNL");
306 TestParse(prefix_tests, arraysize(prefix_tests), Regexp::PerlX, "prefix");
359 CHECK(Regexp::Parse(badtests[i], Regexp::PerlX, NULL) == NULL)
361 CHECK(Regexp::Parse(badtests[i], Regexp::NoParseFlags, NULL) == NULL)
365 CHECK(Regexp::Parse(only_posix[i], Regexp::PerlX, NULL) == NULL)
367 Regexp* re = Regexp::Parse(only_posix[i], Regexp::NoParseFlags, NULL);
372 CHECK(Regexp::Parse(only_perl[i], Regexp::NoParseFlags, NULL) == NULL)
374 Regexp* re = Regexp::Parse(only_perl[i], Regexp::PerlX, NULL);
380 // Test that ToString produces original regexp or equivalent one.
384 Regexp::ParseFlags f = kTestFlags;
388 Regexp* re = Regexp::Parse(tests[i].regexp, f, &status);
389 CHECK(re != NULL) << " " << tests[i].regexp << " " << status.Text();
391 EXPECT_EQ(string(tests[i].parse), s) << " " << tests[i].regexp << " " << string(tests[i].parse) << " " << s;
393 if (t != tests[i].regexp) {
394 // If ToString didn't return the original regexp,
399 // CHECK_LT(t.size(), strlen(tests[i].regexp))
400 // << " t=" << t << " regexp=" << tests[i].regexp;
402 // Test that if we parse the new regexp we get the same structure.
403 Regexp* nre = Regexp::Parse(t, Regexp::MatchNL | Regexp::PerlX, &status);
408 LOG(INFO) << "ToString(" << tests[i].regexp << ") = " << t;
420 Regexp* re;
422 re = Regexp::Parse("test(?P<name", Regexp::LikePerl, &status);
427 re = Regexp::Parse("test(?P<space bar>z)", Regexp::LikePerl, &status);