Spaces Data
Minimal test - lines (340, 385)
path: .spaces[1].spaces[1].metrics.mi.mi_sei
old: 49.90181448595376
new: 52.87373474110046
path: .spaces[1].spaces[1].metrics.mi.mi_visual_studio
old: 42.35380945175059
new: 41.71489205474028
path: .spaces[1].spaces[1].metrics.mi.mi_original
old: 72.42501416249351
new: 71.33246541360587
path: .spaces[1].spaces[1].metrics.loc.sloc
old: 43.0
new: 46.0
path: .spaces[1].spaces[1].metrics.loc.cloc
old: 3.0
new: 5.0
path: .spaces[1].spaces[1].metrics.loc.blank
old: 8.0
new: 9.0
Code
def log(self, line):
if re.match(self.startRegExp, line):
self.inReport = True
return
if re.match(self.fatalErrorRegExp, line):
self.fatalError = True
return
if re.match(self.symbolizerOomRegExp, line):
self.symbolizerError = True
return
if not self.inReport:
return
if line.startswith("Direct leak") or line.startswith("Indirect leak"):
self._finishStack()
self.recordMoreFrames = True
self.currStack = []
return
if line.startswith("SUMMARY: AddressSanitizer"):
self._finishStack()
self.inReport = False
return
if not self.recordMoreFrames:
return
stackFrame = re.match(self.stackFrameRegExp, line)
if stackFrame:
# Split the frame to remove any return types.
frame = stackFrame.group(1).split()[-1]
if not re.match(self.skipListRegExp, frame):
self._recordFrame(frame)
return
sysLibStackFrame = re.match(self.sysLibStackFrameRegExp, line)
if sysLibStackFrame:
# System library stack frames will never match the skip list,
# so don't bother checking if they do.
self._recordFrame(sysLibStackFrame.group(1))
# If we don't match either of these, just ignore the frame.
# We'll end up with "unknown stack" if everything is ignored.