Before this patch we would identify malformed line "UNRESOLVEDTest run by tcwg-buildslave on Mon Aug 23 10:17:50 2021" as an interesting result, only to fail in TestResult:__init__ due to missing ":" after UNRESOLVED.
This patch makes all places that parse result lines use a single compiled regex. --- contrib/testsuite-management/validate_failures.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/contrib/testsuite-management/validate_failures.py b/contrib/testsuite-management/validate_failures.py index 26ea1d6f53b..f2d7b099d78 100755 --- a/contrib/testsuite-management/validate_failures.py +++ b/contrib/testsuite-management/validate_failures.py @@ -60,9 +60,10 @@ import os import re import sys -# Handled test results. _VALID_TEST_RESULTS = [ 'FAIL', 'UNRESOLVED', 'XPASS', 'ERROR' ] -_VALID_TEST_RESULTS_REX = re.compile("%s" % "|".join(_VALID_TEST_RESULTS)) +# <STATE>: <NAME> <DESCRIPTION" +_VALID_TEST_RESULTS_REX = re.compile('(%s):\s*(\S+)\s*(.*)' + % "|".join(_VALID_TEST_RESULTS)) # Formats of .sum file sections _TOOL_LINE_FORMAT = '\t\t=== %s tests ===\n' @@ -131,8 +132,7 @@ class TestResult(object): try: (self.state, self.name, - self.description) = re.match(r'([A-Z]+):\s*(\S+)\s*(.*)', - summary_line).groups() + self.description) = _VALID_TEST_RESULTS_REX.match(summary_line).groups() except: print('Failed to parse summary line: "%s"' % summary_line) raise -- 2.34.1