diff options
Diffstat (limited to 'poky/meta/lib/oeqa/sdk/cases')
-rw-r--r-- | poky/meta/lib/oeqa/sdk/cases/autotools.py | 6 | ||||
-rw-r--r-- | poky/meta/lib/oeqa/sdk/cases/cmake.py | 4 | ||||
-rw-r--r-- | poky/meta/lib/oeqa/sdk/cases/gcc.py | 4 | ||||
-rw-r--r-- | poky/meta/lib/oeqa/sdk/cases/gtk3.py | 4 | ||||
-rw-r--r-- | poky/meta/lib/oeqa/sdk/cases/kmod.py | 41 | ||||
-rw-r--r-- | poky/meta/lib/oeqa/sdk/cases/makefile.py | 6 | ||||
-rw-r--r-- | poky/meta/lib/oeqa/sdk/cases/meson.py | 4 |
7 files changed, 69 insertions, 0 deletions
diff --git a/poky/meta/lib/oeqa/sdk/cases/autotools.py b/poky/meta/lib/oeqa/sdk/cases/autotools.py index 848e9392ec..4bac28f04d 100644 --- a/poky/meta/lib/oeqa/sdk/cases/autotools.py +++ b/poky/meta/lib/oeqa/sdk/cases/autotools.py @@ -7,6 +7,7 @@ import os import tempfile import subprocess +import unittest from oeqa.sdk.case import OESDKTestCase from oeqa.utils.subprocesstweak import errors_have_output @@ -16,6 +17,11 @@ class AutotoolsTest(OESDKTestCase): """ Check that autotools will cross-compile correctly. """ + def setUp(self): + libc = self.td.get("TCLIBC") + if libc in [ 'newlib' ]: + raise unittest.SkipTest("AutotoolsTest class: SDK doesn't contain a supported C library") + def test_cpio(self): with tempfile.TemporaryDirectory(prefix="cpio-", dir=self.tc.sdk_dir) as testdir: tarball = self.fetch(testdir, self.td["DL_DIR"], "https://ftp.gnu.org/gnu/cpio/cpio-2.15.tar.gz") diff --git a/poky/meta/lib/oeqa/sdk/cases/cmake.py b/poky/meta/lib/oeqa/sdk/cases/cmake.py index db7d826a38..cb0944ee99 100644 --- a/poky/meta/lib/oeqa/sdk/cases/cmake.py +++ b/poky/meta/lib/oeqa/sdk/cases/cmake.py @@ -19,6 +19,10 @@ class CMakeTest(OESDKTestCase): """ def setUp(self): + libc = self.td.get("TCLIBC") + if libc in [ 'newlib' ]: + raise unittest.SkipTest("CMakeTest class: SDK doesn't contain a supported C library") + if not (self.tc.hasHostPackage("nativesdk-cmake") or self.tc.hasHostPackage("cmake-native")): raise unittest.SkipTest("CMakeTest: needs cmake") diff --git a/poky/meta/lib/oeqa/sdk/cases/gcc.py b/poky/meta/lib/oeqa/sdk/cases/gcc.py index fc28b9c3d4..e810d2c42b 100644 --- a/poky/meta/lib/oeqa/sdk/cases/gcc.py +++ b/poky/meta/lib/oeqa/sdk/cases/gcc.py @@ -26,6 +26,10 @@ class GccCompileTest(OESDKTestCase): os.path.join(self.tc.sdk_dir, f)) def setUp(self): + libc = self.td.get("TCLIBC") + if libc in [ 'newlib' ]: + raise unittest.SkipTest("GccCompileTest class: SDK doesn't contain a supported C library") + machine = self.td.get("MACHINE") if not (self.tc.hasHostPackage("packagegroup-cross-canadian-%s" % machine) or self.tc.hasHostPackage("^gcc-", regex=True)): diff --git a/poky/meta/lib/oeqa/sdk/cases/gtk3.py b/poky/meta/lib/oeqa/sdk/cases/gtk3.py index c329c4bb86..8f60d5e7da 100644 --- a/poky/meta/lib/oeqa/sdk/cases/gtk3.py +++ b/poky/meta/lib/oeqa/sdk/cases/gtk3.py @@ -18,6 +18,10 @@ class GTK3Test(OESDKTestCase): Test that autotools and GTK+ 3 compiles correctly. """ def setUp(self): + libc = self.td.get("TCLIBC") + if libc in [ 'newlib' ]: + raise unittest.SkipTest("GTK3Test class: SDK doesn't contain a supported C library") + if not (self.tc.hasTargetPackage("gtk+3", multilib=True) or \ self.tc.hasTargetPackage("libgtk-3.0", multilib=True)): raise unittest.SkipTest("GalculatorTest class: SDK don't support gtk+3") diff --git a/poky/meta/lib/oeqa/sdk/cases/kmod.py b/poky/meta/lib/oeqa/sdk/cases/kmod.py new file mode 100644 index 0000000000..9e8fdbcd40 --- /dev/null +++ b/poky/meta/lib/oeqa/sdk/cases/kmod.py @@ -0,0 +1,41 @@ +# +# Copyright OpenEmbedded Contributors +# +# SPDX-License-Identifier: MIT +# + +import os +import subprocess +import tempfile +import unittest + +from oeqa.sdk.case import OESDKTestCase +from oeqa.utils.subprocesstweak import errors_have_output +errors_have_output() + +class KernelModuleTest(OESDKTestCase): + """ + Test that out-of-tree kernel modules build. + """ + + def setUp(self): + if not self.tc.hasTargetPackage("kernel-devsrc"): + raise unittest.SkipTest("KernelModuleTest needs kernel-devsrc") + + # These targets need to be built before kernel modules can be built. + self._run("make -j -C $OECORE_TARGET_SYSROOT/usr/src/kernel prepare scripts") + + + def test_cryptodev(self): + with tempfile.TemporaryDirectory(prefix="cryptodev", dir=self.tc.sdk_dir) as testdir: + git_url = "https://github.com/cryptodev-linux/cryptodev-linux" + # This is a knnown-good commit post-1.13 that builds with kernel 6.7+ + git_sha = "bb8bc7cf60d2c0b097c8b3b0e807f805b577a53f" + + sourcedir = os.path.join(testdir, "cryptodev-linux") + subprocess.check_output(["git", "clone", git_url, sourcedir], stderr=subprocess.STDOUT) + self.assertTrue(os.path.isdir(sourcedir)) + subprocess.check_output(["git", "-C", sourcedir, "checkout", git_sha], stderr=subprocess.STDOUT) + + self._run("make -C %s V=1 KERNEL_DIR=$OECORE_TARGET_SYSROOT/usr/src/kernel" % sourcedir) + self.check_elf(os.path.join(sourcedir, "cryptodev.ko")) diff --git a/poky/meta/lib/oeqa/sdk/cases/makefile.py b/poky/meta/lib/oeqa/sdk/cases/makefile.py index 2ff54ce25f..e1e2484820 100644 --- a/poky/meta/lib/oeqa/sdk/cases/makefile.py +++ b/poky/meta/lib/oeqa/sdk/cases/makefile.py @@ -5,6 +5,7 @@ # import os, tempfile, subprocess +import unittest from oeqa.sdk.case import OESDKTestCase from oeqa.utils.subprocesstweak import errors_have_output errors_have_output() @@ -13,6 +14,11 @@ class MakefileTest(OESDKTestCase): """ Test that "plain" compilation works, using just $CC $CFLAGS etc. """ + def setUp(self): + libc = self.td.get("TCLIBC") + if libc in [ 'newlib' ]: + raise unittest.SkipTest("MakefileTest class: SDK doesn't contain a supported C library") + def test_lzip(self): with tempfile.TemporaryDirectory(prefix="lzip", dir=self.tc.sdk_dir) as testdir: tarball = self.fetch(testdir, self.td["DL_DIR"], "http://downloads.yoctoproject.org/mirror/sources/lzip-1.19.tar.gz") diff --git a/poky/meta/lib/oeqa/sdk/cases/meson.py b/poky/meta/lib/oeqa/sdk/cases/meson.py index be53df204a..1edf78720a 100644 --- a/poky/meta/lib/oeqa/sdk/cases/meson.py +++ b/poky/meta/lib/oeqa/sdk/cases/meson.py @@ -18,6 +18,10 @@ class MesonTest(OESDKTestCase): Test that Meson builds correctly. """ def setUp(self): + libc = self.td.get("TCLIBC") + if libc in [ 'newlib' ]: + raise unittest.SkipTest("MesonTest class: SDK doesn't contain a supported C library") + if not (self.tc.hasHostPackage("nativesdk-meson") or self.tc.hasHostPackage("meson-native")): raise unittest.SkipTest("MesonTest: needs meson") |