Author: Ronny Pfannschmidt <[email protected]>
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
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit