[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [tor/master] Add my script to dump per-file or per-function coverage
commit 90701c1de45ad96b9e4d08938613e754c34f0c3d
Author: Nick Mathewson <nickm@xxxxxxxxxxxxxx>
Date: Thu Jul 16 11:55:44 2015 -0400
Add my script to dump per-file or per-function coverage
---
scripts/test/cov-display | 72 ++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 72 insertions(+)
diff --git a/scripts/test/cov-display b/scripts/test/cov-display
new file mode 100755
index 0000000..6c3bbd5
--- /dev/null
+++ b/scripts/test/cov-display
@@ -0,0 +1,72 @@
+#!/usr/bin/python
+import sys, re
+
+none0, some0 = 0,0
+branchTaken0, branchNot0 = 0,0
+
+BRANCH = False
+FUNC = False
+
+if sys.argv[1] == '-b':
+ BRANCH = True
+ del sys.argv[1]
+
+if sys.argv[1] == '-f':
+ FUNC = True
+ del sys.argv[1]
+
+def show(name, none, some):
+ if some+none == 0:
+ none = 1
+ print name, none, some, "%.02f"%(100*(float(some)/(some+none)))
+
+for fn in sys.argv[1:]:
+ none = some = branchTaken = branchNot = 0
+ inFunc = ""
+ for line in open(fn, 'r'):
+ m = re.match(r'^[^:]*:([^:]*):(.*)', line)
+ if m:
+ body = m.group(2).rstrip()
+ lineno = m.group(1).strip()
+ else:
+ body = ""
+ lineno = "?"
+ m = re.match(r'^([A-Za-z_][A-Za-z0-9_]*)(?:, *)?\(', body)
+ if m:
+ inFunc = "%s:%s %s" %(fn,lineno,m.group(1))
+ elif body == "}":
+ if FUNC and inFunc:
+ show(inFunc, none, some)
+ none = some = 0
+ inFunc = None
+ if re.match(r'^ *###', line):
+ none += 1
+ elif re.match(r'^ *\d', line):
+ some += 1
+ else:
+ m = re.match(r'^branch.*taken (\d+)%', line)
+ if m:
+ if int(m.group(1)) == 0:
+ branchNot += 1
+ else:
+ branchTaken += 1
+
+ none0 += none
+ some0 += some
+ branchTaken0 += branchTaken
+ branchNot0 += branchNot
+ if FUNC:
+ pass
+ elif BRANCH:
+ if branchTaken or branchNot:
+ show(fn, branchNot, branchTaken)
+ else:
+ if some or none:
+ show(fn, none, some)
+
+if BRANCH:
+ if branchTaken0 or branchNot0:
+ show("TOTAL", branchNot0, branchTaken0)
+else:
+ if some0 or none0:
+ show("TOTAL", none0, some0)
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits