[OE-core] [PATCH] oeqa/runtime/ptest: fix detection of failed tests

André Draszik git at andred.net
Fri Dec 20 16:23:35 UTC 2019


Since commit d6065f136f6d ("oeqa/logparser: Various misc cleanups"),
7b17274c30c6 in poky, the ptest OEQA is unable to detect failures
in any of the test results.

The reason is that the test result string changed from 'fail' to
'FAILED', because the original mapping has been removed as part of
that commit, but the code in here is still trying to match against
the old string, resulting in no matches, i.e. everything is treated
as successful, even if it shouldn't be.

Update the OEQA ptest test to actually work again and report
failure if there was a failure.

Note that the ptest test is marked as @expectedfail, so even though
this test now again starts to fail, the overall OEQA test result is
not affected - but at least the overall OEQA test summary reflects
the correct status again.

In other words:
    RESULTS:
    RESULTS - ping.PingTest.test_ping: PASSED (0.26s)
    RESULTS - ptest.PtestRunnerTest.test_ptestrunner: PASSED (4.05s)
    RESULTS - ssh.SSHTest.test_ssh: PASSED (0.60s)
    SUMMARY:
    image-debug () - Ran 3 tests in 4.937s
correctly changes to:
    RESULTS:
    RESULTS - ping.PingTest.test_ping: PASSED (0.24s)
    RESULTS - ssh.SSHTest.test_ssh: PASSED (0.56s)
    RESULTS - ptest.PtestRunnerTest.test_ptestrunner: EXPECTEDFAIL (4.13s)
    SUMMARY:
    image-debug () - Ran 3 tests in 4.937s
instead.

Signed-off-by: André Draszik <git at andred.net>
---
 meta/lib/oeqa/runtime/cases/ptest.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta/lib/oeqa/runtime/cases/ptest.py b/meta/lib/oeqa/runtime/cases/ptest.py
index d8d1e1b344..aef79f62a9 100644
--- a/meta/lib/oeqa/runtime/cases/ptest.py
+++ b/meta/lib/oeqa/runtime/cases/ptest.py
@@ -68,7 +68,7 @@ class PtestRunnerTest(OERuntimeTestCase):
 
         failed_tests = {}
         for section in results:
-            failed_testcases = [ "_".join(test.translate(trans).split()) for test in results[section] if results[section][test] == 'fail' ]
+            failed_testcases = [ "_".join(test.translate(trans).split()) for test in results[section] if results[section][test] == 'FAILED' ]
             if failed_testcases:
                 failed_tests[section] = failed_testcases
 
-- 
2.23.0.rc1



More information about the Openembedded-core mailing list