Reviewed-by: Mark Janes <[email protected]> [email protected] writes:
> 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
