]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
validate_failures.py: Fix handling of summary lines with "|" characters or empty...
authorBrooks Moses <bmoses@google.com>
Thu, 6 Jun 2013 21:17:36 +0000 (14:17 -0700)
committerBrooks Moses <brooks@gcc.gnu.org>
Thu, 6 Jun 2013 21:17:36 +0000 (14:17 -0700)
* testsuite-management/validate_failures.py: Fix handling of
summary lines with "|" characters or empty description fields.

From-SVN: r199765

contrib/ChangeLog
contrib/testsuite-management/validate_failures.py

index 6fbdfe2e310c41cba5b9fd2effc3ff5c0970dceb..1233e6acaea69ab3977f881f8910ea2363f27c7d 100644 (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.
index e9e5292f17b24a2c315b3251f746babf5073a3cf..2779050468d739c5278fbb6c45f3cf51ff9d0cb1 100755 (executable)
@@ -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.'