lasso/tools/format-suppressions.py

45 lines
843 B
Python

import re
from six import print_
valgrind_log = open('log','r').read()
inblock = False
l = 0
i = 0
keep = dict()
limit_re = r'type'
for line in valgrind_log.splitlines():
if line.startswith('{'):
inblock = True
block = []
continue
if line.startswith('}'):
inblock = False
l = 0
i += 1
ok = False
name = ""
for x in block[2:]:
name = name + x
if re.search(limit_re, x):
ok = True
break
if ok:
keep[name] = block
continue
if inblock:
block.append(line)
i = 43
for x in keep:
block = keep[x]
print_("{")
print_(" suppression", i)
for x in block[1:]:
print_(x)
if re.search(limit_re, x):
break
print_('}')
i += 1