[contrib] validate_failures.py: Be more stringent in parsing result lines

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/ChangeLog:

	* testsuite-management/validate_failures.py (_VALID_TEST_RESULTS_REX):
	Update.
	(TestResult): Use _VALID_TEST_RESULTS_REX.
This commit is contained in:
Maxim Kuvyrkov 2023-06-01 12:05:08 +00:00
parent e341d15be3
commit d4d776a341

View File

@ -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