]> git.lizzy.rs Git - rust.git/blob - src/etc/check-summary.py
build: Cleanup of test summary printing
[rust.git] / src / etc / check-summary.py
1 #!/usr/bin/env python
2
3 import sys
4
5 if __name__ == '__main__':
6     summaries = []
7     def summarise(fname):
8         summary = {}
9         fd = open(fname)
10         for line in fd:
11             status, test = line.strip().split(' ', 1)
12             if not summary.has_key(status):
13                 summary[status] = []
14             summary[status].append(test)
15         summaries.append((fname, summary))
16     def count(t):
17         return sum(map(lambda (f, s): len(s.get(t, [])), summaries))
18     logfiles = sys.argv[1:]
19     map(summarise, logfiles)
20     ok = count('ok')
21     failed = count('failed')
22     ignored = count('ignored')
23     print "summary of %d test runs: %d passed; %d failed; %d ignored" % \
24             (len(logfiles), ok, failed, ignored)
25     print ""
26     if failed > 0:
27         print "failed tests:"
28         for f, s in summaries:
29             failures = s.get('failed', [])
30             if len(failures) > 0:
31                 print "  %s:" % (f)
32             for test in failures:
33                 print "    %s" % (test)