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

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

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

This patch is available for review at

Reply via email to