summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/format-suppressions.py43
1 files changed, 43 insertions, 0 deletions
diff --git a/tools/format-suppressions.py b/tools/format-suppressions.py
new file mode 100644
index 00000000..cc9d2fbd
--- /dev/null
+++ b/tools/format-suppressions.py
@@ -0,0 +1,43 @@
+import re
+
+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