10 #include "util/logging.h"
11 #include "re2/regexp.h"
29 "3. byte [61-61] 0 -> 4\n"
32 "3. byte [61-61] 0 -> 4\n"
33 "4. byte [62-62] 0 -> 5\n"
36 "3+ byte [61-61] 0 -> 5\n"
37 "4. byte [63-63] 0 -> 5\n"
40 "3. byte [61-62] 0 -> 4\n"
43 "3. byte [61-62] 0 -> 4\n"
46 "3. byte [61-61] 0 -> 4\n"
50 "3. byte [61-61] 0 -> 4\n"
54 "3+ byte [61-61] 1 -> 3\n"
58 "4. byte [61-61] 0 -> 3\n" },
60 "3+ byte [61-61] 1 -> 5\n"
65 "4. byte [61-61] 0 -> 5\n"
68 "3. byte [61-61] 0 -> 4\n"
69 "4. byte [61-61] 0 -> 5\n"
70 "5. byte [61-61] 0 -> 6\n"
71 "6. byte [61-61] 0 -> 7\n"
75 "4. byte [61-61] 0 -> 5\n"
79 "3. byte [61-61] 0 -> 4\n"
84 "3+ byte [00-09] 0 -> 5\n"
85 "4. byte [0b-ff] 0 -> 5\n"
88 "3+ byte [00-09] 0 -> 6\n"
89 "4+ byte [0b-60] 0 -> 6\n"
90 "5. byte [63-ff] 0 -> 6\n"
93 "3. byte/i [61-61] 0 -> 4\n"
96 "3. byte [00-ff] 0 -> 4\n"
97 "4+ altmatch -> 5 | 6\n"
101 "3+ altmatch -> 4 | 5\n"
102 "4+ byte [00-ff] 1 -> 3\n"
105 "3+ byte [00-ff] 1 -> 5\n"
110 "3. byte [5b-60] 0 -> 4\n"
114 TEST(TestRegexpCompileToProg, Simple) {
120 LOG(
ERROR) <<
"Cannot parse: " << t.regexp;
126 LOG(
ERROR) <<
"Cannot compile: " << t.regexp;
134 LOG(
ERROR) <<
"Incorrect compiled code for: " << t.regexp;
152 *bytemap =
prog->DumpByteMap();
158 TEST(TestCompile, Latin1Ranges) {
170 TEST(TestCompile, OtherByteMapTests) {
205 TEST(TestCompile, UTF8Ranges) {
230 TEST(TestCompile, InsufficientMemory) {
232 "^(?P<name1>[^\\s]+)\\s+(?P<name2>[^\\s]+)\\s+(?P<name3>.+)$",
264 TEST(TestCompile, Bug26705922) {
272 "4. byte [90-90] 0 -> 5\n"
273 "5. byte [80-80] 0 -> 6\n"
274 "6+ byte [80-80] 0 -> 8\n"
275 "7. byte [90-90] 0 -> 8\n"
279 "4. byte [90-90] 0 -> 5\n"
280 "5. byte [80-80] 0 -> 6\n"
281 "6. byte [90-90] 0 -> 7\n"
282 "7. byte [f0-f0] 0 -> 8\n"
288 "4. byte [f0-f0] 0 -> 8\n"
289 "5. byte [80-bf] 0 -> 6\n"
290 "6. byte [80-bf] 0 -> 7\n"
292 "8. byte [90-90] 0 -> 5\n",
295 "4. byte [80-bf] 0 -> 5\n"
296 "5+ byte [e8-ef] 0 -> 7\n"
297 "6. byte [90-90] 0 -> 8\n"
299 "8. byte [f0-f0] 0 -> 7\n",
304 "4+ byte [c2-df] 0 -> 7\n"
305 "5+ byte [a0-bf] 1 -> 8\n"
306 "6. byte [80-bf] 0 -> 9\n"
308 "8. byte [e0-e0] 0 -> 7\n"
309 "9+ byte [e1-ef] 0 -> 7\n"
310 "10+ byte [90-bf] 1 -> 13\n"
311 "11+ byte [80-bf] 1 -> 14\n"
312 "12. byte [80-8f] 0 -> 15\n"
313 "13. byte [f0-f0] 0 -> 7\n"
314 "14. byte [f1-f3] 0 -> 7\n"
315 "15. byte [f4-f4] 0 -> 7\n",
319 TEST(TestCompile, Bug35237384) {
328 "5+ byte [61-61] 1 -> 5\n"
330 "7+ byte [61-61] 1 -> 7\n"
338 "6+ byte [61-61] 1 -> 6\n"
340 "8+ byte [62-62] 1 -> 8\n"
342 "10+ byte [61-61] 1 -> 10\n"
344 "12+ byte [62-62] 1 -> 12\n"
346 "14+ byte [61-61] 1 -> 14\n"
348 "16+ byte [62-62] 1 -> 16\n"
362 "6+ byte [00-09] 0 -> 8\n"
363 "7. byte [0b-ff] 0 -> 8\n"
367 "11+ byte [00-09] 0 -> 13\n"
368 "12. byte [0b-ff] 0 -> 13\n"
372 "16+ byte [00-09] 0 -> 18\n"
373 "17. byte [0b-ff] 0 -> 18\n"
377 "21+ byte [00-09] 0 -> 23\n"
378 "22. byte [0b-ff] 0 -> 23\n"
383 "27. byte [53-53] 0 -> 11\n"
386 "30. byte [53-53] 0 -> 6\n"
388 "32. byte [53-53] 0 -> 21\n"
393 "37. byte [53-53] 0 -> 16\n",