From: Dylan Baker <[email protected]> I'm going to admit I'm a bit puzzled how this could have slipped through without being caught (I'm guessing an unrelated change uncovered this). But basically if a test doesn't raise an exception, and the returncode is > 0, it should mark the test with a status of "fail", but it doesn't. Instead the default status "notrun" is passed to the logger, which it doesn't support, and an exception is raised.
This patch corrects that problem. bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93340 cc: [email protected] Signed-off-by: Dylan Baker <[email protected]> --- I'm not really sure this is exactly the right solution. I wonder if we'd be better just to get rid of the "warn" and just say if the returncode is 0 leave it alone, if it's crash/timeout (as defined by the function), do that, otherwise mark it as "fail". framework/test/base.py | 7 +++++-- framework/tests/base_tests.py | 15 +++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/framework/test/base.py b/framework/test/base.py index 378f185..4232e6c 100644 --- a/framework/test/base.py +++ b/framework/test/base.py @@ -210,8 +210,11 @@ class Test(object): self.result.result = 'timeout' else: self.result.result = 'crash' - elif self.result.returncode != 0 and self.result.result == 'pass': - self.result.result = 'warn' + elif self.result.returncode != 0: + if self.result.result == 'pass': + self.result.result = 'warn' + else: + self.result.result = 'fail' def run(self): """ diff --git a/framework/tests/base_tests.py b/framework/tests/base_tests.py index c005273..20bea87 100644 --- a/framework/tests/base_tests.py +++ b/framework/tests/base_tests.py @@ -260,3 +260,18 @@ class TestValgrindMixinRun(object): test.result.returncode = 1 test.run() nt.eq_(test.result.result, 'fail') + + +def test_interpret_result_greater_zero(): + """test.base.Test.interpret_result: A test with status > 0 is fail""" + class _Test(Test): + def interpret_result(self): + super(_Test, self).interpret_result() + + test = _Test(['foobar']) + test.result.returncode = 1 + test.result.out = 'this is some\nstdout' + test.result.err = 'this is some\nerrors' + test.interpret_result() + + nt.eq_(test.result.result, 'fail') -- 2.6.4 _______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
