]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
[contrib] validate_failures.py: Be more stringent in parsing result lines
authorMaxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
Thu, 1 Jun 2023 12:05:08 +0000 (12:05 +0000)
committerMaxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
Wed, 14 Jun 2023 14:29:47 +0000 (14:29 +0000)
Before this patch we would identify malformed line
"UNRESOLVEDTest run by tcwg-buildslave on Mon Aug 23 10:17:50 2021"
as an interesting result, only to fail in TestResult:__init__ due
to missing ":" after UNRESOLVED.

This patch makes all places that parse result lines use a single
compiled regex.

contrib/ChangeLog:

* testsuite-management/validate_failures.py (_VALID_TEST_RESULTS_REX):
Update.
(TestResult): Use _VALID_TEST_RESULTS_REX.

contrib/testsuite-management/validate_failures.py

index 26ea1d6f53bf251cf2a0b7e970c478c41d899021..f2d7b099d782e6286996f63b5617335d9c4c91f1 100755 (executable)
@@ -60,9 +60,10 @@ import os
 import re
 import sys
 
-# Handled test results.
 _VALID_TEST_RESULTS = [ 'FAIL', 'UNRESOLVED', 'XPASS', 'ERROR' ]
-_VALID_TEST_RESULTS_REX = re.compile("%s" % "|".join(_VALID_TEST_RESULTS))
+# <STATE>: <NAME> <DESCRIPTION"
+_VALID_TEST_RESULTS_REX = re.compile('(%s):\s*(\S+)\s*(.*)'
+                                     % "|".join(_VALID_TEST_RESULTS))
 
 # Formats of .sum file sections
 _TOOL_LINE_FORMAT = '\t\t=== %s tests ===\n'
@@ -131,8 +132,7 @@ class TestResult(object):
       try:
         (self.state,
          self.name,
-         self.description) = re.match(r'([A-Z]+):\s*(\S+)\s*(.*)',
-                                      summary_line).groups()
+         self.description) = _VALID_TEST_RESULTS_REX.match(summary_line).groups()
       except:
         print('Failed to parse summary line: "%s"' % summary_line)
         raise