Changeset 225930 in webkit for trunk/Source/JavaScriptCore/testRegExp.cpp
- Timestamp:
- Dec 14, 2017, 2:16:38 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/testRegExp.cpp
r225861 r225930 316 316 } 317 317 318 static RegExp* parseRegExpLine(VM& vm, char* line, int lineLength )318 static RegExp* parseRegExpLine(VM& vm, char* line, int lineLength, const char** regexpError) 319 319 { 320 320 StringBuilder pattern; 321 321 322 322 if (line[0] != '/') 323 323 return 0; … … 331 331 332 332 RegExp* r = RegExp::create(vm, pattern.toString(), regExpFlags(line + i)); 333 if (r->isValid()) 334 return r; 335 return nullptr; 333 if (!r->isValid()) { 334 *regexpError = r->errorMessage(); 335 return nullptr; 336 } 337 return r; 336 338 } 337 339 … … 432 434 char* linePtr = 0; 433 435 unsigned int lineNumber = 0; 436 const char* regexpError = nullptr; 434 437 435 438 while ((linePtr = fgets(&lineBuffer[0], MaxLineLength, testCasesFile))) { … … 445 448 446 449 if (linePtr[0] == '/') { 447 regexp = parseRegExpLine(vm, linePtr, lineLength); 450 regexp = parseRegExpLine(vm, linePtr, lineLength, ®expError); 451 if (!regexp) { 452 failures++; 453 fprintf(stderr, "Failure on line %u. '%s' %s\n", lineNumber, linePtr, regexpError); 454 } 448 455 } else if (linePtr[0] == ' ') { 449 456 RegExpTest* regExpTest = parseTestLine(linePtr, lineLength); … … 462 469 tests++; 463 470 regexp = 0; // Reset the live regexp to avoid confusing other subsequent tests 464 bool successfullyParsed = parseRegExpLine(vm, linePtr + 1, lineLength - 1 );471 bool successfullyParsed = parseRegExpLine(vm, linePtr + 1, lineLength - 1, ®expError); 465 472 if (successfullyParsed) { 466 473 failures++; 467 fprintf(stderr, "Failure on line %u. '%s' is not a valid regexp\n", lineNumber, linePtr + 1);474 fprintf(stderr, "Failure on line %u. '%s' %s\n", lineNumber, linePtr + 1, regexpError); 468 475 } 469 476 }
Note:
See TracChangeset
for help on using the changeset viewer.