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