diff --git a/scripts/parse_sanitizer_errors_from_xml_report.py b/scripts/parse_sanitizer_errors_from_xml_report.py index e4a51a27a56652cf9ea14822f77109e944a139d6..dc219ac1cfa00ae8bb07a477a30b2a8316921f34 100644 --- a/scripts/parse_sanitizer_errors_from_xml_report.py +++ b/scripts/parse_sanitizer_errors_from_xml_report.py @@ -59,7 +59,9 @@ class SanitizerError: last_line = traceback.split("\n")[-1].strip() assert last_line.startswith(f"SUMMARY: {self.SUMMARY_ID}") m = re.match( - r"SUMMARY: " + self.SUMMARY_ID + r": ([a-z-]*) (.*\/.*\.[ch]:\d+:\d+) in", + r"SUMMARY: " + + self.SUMMARY_ID + + r": ([a-z-A-Z]+) (.*\/.*\.[ch]:\d+:\d+) in", last_line, ) assert m is not None @@ -198,8 +200,9 @@ def parse_errors_from_sysout( IN = 1 pattern_usan = re.compile(r"(lib_.+|apps)\/(.*\.[ch]):(\d+):(\d+): runtime error:") + pattern_usan_2 = re.compile(r"==\d+==ERROR: UndefinedBehaviorSanitizer: ") pattern_msan = re.compile(r" MemorySanitizer: ") - pattern_asan = re.compile(r"==\d+==ERROR: .+Sanitizer: ") + pattern_asan = re.compile(r"==\d+==ERROR: (Address|Leak)Sanitizer: ") state = ParserState.OUT accu = [] @@ -211,10 +214,11 @@ def parse_errors_from_sysout( line = line.strip() m_usan = re.search(pattern_usan, line) + m_usan_2 = re.search(pattern_usan_2, line) m_msan = re.search(pattern_msan, line) m_asan = re.search(pattern_asan, line) - usan_start_found = m_usan is not None + usan_start_found = m_usan is not None or m_usan_2 is not None msan_start_found = m_msan is not None and not line.startswith("SUMMARY:") asan_start_found = m_asan is not None @@ -227,9 +231,9 @@ def parse_errors_from_sysout( accu = [] err_cls = ( UsanError - if m_usan is not None + if usan_start_found else MsanError - if m_msan is not None + if msan_start_found else AsanError )