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