Author: Ronny Pfannschmidt <ronny.pfannschm...@gmx.de>
Branch: 
Changeset: r55147:613c147eaf86
Date: 2012-05-21 18:04 +0200
http://bitbucket.org/pypy/pypy/changeset/613c147eaf86/

Log:    testrunner: add the script i used for creating file times

diff --git a/testrunner/filetimes.py b/testrunner/filetimes.py
new file mode 100644
--- /dev/null
+++ b/testrunner/filetimes.py
@@ -0,0 +1,59 @@
+from lxml.etree import parse
+from collections import defaultdict
+from os.path import join, exists
+import argparse
+parser = argparse.ArgumentParser()
+parser.add_argument('junitxml')
+parser.add_argument('fileroot')
+
+opts = parser.parse_args()
+
+xml = parse(opts.junitxml)
+root = xml.getroot()
+
+
+bugstarts = 'interpreter', 'tool', 'module'
+def findfile(root, classname):
+    if not classname:
+        return
+    parts = classname.split('.')
+    
+    #pytest bug workaround
+    first = parts[0]
+    for start in bugstarts:
+        if first.startswith(start) and \
+           first != start and \
+           first[len(start)] != '.':
+            parts[0] = start
+            parts.insert(1, 'py'+first[len(start):])
+
+    while parts:
+        path = join(root, *parts) + '.py'
+        if exists(path):
+            return join(*parts) + '.py'
+        parts.pop()
+
+accum = defaultdict(list)
+garbageitems = []
+
+for item in root:
+    filename = findfile(opts.fileroot, item.attrib['classname'])
+    accum[filename].append(float(item.attrib['time']))
+    if filename is None:
+        garbageitems.append(item)
+
+
+
+
+garbage = accum.pop(None, [])
+if garbage:
+    print 'garbage', sum(garbage), len(garbage)
+
+for key in sorted(accum):
+    value = accum[key]
+    print key, sum(value), len(value)
+
+print '-'*30
+
+for item in garbageitems:
+    print item.attrib
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to