validate_failures.py: Fix handling of summary lines with "|" characters or empty description fields.

* testsuite-management/validate_failures.py: Fix handling of
summary lines with "|" characters or empty description fields.

From-SVN: r199765
This commit is contained in:
Brooks Moses 2013-06-06 14:17:36 -07:00 committed by Brooks Moses
parent 37684c4633
commit 76ba1222c5
2 changed files with 22 additions and 12 deletions

View File

@ -1,3 +1,8 @@
2013-06-06 Brooks Moses <bmoses@google.com>
* testsuite-management/validate_failures.py: Fix handling of
summary lines with "|" characters or empty description fields.
2013-05-24 Chung-Ju Wu <jasonwucj@gmail.com>
* download_prerequisites: Download isl and cloog conditionally.

View File

@ -119,20 +119,15 @@ class TestResult(object):
def __init__(self, summary_line, ordinal=-1):
try:
self.attrs = ''
if '|' in summary_line:
(self.attrs, summary_line) = summary_line.split('|', 1)
(self.attrs, summary_line) = SplitAttributesFromSummaryLine(summary_line)
try:
(self.state,
self.name,
self.description) = re.match(r' *([A-Z]+):\s*(\S+)\s+(.*)',
self.description) = re.match(r'([A-Z]+):\s*(\S+)\s*(.*)',
summary_line).groups()
except:
print 'Failed to parse summary line: "%s"' % summary_line
raise
self.attrs = self.attrs.strip()
self.state = self.state.strip()
self.description = self.description.strip()
self.ordinal = ordinal
except ValueError:
Error('Cannot parse summary line "%s"' % summary_line)
@ -208,11 +203,20 @@ def IsComment(line):
return line.startswith('#')
def SplitAttributesFromSummaryLine(line):
"""Splits off attributes from a summary line, if present."""
if '|' in line and not _VALID_TEST_RESULTS_REX.match(line):
(attrs, line) = line.split('|', 1)
attrs = attrs.strip()
else:
attrs = ''
line = line.strip()
return (attrs, line)
def IsInterestingResult(line):
"""Return True if line is one of the summary lines we care about."""
if '|' in line:
(_, line) = line.split('|', 1)
line = line.strip()
(_, line) = SplitAttributesFromSummaryLine(line)
return bool(_VALID_TEST_RESULTS_REX.match(line))
@ -416,8 +420,9 @@ def PerformComparison(expected, actual, ignore_missing_failures):
if not ignore_missing_failures and len(expected_vs_actual) > 0:
PrintSummary('Expected results not present in this build (fixed tests)'
'\n\nNOTE: This is not a failure. It just means that these '
'tests were expected\nto fail, but they worked in this '
'configuration.\n', expected_vs_actual)
'tests were expected\nto fail, but either they worked in '
'this configuration or they were not\npresent at all.\n',
expected_vs_actual)
if tests_ok:
print '\nSUCCESS: No unexpected failures.'