From 573f8bc8f56a5c89e13bfc5b8a5e0630bb3b0576 Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Fri, 30 Nov 2012 00:52:59 -0800 Subject: add problems/changes pages. --- programs/report.py | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/programs/report.py b/programs/report.py index 9c8c5f9..c48813c 100755 --- a/programs/report.py +++ b/programs/report.py @@ -179,7 +179,7 @@ def buildTable(run_names, results): return (stack[0].name_html, stack[0].column_html) -def writeSummaryHtml(run_names, results, reportDir): +def writeSummaryHtml(run_names, results, filename): names, columns = buildTable(run_names, results) def makeColumn(name, contents): @@ -187,13 +187,25 @@ def writeSummaryHtml(run_names, results, reportDir): column_html = ''.join([makeColumn(name, contents) for name, contents in zip(run_names, columns)]) group = '
%(name)s' + names + '
' - writefile(path.join(reportDir, 'index.html'), templates['index'] % { + writefile(filename, templates['index'] % { 'page': 'Your face', 'showlinks': 'Navbar', 'group': group, 'columns': column_html }) +############################################################################# +##### Test filtering predicates +##### +##### These take a list of statuses (i.e. ['pass', 'fail']. +############################################################################# + +def broken(rs): + return not all(r == 'pass' or r == 'skip' or r is None for r in rs) + +def changed(rs): + return any(rs[0] != r for r in rs) + ############################################################################# ##### Main program ############################################################################# @@ -245,11 +257,21 @@ def main(argv, config): results = getCombinedResults(db, run_names, args.intersect) # XXX: write detail pages + def writeSummaryPage(page, filterFunc = None): + cut_results = {} + for t in results.keys(): + if filterFunc is None or filterFunc(results[t]): + cut_results[t] = results[t] + writeSummaryHtml(run_names, cut_results, path.join(reportDir, page + '.html')) os.link(path.join(templateDir, 'index.css'), path.join(reportDir, 'index.css')) - writeSummaryHtml(run_names, results, reportDir) + writeSummaryPage('index') + writeSummaryPage('problems', broken) + writeSummaryPage('changes', changed) + #writeSummaryPage('regressions', regressed) + #writeSummaryPage('fixes', fixed) if __name__ == "__main__": main() -- cgit v1.2.3