diff --git a/Tools/autotest/common.py b/Tools/autotest/common.py index 8dedff1f95..3183a3e3b1 100644 --- a/Tools/autotest/common.py +++ b/Tools/autotest/common.py @@ -2100,6 +2100,7 @@ class AutoTest(ABC): return ret def all_log_format_ids(self): + '''parse C++ code to extract definitions of log messages''' structure_files = self.find_LogStructureFiles() structure_lines = [] for f in structure_files: @@ -2155,7 +2156,16 @@ class AutoTest(ABC): if linestate == linestate_within: m = re.match("(.*)}", line) if m is None: - raise NotAchievedException("Bad closing line (%s)" % line) + line = line.rstrip() + newline = re.sub(r"\\$", "", line) + if newline == line: + raise NotAchievedException("Expected backslash at end of line") + line = newline + line = line.rstrip() + # cpp-style string concatenation: + line = re.sub(r'"\s*"', '', line) + partial_line += line + continue message_infos.append(partial_line + m.group(1)) linestate = linestate_none continue @@ -2214,7 +2224,16 @@ class AutoTest(ABC): if linestate == linestate_within: m = re.match("(.*)}", line) if m is None: - raise NotAchievedException("Bad closing line (%s)" % line) + line = line.rstrip() + newline = re.sub(r"\\$", "", line) + if newline == line: + raise NotAchievedException("Expected backslash at end of line") + line = newline + line = line.rstrip() + # cpp-style string concatenation: + line = re.sub(r'"\s*"', '', line) + partial_line += line + continue message_infos.append(partial_line + m.group(1)) linestate = linestate_none continue