]> git.lizzy.rs Git - rust.git/blob - src/etc/check-summary.py
auto merge of #11585 : nikomatsakis/rust/issue-3511-rvalue-lifetimes, r=pcwalton
[rust.git] / src / etc / check-summary.py
1 #!/usr/bin/env python
2 # xfail-license
3
4 import sys
5
6 if __name__ == '__main__':
7     summaries = []
8     def summarise(fname):
9         summary = {}
10         with open(fname) as fd:
11             for line in fd:
12                 splitline = line.strip().split(' ')
13                 if len(splitline) == 1:
14                     continue
15                 status = splitline[0]
16                 test = splitline[-1]
17                 # track bench runs
18                 if splitline[1] == 'ns/iter':
19                     status = 'bench'
20                 if not summary.has_key(status):
21                     summary[status] = []
22                 summary[status].append(test)
23             summaries.append((fname, summary))
24     def count(t):
25         return sum(map(lambda (f, s): len(s.get(t, [])), summaries))
26     logfiles = sys.argv[1:]
27     map(summarise, logfiles)
28     ok = count('ok')
29     failed = count('failed')
30     ignored = count('ignored')
31     measured = count('bench')
32     print "summary of %d test runs: %d passed; %d failed; %d ignored; %d measured" % \
33             (len(logfiles), ok, failed, ignored, measured)
34     print ""
35     if failed > 0:
36         print "failed tests:"
37         for f, s in summaries:
38             failures = s.get('failed', [])
39             if len(failures) > 0:
40                 print "  %s:" % (f)
41             for test in failures:
42                 print "    %s" % (test)