Since nothing now depends on the old summary backend, delete it. This first eliminates dead code, but also ensures that no new functionality becomes dependent on this code.
Signed-off-by: Dylan Baker <baker.dyla...@gmail.com> --- framework/summary.py | 232 +-------------------------------------------------- 1 file changed, 1 insertion(+), 231 deletions(-) diff --git a/framework/summary.py b/framework/summary.py index 7ea11f3..2b5a62b 100644 --- a/framework/summary.py +++ b/framework/summary.py @@ -21,7 +21,6 @@ import os import os.path as path -import string from itertools import izip_longest from shutil import copy from json import loads @@ -30,239 +29,10 @@ from mako.template import Template import core __all__ = [ - 'Summary', - 'NewSummary', + 'NewSummary' ] -class PassVector: - """ - Vector indicting the number of tests that have a particular status, - pass/fail/skip/etc. - """ - - def __init__(self, p, w, f, s, c): - self.passnr = p - self.warnnr = w - self.failnr = f - self.skipnr = s - self.crashnr = c - - def add(self, o): - self.passnr += o.passnr - self.warnnr += o.warnnr - self.failnr += o.failnr - self.skipnr += o.skipnr - self.crashnr += o.crashnr - - -class TestSummary: - """ - Summarize the results for one test across a number of testruns - """ - def isRegression(self, statiList): - # Regression is: - # - if an item is neither 'pass' nor 'skip' - # - and if any item on the left side thereof is 'pass' or 'skip' - for i in range(1, len(statiList)): - if statiList[i-1] == 'pass' or statiList[i-1] == 'skip': - for j in range(i, len(statiList)): - if statiList[j] != 'pass' and statiList[j] != 'skip': - return True - return False - - def __init__(self, summary, path, name, results): - """\ -summary is the root summary object -path is the path to the group (e.g. shaders/glean-fragProg1) -name is the display name of the group (e.g. glean-fragProg1) -results is an array of TestResult instances, one per testrun -""" - self.summary = summary - self.path = path - self.name = name - self.results = results[:] - - for j in range(len(self.results)): - result = self.results[j] - result.testrun = self.summary.testruns[j] - result.status = '' - if 'result' in result: - result.status = result['result'] - - vectormap = { - 'pass': PassVector(1,0,0,0,0), - 'warn': PassVector(0,1,0,0,0), - 'fail': PassVector(0,0,1,0,0), - 'skip': PassVector(0,0,0,1,0), - 'crash': PassVector(0,0,0,0,1) - } - - if result.status not in vectormap: - result.status = 'warn' - - result.passvector = vectormap[result.status] - - statiList = [result.status for result in results] - statiSet = set(statiList) - self.changes = len(statiSet) > 1 - self.problems = len(statiSet - set(['pass', 'skip'])) > 0 - self.regressions = self.isRegression(statiList) - statiList.reverse() - self.fixes = self.isRegression(statiList) - self.skipped = 'skip' in statiSet - - def allTests(self): - return [self] - - -class GroupSummary: - """ - Summarize a group of tests - """ - def createDummyGroup(self, result, test_name): - new_group = core.GroupResult() - new_group[' ' + test_name + '(All Tests)'] = result[test_name] - result[test_name] = new_group - - def __init__(self, summary, path, name, results): - """\ -summary is the root summary object -path is the path to the group (e.g. shaders/glean-fragProg1) -name is the display name of the group (e.g. glean-fragProg1) -results is an array of GroupResult instances, one per testrun -""" - self.summary = summary - self.path = path - self.name = name - self.results = results[:] - self.changes = False - self.problems = False - self.regressions = False - self.fixes = False - self.skipped = False - self.children = {} - - # Perform some initial annotations - for j in range(len(self.results)): - result = self.results[j] - result.passvector = PassVector(0, 0, 0, 0, 0) - result.testrun = self.summary.testruns[j] - - # Collect, create and annotate children - for result in self.results: - for name in result: - if name in self.children: - continue - - childpath = name - if len(self.path) > 0: - childpath = self.path + '/' + childpath - - if isinstance(result[name], core.GroupResult): - # This loop checks to make sure that all results - # with the same 'name' are of the same type. - # This is necessary to handle the case where - # a testname in an earlier result (an earlier - # result in this case means a result that - # comes before the current result in self.results) - # denotes a test group but in a later - # result it denotes a single test case, for example: - # - # result 0: - # test/group/a PASS - # test/group/b PASS - # test/group/c PASS - # result 1: - # test/group PASS - for r in self.results: - if name in r and not isinstance(r[name], core.GroupResult): - self.createDummyGroup(r, name) - - childresults = [r.get(name, core.GroupResult()) - for r in self.results] - - self.children[name] = GroupSummary( - summary, - childpath, - name, - childresults - ) - else: - # We need to check and handle the reversed case - # described in the above comment e.g.: - # result 0: - # test/group PASS - # result 1: - # test/group/a PASS - # test/group/b PASS - # test/group/c PASS - need_group = 0 - for r in self.results: - if name in r and not isinstance(r[name], core.TestResult): - need_group = 1 - if need_group: - for r in self.results: - if name in r and isinstance(r[name], core.TestResult): - self.createDummyGroup(r, name) - childresults = [r.get(name, core.GroupResult()) - for r in self.results] - - self.children[name] = GroupSummary( - summary, - childpath, - name, - childresults - ) - else: - childresults = [r.get(name, core.TestResult({ 'result': 'skip' })) - for r in self.results] - self.children[name] = TestSummary( - summary, - childpath, - name, - childresults - ) - - for j in range(len(self.results)): - self.results[j].passvector.add(childresults[j].passvector) - - self.changes = self.changes or self.children[name].changes - self.problems = self.problems or self.children[name].problems - self.regressions = self.regressions or self.children[name].regressions - self.fixes = self.fixes or self.children[name].fixes - self.skipped = self.skipped or self.children[name].skipped - - def allTests(self): - """\ -Returns an array of all child TestSummary instances. -""" - return [t for name in self.children for t in self.children[name].allTests()] - - -class Summary: - """ - Summarize an array of testruns - """ - def __init__(self, testruns): - """\ -testruns is an array of TestrunResult instances -""" - groups = [ - core.GroupResult.make_tree(testrun.tests) - for testrun in testruns - ] - self.testruns = testruns - self.root = GroupSummary(self, '', 'All', groups) - - def allTests(self): - """\ -Returns an array of all child TestSummary instances. -""" - return self.root.allTests() - -## New Summary - class Result(core.TestrunResult): """ Object that opens, reads, and stores the data in a resultfile. -- 1.8.1.4 _______________________________________________ Piglit mailing list Piglit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/piglit