From cacbf70c00b27bf852edaffa25c7ff7cc1e1d82a Mon Sep 17 00:00:00 2001 From: Peter van Dijk Date: Tue, 3 Sep 2013 09:50:18 +0200 Subject: [PATCH] add bulktest reporting snippets --- regression-tests/bulktest-report.py | 31 ++++++++++++++++++++++++++++ regression-tests/bulktest-to-json.py | 27 ++++++++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100755 regression-tests/bulktest-report.py create mode 100755 regression-tests/bulktest-to-json.py diff --git a/regression-tests/bulktest-report.py b/regression-tests/bulktest-report.py new file mode 100755 index 000000000..af2bf7a29 --- /dev/null +++ b/regression-tests/bulktest-report.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python +import json, sys + +runs = json.load(sys.stdin) + +selecters = dict(s.split('=',1) for s in sys.argv[1:]) + +selected=list() + +names=set() + +for run in runs: + match = True + for k,v in selecters.iteritems(): + # print k, v, run[k] + if run[k] != v: + match = False + break + + if match: + selected.append((run['tag'], run)) + names.update(run) + +selected.sort() + +names.discard('tag') + +fmt=''.join('%%%ds' % (i+4) for i in [3]+map(len, sorted(names))) +print fmt % tuple(['tag']+sorted(names)) +for tag, stats in selected: + print fmt % tuple(['tag'] + [stats.get(s) for s in sorted(names)]) diff --git a/regression-tests/bulktest-to-json.py b/regression-tests/bulktest-to-json.py new file mode 100755 index 000000000..af33c518e --- /dev/null +++ b/regression-tests/bulktest-to-json.py @@ -0,0 +1,27 @@ +#!/usr/bin/env python +import glob, json + +varnames = set() +statnames = set() +runs = list() + +for fname in glob.glob('testresults-*.xml'): + info = fname[12:-4].split('.') + tag = info.pop(0) + vars = dict(s.split(':') for s in info) + vars['tag'] = tag + varnames.update(vars.keys()) + stats=dict() + for line in open(fname): + if line.startswith('<'): + sname = line.split(';')[4][:-3] + sval = line.split(';')[8][:-3] + stats[sname]=sval + statnames.add(sname) + # print fname, vars, stats + runs.append(dict(vars.items()+stats.items())) + +# print varnames +# print statnames + +print json.dumps(runs) -- 2.49.0