rust/src/etc/check-summary.py

58 lines
1.8 KiB
Python
Raw Normal View History

#!/usr/bin/env python
#
2014-02-02 04:47:02 -06:00
# Copyright 2012-2014 The Rust Project Developers. See the COPYRIGHT
# file at the top-level directory of this distribution and at
# http://rust-lang.org/COPYRIGHT.
#
# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
# option. This file may not be copied, modified, or distributed
# except according to those terms.
import glob
import sys
if __name__ == '__main__':
summaries = []
2015-01-27 03:00:06 -06:00
def summarise(fname):
summary = {}
2014-01-16 09:35:47 -06:00
with open(fname) as fd:
for line in fd:
splitline = line.strip().split(' ')
if len(splitline) == 1:
continue
status = splitline[0]
test = splitline[-1]
# track bench runs
if splitline[1] == 'ns/iter':
status = 'bench'
2015-01-27 03:00:06 -06:00
if status not in summary:
2014-01-16 09:35:47 -06:00
summary[status] = []
summary[status].append(test)
summaries.append((fname, summary))
2015-01-27 03:00:06 -06:00
def count(t):
2015-05-24 07:12:40 -05:00
return sum(map(lambda f: len(f[1].get(t, [])), summaries))
2015-01-27 03:00:06 -06:00
logfiles = sys.argv[1:]
for files in map(glob.glob, logfiles):
map(summarise, files)
ok = count('ok')
failed = count('failed')
ignored = count('ignored')
2014-01-16 09:35:47 -06:00
measured = count('bench')
2015-05-24 07:12:40 -05:00
print("summary of %d test runs: %d passed; %d failed; %d ignored; %d measured" %
(len(logfiles), ok, failed, ignored, measured))
print("")
2015-01-27 03:00:06 -06:00
if failed > 0:
2015-05-24 07:12:40 -05:00
print("failed tests:")
for f, s in summaries:
failures = s.get('failed', [])
if len(failures) > 0:
2015-05-24 07:12:40 -05:00
print(" %s:" % (f))
for test in failures:
2015-05-24 07:12:40 -05:00
print(" %s" % (test))