From: Richard Purdie Date: Wed, 19 Jul 2023 10:23:20 +0000 (+0100) Subject: oeqa/selftest/rust: Various fixes to work correctly X-Git-Tag: lucaceresoli/bug-15201-perf-libtraceevent-missing~344 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b1718ce5b2b2db35a8e1c88087deee41f99094b4;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git oeqa/selftest/rust: Various fixes to work correctly * Ensure the test/class naming doesn't allow the to be triggered without the toolchain decorator * Add the toolchain-user decorator so it runs on non-IA targets * Strip the leading "[XX] " prefix from the test names * Ensure skipped test counts are passed through correctly (as SKIPPED, not SKIP) * Avoid duplicate test results and show a warning if any are found (duplicates were from other sources in the end but the code remains sensible to have) Signed-off-by: Richard Purdie --- diff --git a/meta/lib/oeqa/selftest/cases/rust.py b/meta/lib/oeqa/selftest/cases/rust.py index 4fbe8f08fa0..7a0fd7033d8 100644 --- a/meta/lib/oeqa/selftest/cases/rust.py +++ b/meta/lib/oeqa/selftest/cases/rust.py @@ -8,23 +8,34 @@ from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars, runqem from oeqa.utils.sshcontrol import SSHControl def parse_results(filename): - tests = [] + tests = {} with open(filename, "r") as f: lines = f.readlines() for line in lines: if "..." in line and "test [" in line: test = line.split("test ")[1].split(" ... ")[0] + if "] " in test: + test = test.split("] ", 1)[1] result = line.split(" ... ")[1].strip() if result == "ok": result = "PASS" elif result == "failed": result = "FAIL" elif "ignored" in result: - result = "SKIP" - tests.append((test, result)) + result = "SKIPPED" + if test in tests: + if tests[test] != result: + print("Duplicate and mismatching result %s for %s" % (result, test)) + else: + print("Duplicate result %s for %s" % (result, test)) + else: + tests[test] = result return tests # Total time taken for testing is of about 2hr 20min, with PARALLEL_MAKE set to 40 number of jobs. +@OETestTag("toolchain-system") +@OETestTag("toolchain-user") +@OETestTag("runqemu") class RustSelfTestSystemEmulated(OESelftestTestCase, OEPTestResultTestCase): def test_rust(self, *args, **kwargs): # build remote-test-server before image build @@ -75,11 +86,5 @@ class RustSelfTestSystemEmulated(OESelftestTestCase, OEPTestResultTestCase): self.ptest_section(ptestsuite, logfile = builddir + "/summary.txt") filename = builddir + "/summary.txt" test_results = parse_results(filename) - for test, result in test_results: - self.ptest_result(ptestsuite, test, result) - -@OETestTag("toolchain-system") -@OETestTag("runqemu") -class RustSelfTestBase(RustSelfTestSystemEmulated): - def test_check(self): - self.test_rust() + for test in test_results: + self.ptest_result(ptestsuite, test, test_results[test])