validate_failures.py: Support $tool: prefix in exp names

This makes it easier to extract the $tool:$exp pair when iterating
over failures/flaky tests.

Change-Id: Ifa3c63b65ac6920ce59bbcc7ada1bacf368562b0
diff --git a/contrib/testsuite-management/validate_failures.py b/contrib/testsuite-management/validate_failures.py
index 9883348..78c43f9 100755
--- a/contrib/testsuite-management/validate_failures.py
+++ b/contrib/testsuite-management/validate_failures.py
@@ -62,12 +62,14 @@
 
 # Formats of .sum file sections
 _TOOL_LINE_FORMAT = '\t\t=== %s tests ===\n'
-_EXP_LINE_FORMAT = '\nRunning %s ...\n'
+_EXP_LINE_FORMAT = '\nRunning %s:%s ...\n'
 _SUMMARY_LINE_FORMAT = '\n\t\t=== %s Summary ===\n'
 
 # ... and their compiled regexs.
 _TOOL_LINE_REX = re.compile('^\t\t=== (.*) tests ===\n')
-_EXP_LINE_REX = re.compile('^Running (?:.*/testsuite/)?(.*\.exp) \.\.\.\n')
+# Match .exp file name, optionally prefixed by a "tool:" name and a
+# path ending with "testsuite/"
+_EXP_LINE_REX = re.compile('^Running (?:.*:)?(?:.*/testsuite/)?(.*\.exp) \.\.\.\n')
 _SUMMARY_LINE_REX = re.compile('^\t\t=== (.*) Summary ===\n')
 
 # Subdirectory of srcdir in which to find the manifest file.
@@ -226,7 +228,7 @@
         outfile.write(_TOOL_LINE_FORMAT % current_tool)
       if current_exp != result.exp:
         current_exp = result.exp
-        outfile.write(_EXP_LINE_FORMAT % current_exp)
+        outfile.write(_EXP_LINE_FORMAT % (current_tool, current_exp))
       outfile.write('%s\n' % result)
 
     outfile.write(_SUMMARY_LINE_FORMAT % 'Results')