diff mbox

[contrib] Fix match pattern for summary lines in validate_failures.py (issue5728047)

Message ID 20120302204141.59A5CAE1DC@tobiano.tor.corp.google.com
State New
Headers show

Commit Message

Diego Novillo March 2, 2012, 8:41 p.m. UTC
This fixes an edge case in parsing summary lines.  Some times, the
description field is missing (e.g., 'FAIL: libstdc++/abi_check'), so
the space that the pattern was looking for does not exist.

I've changed it to match any whitespace, which includes '\n'.  I also
made it print the line that it fails to parse, in case there are other
problems like this in the future.

David, this should fix the failure you were getting in your merge.
Let me know if it doesn't.


2012-03-02   Diego Novillo  <dnovillo@google.com>

	* testsuite-management/validate_failures.py (class TestResult): Fix
	match pattern for the summary line.  If there is a parsing failure,
	show the line we failed to parse.


--
This patch is available for review at http://codereview.appspot.com/5728047
diff mbox

Patch

diff --git a/contrib/testsuite-management/validate_failures.py b/contrib/testsuite-management/validate_failures.py
index 072de79..7bc5089 100755
--- a/contrib/testsuite-management/validate_failures.py
+++ b/contrib/testsuite-management/validate_failures.py
@@ -97,10 +97,14 @@  class TestResult(object):
       self.attrs = ''
       if '|' in summary_line:
         (self.attrs, summary_line) = summary_line.split('|', 1)
-      (self.state,
-       self.name,
-       self.description) = re.match(r' *([A-Z]+): ([^ ]+) (.*)',
-                                    summary_line).groups()
+      try:
+        (self.state,
+         self.name,
+         self.description) = re.match(r' *([A-Z]+): (\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()