#!/usr/bin/env python import re from collections import defaultdict errors = defaultdict(int) skipped = defaultdict(int) expected = defaultdict(int) file = re.compile("^# [/.]{2}(\S+\.t)$") with open("all.log") as fh: for line in fh: match = file.match(line) if match: filename = match.group(1) if line.startswith("not "): errors[filename] += 1 if line.startswith("skip "): skipped[filename] += 1 if line.startswith("# EXPECTED_FAILURE: "): expected[filename] += 1 print "Failed" for key in sorted(errors): print "%-32s %4d" % (key, errors[key]) print "\nSkipped" for key in sorted(skipped): print "%-32s %4d" % (key, skipped[key]) print "\nExpected failures (part of skipped)" for key in sorted(expected): print "%-32s %4d" % (key, expected[key])