[Piglit] [PATCH 1/2] framework: add support for a "timeout" status
Thomas Wood
thomas.wood at intel.com
Wed Apr 23 09:29:25 PDT 2014
v2: use NoChangeStatus for the timeout class
Signed-off-by: Thomas Wood <thomas.wood at intel.com>
Cc: Daniel Vetter <daniel.vetter at ffwll.ch>
---
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
More information about the Piglit
mailing list