So this means that going from Skip (or NotRun) to Timeout would not be counted as a change (regression/etc) by summary. Is that intentional?
Futhermore, I'm not 100% sure, but I think going from Pass -> Timeout might get considered to be a fix (and Timeout -> Pass a regression). I'd like to encourage you to add a few cases to summary_test.py which would either prove me wrong, or point out potential issues, and at least provide a place where you can encode your desired behaviour (about which we can then argue whether it's correct or not :) ) Lastly, you need to add TIMEOUT to ALL = ... at the very end of framework/status.py On Wed, Apr 23, 2014 at 12:29 PM, Thomas Wood <[email protected]> wrote: > v2: use NoChangeStatus for the timeout class > > Signed-off-by: Thomas Wood <[email protected]> > Cc: Daniel Vetter <[email protected]> > --- > framework/log.py | 3 ++- > framework/status.py | 7 +++++-- > framework/summary.py | 6 ++++-- > framework/tests/status_tests.py | 6 +++--- > templates/index.css | 5 ++++- > 5 files changed, 18 insertions(+), 9 deletions(-) > > diff --git a/framework/log.py b/framework/log.py > index d045847..e5154aa 100644 > --- a/framework/log.py > +++ b/framework/log.py > @@ -39,7 +39,8 @@ class Log(object): > self.__generator = (x for x in xrange(self.__total)) > self.__pad = len(str(self.__total)) > self.__summary_keys = set(['pass', 'fail', 'warn', 'crash', 'skip', > - 'dmesg-warn', 'dmesg-fail', 'dry-run']) > + 'dmesg-warn', 'dmesg-fail', 'dry-run', > + 'timeout']) > self.__summary = collections.defaultdict(lambda: 0) > self.__lastlength = 0 > > diff --git a/framework/status.py b/framework/status.py > index aa42487..7e16a2b 100644 > --- a/framework/status.py > +++ b/framework/status.py > @@ -41,7 +41,6 @@ warn > dmesg-fail > fail > crash > -timeout > > SKIP and NOTRUN are not factored into regressions and fixes, they are counted > seperately. They also derive from a sublcass of Status, which always returns > @@ -63,6 +62,7 @@ __all__ = ['NOTRUN', > 'DMESG_WARN', > 'DMESG_FAIL', > 'SKIP', > + 'TIMEOUT', > 'ALL'] > > > @@ -81,7 +81,8 @@ def status_lookup(status): > 'crash': CRASH, > 'dmesg-warn': DMESG_WARN, > 'dmesg-fail': DMESG_FAIL, > - 'notrun': NOTRUN} > + 'notrun': NOTRUN, > + 'timeout': TIMEOUT} > > try: > return status_dict[status] > @@ -211,6 +212,8 @@ class NoChangeStatus(Status): > > NOTRUN = NoChangeStatus('Not Run') > > +TIMEOUT = NoChangeStatus('timeout') > + > SKIP = NoChangeStatus('skip') > > PASS = Status('pass', 0, (1, 1)) > diff --git a/framework/summary.py b/framework/summary.py > index 47138bf..9228330 100644 > --- a/framework/summary.py > +++ b/framework/summary.py > @@ -342,8 +342,9 @@ class Summary: > Private: Find the total number of pass, fail, crash, skip, and warn > in > the *last* set of results stored in self.results. > """ > - self.totals = {'pass': 0, 'fail': 0, 'crash': 0, 'skip': 0, 'warn': > 0, > - 'dmesg-warn': 0, 'dmesg-fail': 0} > + self.totals = {'pass': 0, 'fail': 0, 'crash': 0, 'skip': 0, > + 'timeout': 0, 'warn': 0, 'dmesg-warn': 0, > + 'dmesg-fail': 0} > > for test in self.results[-1].tests.itervalues(): > self.totals[str(test['result'])] += 1 > @@ -472,6 +473,7 @@ class Summary: > " fail: {fail}\n" > " crash: {crash}\n" > " skip: {skip}\n" > + " timeout: {timeout}\n" > " warn: {warn}\n" > " dmesg-warn: {dmesg-warn}\n" > " dmesg-fail: {dmesg-fail}".format(**self.totals)) > diff --git a/framework/tests/status_tests.py b/framework/tests/status_tests.py > index c1d8c86..7b1b30a 100644 > --- a/framework/tests/status_tests.py > +++ b/framework/tests/status_tests.py > @@ -44,7 +44,7 @@ FIXES = list(itertools.combinations(reversed(STATUSES), 2)) > + \ > list(itertools.combinations(list(reversed(PROBLEMS)) + ["skip"], 2)) > > # The statuses that don't cause changes when transitioning from one another > -NO_OPS = ('skip', 'notrun') > +NO_OPS = ('skip', 'notrun', 'timeout') > > > def initialize_status(): > @@ -74,7 +74,7 @@ def test_gen_lookup(): > """ Generator that attempts to do a lookup on all statuses """ > yieldable = check_lookup > > - for stat in STATUSES + ['skip', 'notrun']: > + for stat in STATUSES + ['skip', 'notrun', 'timeout']: > yieldable.description = "Lookup: {}".format(stat) > yield yieldable, stat > > @@ -149,7 +149,7 @@ def check_not_change(new, old): > > > def test_not_change(): > - """ Skip and NotRun should not count as changes """ > + """ Skip, NotRun and Timeout should not count as changes """ > yieldable = check_not_change > > for nochange, stat in itertools.permutations(NO_OPS, 2): > diff --git a/templates/index.css b/templates/index.css > index 577370c..3389738 100644 > --- a/templates/index.css > +++ b/templates/index.css > @@ -36,7 +36,7 @@ td:first-child > div { > background-color: #c8c838 > } > > -td.skip, td.warn, td.fail, td.pass, td.trap, td.abort, td.crash, > td.dmesg-warn, td.dmesg-fail { > +td.skip, td.warn, td.fail, td.pass, td.trap, td.abort, td.crash, > td.dmesg-warn, td.dmesg-fail, td.timeout { > text-align: right; > } > > @@ -67,6 +67,9 @@ tr:nth-child(even) td.fail { background-color: #e00505; } > tr:nth-child(odd) td.dmesg-fail { background-color: #ff2020; } > tr:nth-child(even) td.dmesg-fail { background-color: #e00505; } > > +tr:nth-child(odd) td.timeout { background-color: #83bdf6; } > +tr:nth-child(even) td.timeout { background-color: #4a9ef2; } > + > tr:nth-child(odd) td.trap { background-color: #111111; } > tr:nth-child(even) td.trap { background-color: #000000; } > tr:nth-child(odd) td.abort { background-color: #111111; } > -- > 1.9.0 > > _______________________________________________ > Piglit mailing list > [email protected] > http://lists.freedesktop.org/mailman/listinfo/piglit _______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
