oeqa/sdk: Add basic rust cargo test

Add a QA test to the SDK to test that a basic cargo build works.

[RP: Tweaked to work for multilibs and updated to match toolchain changes]

(From OE-Core rev: d0cfe587bc897e79ef01805cc9a42fbca28c883c)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Otavio Salvador
2022-07-20 16:06:01 -03:00
committed by Richard Purdie
parent 5bb7d810f0
commit 1e3e20e92e
3 changed files with 42 additions and 0 deletions

View File

@@ -0,0 +1,33 @@
#
# SPDX-License-Identifier: MIT
#
import os
import shutil
import unittest
from oeqa.core.utils.path import remove_safe
from oeqa.sdk.case import OESDKTestCase
from oeqa.utils.subprocesstweak import errors_have_output
errors_have_output()
class RustCompileTest(OESDKTestCase):
td_vars = ['MACHINE']
@classmethod
def setUpClass(self):
targetdir = os.path.join(self.tc.sdk_dir, "hello")
try:
os.removedirs(targetdir)
except OSError:
pass
shutil.copytree(os.path.join(self.tc.sdk_files_dir, "rust/hello"), targetdir)
def setUp(self):
machine = self.td.get("MACHINE")
if not self.tc.hasHostPackage("packagegroup-rust-cross-canadian-%s" % machine):
raise unittest.SkipTest("RustCompileTest class: SDK doesn't contain a Rust cross-canadian toolchain")
def test_cargo_build(self):
self._run('cd %s/hello; cargo build' % self.tc.sdk_dir)

View File

@@ -0,0 +1,6 @@
[package]
name = "hello"
version = "0.1.0"
edition = "2021"
[dependencies]

View File

@@ -0,0 +1,3 @@
fn main() {
println!("Hello, OpenEmbedded world!");
}