summaryrefslogtreecommitdiff
path: root/poky/meta/lib/oeqa/sdk/cases
diff options
context:
space:
mode:
Diffstat (limited to 'poky/meta/lib/oeqa/sdk/cases')
-rw-r--r--poky/meta/lib/oeqa/sdk/cases/autotools.py6
-rw-r--r--poky/meta/lib/oeqa/sdk/cases/cmake.py4
-rw-r--r--poky/meta/lib/oeqa/sdk/cases/gcc.py4
-rw-r--r--poky/meta/lib/oeqa/sdk/cases/gtk3.py4
-rw-r--r--poky/meta/lib/oeqa/sdk/cases/kmod.py41
-rw-r--r--poky/meta/lib/oeqa/sdk/cases/makefile.py6
-rw-r--r--poky/meta/lib/oeqa/sdk/cases/meson.py4
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")