@@ -18,7 +18,8 @@ class GTK3Test(MesonTestBase):
def setUp(self):
super().setUp()
self.ensure_target_package("gtk+3", "libgtk-3.0", recipe="gtk+3")
- self.ensure_host_package("glib-2.0-utils", "libglib-2.0-utils", recipe="glib-2.0")
+ self.ensure_host_package("glib-2.0-utils", "libglib-2.0-utils",
+ recipe="glib-2.0", binary="glib-compile-resources")
"""
Test that autotools and GTK+ 3 compiles correctly.
@@ -16,10 +16,12 @@ errors_have_output()
class MaturinTest(OESDKTestCase):
def setUp(self):
- self.ensure_host_package("python3-maturin")
+ self.ensure_host_package("python3-maturin", binary="maturin")
+ self.python3 = self.ensure_host_package("python3-core", recipe="python3",
+ binary="python3")
def test_maturin_list_python(self):
- out = self._run(r"""python3 -c 'import sys; print(f"{sys.executable}\n{sys.version_info.major}.{sys.version_info.minor}")'""")
+ out = self._run(r"""%s -c 'import sys; print(f"{sys.executable}\n{sys.version_info.major}.{sys.version_info.minor}")'""" % self.python3)
executable, version = out.splitlines()
output = self._run("maturin list-python")
@@ -32,7 +34,7 @@ class MaturinTest(OESDKTestCase):
class MaturinDevelopTest(OESDKTestCase):
def setUp(self):
machine = self.td.get("MACHINE")
- self.ensure_host_package("python3-maturin")
+ self.ensure_host_package("python3-maturin", binary="maturin")
if not (
self.tc.hasHostPackage("packagegroup-rust-cross-canadian-%s" % machine)
@@ -25,7 +25,7 @@ class MesonTestBase(OESDKTestCase):
self.skipTest(f"{self.id()} does not support eSDK (https://bugzilla.yoctoproject.org/show_bug.cgi?id=15854)")
self.ensure_host_package("meson")
- self.ensure_host_package("pkgconf")
+ self.ensure_host_package("pkgconf", binary="pkg-config")
def build_meson(self, sourcedir, builddir, installdir=None, options=""):
"""
@@ -11,9 +11,9 @@ errors_have_output()
class PerlTest(OESDKTestCase):
def setUp(self):
- self.ensure_host_package("perl")
+ self.perl = self.ensure_host_package("perl", binary=("perl", "nativeperl"))
def test_perl(self):
- cmd = "perl -e '$_=\"Uryyb, jbeyq\"; tr/a-zA-Z/n-za-mN-ZA-M/;print'"
+ cmd = "%s -e '$_=\"Uryyb, jbeyq\"; tr/a-zA-Z/n-za-mN-ZA-M/;print'" % self.perl
output = self._run(cmd)
self.assertEqual(output, "Hello, world")
@@ -11,7 +11,7 @@ errors_have_output()
class Python3Test(OESDKTestCase):
def setUp(self):
- self.ensure_host_package("python3-core", recipe="python3")
+ self.ensure_host_package("python3-core", recipe="python3", binary="python3")
def test_python3(self):
cmd = "python3 -c \"import codecs; print(codecs.encode('Uryyb, jbeyq', 'rot13'))\""
@@ -29,6 +29,7 @@ class RustCompileTest(OESDKTestCase):
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")
+ self.ensure_sdk_binary("cargo")
def test_cargo_build(self):
self._run('cd %s/hello; cargo add zstd' % (self.tc.sdk_dir))
@@ -50,6 +51,7 @@ class RustHostCompileTest(OESDKTestCase):
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")
+ self.ensure_sdk_binary("cargo")
def test_cargo_build(self):
sdksys = self.td.get("SDK_SYS")
These cases identify a tool only by the package carrying it, so they run whatever the build host provides. gtk3 shows this is not confined to eSDKs: its glib-2.0-utils check passes on a standard SDK while glib-compile-resources and glib-mkenums both resolve to /usr/bin. perl needs two names because the recipe installs it twice: nativesdk-perl creates ${bindir}/perl, and perl-native creates ${bindir}/perl-native/perl, kept off PATH so recipes running "env perl" do not find it. AI-Generated: codex/claude-opus 5 (xhigh) Signed-off-by: Trevor Woerner <twoerner@gmail.com> --- meta/lib/oeqa/sdk/cases/gtk3.py | 3 ++- meta/lib/oeqa/sdk/cases/maturin.py | 8 +++++--- meta/lib/oeqa/sdk/cases/meson.py | 2 +- meta/lib/oeqa/sdk/cases/perl.py | 4 ++-- meta/lib/oeqa/sdk/cases/python.py | 2 +- meta/lib/oeqa/sdk/cases/rust.py | 2 ++ 6 files changed, 13 insertions(+), 8 deletions(-)