The rust test involves qemuimage for testing, so
"run_check_emulated" involves building of "remote-test-server",
qemuimage and test execution.
We are booting qemuimage in "nographic" and "slirp" mode along with
additional qemuparams,
'-monitor telnet:127.0.0.1:1234,server,nowait -serial mon:stdio -serial null'
Note:
'-serial mon:stdio -serial' : To fix below run-time errors while testing
"failed with Connection reset by peer"
Signed-off-by: Vinay Kumar <vinay.m.engg@gmail.com>
---
meta/lib/oeqa/selftest/cases/rust.py | 32 ++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)
create mode 100644 meta/lib/oeqa/selftest/cases/rust.py
diff --git a/meta/lib/oeqa/selftest/cases/rust.py b/meta/lib/oeqa/selftest/cases/rust.py
new file mode 100644
index 0000000000..4efbf9306f
--- /dev/null
+++ b/meta/lib/oeqa/selftest/cases/rust.py
@@ -0,0 +1,32 @@
+# SPDX-License-Identifier: MIT
+import os
+from oeqa.core.decorator import OETestTag
+from oeqa.core.case import OEPTestResultTestCase
+from oeqa.selftest.case import OESelftestTestCase
+from oeqa.utils.commands import bitbake, get_bb_var, get_bb_vars, runqemu, Command
+
+class RustSelfTestBase(OESelftestTestCase, OEPTestResultTestCase):
+
+ def run_check_emulated(self, *args, **kwargs):
+ # build remote-test-server before image build
+ recipe = "rust-testsuite"
+ bitbake("{} -c compile".format(recipe))
+
+ # build core-image-minimal with required packages
+ default_installed_packages = ["libgcc", "libstdc++", "libatomic", "libgomp"]
+ features = []
+ features.append('IMAGE_FEATURES += "ssh-server-openssh"')
+ features.append('CORE_IMAGE_EXTRA_INSTALL += "{0}"'.format(" ".join(default_installed_packages)))
+ self.write_config("\n".join(features))
+ bitbake("core-image-minimal")
+ # wrap the execution with a qemu instance
+ with runqemu("core-image-minimal", runqemuparams = "nographic slirp", qemuparams= " -monitor \
+ telnet:127.0.0.1:1234,server,nowait -serial mon:stdio -serial null") as qemu:
+ recipe = "rust-testsuite"
+ bitbake("{} -c check".format(recipe))
+
+
+@OETestTag("toolchain-system")
+class RustSelfTestSystemEmulated(RustSelfTestBase):
+ def test_rust(self):
+ self.run_check_emulated("rust")
--
2.17.1