Commit 2cba32f1 authored by Jan Kiene's avatar Jan Kiene
Browse files

some fixes for parse_sanitizer_errors_from_xml_report

- usan was incorrectly detected as asan
parent a53d7b54
Loading
Loading
Loading
Loading
Loading
+9 −5
Original line number Diff line number Diff line
@@ -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
            )