aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPavel Zhukov <pavel@zhukoff.net>2023-10-04 18:13:18 +0200
committerAlexandre Belloni <alexandre.belloni@bootlin.com>2023-10-04 20:42:45 +0200
commit8fd33f99f52962cbc06f01e844abb505ec06f777 (patch)
treede8270c344326f096a0fd9b903ee03fa64aeeb7d
parent8c275d61f6f143f62b77abd060fdf17374ee53ac (diff)
downloadopenembedded-core-contrib-abelloni/master-next.tar.gz
selftest: Add tests for populate_sdk taskabelloni/master-next
Two tests to cover both installing package with IMAGE_INSTALL as well as installing versioned dependencies of the package (using perl (>= 5.XX). Related: [Yocto #13338] [Yocto #14995] [Yocto #14066] Signed-off-by: Pavel Zhukov <pavel@zhukoff.net> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
-rw-r--r--meta-selftest/recipes-test/testsdk-perldepends/testsdk-perldepends.bb16
-rw-r--r--meta/lib/oeqa/selftest/cases/sdk.py79
2 files changed, 95 insertions, 0 deletions
diff --git a/meta-selftest/recipes-test/testsdk-perldepends/testsdk-perldepends.bb b/meta-selftest/recipes-test/testsdk-perldepends/testsdk-perldepends.bb
new file mode 100644
index 0000000000..428e1f52e2
--- /dev/null
+++ b/meta-selftest/recipes-test/testsdk-perldepends/testsdk-perldepends.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Test recipe for sdk populate test case"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+INHIBIT_DEFAULT_DEPS = "1"
+
+RDEPENDS:${PN}="perl (>= 5.12)"
+
+do_install(){
+ mkdir -p ${D}/var/lib/
+ touch ${D}/var/lib/testname
+ echo "${PN}" > ${D}/var/lib/testname
+}
+
+
+
diff --git a/meta/lib/oeqa/selftest/cases/sdk.py b/meta/lib/oeqa/selftest/cases/sdk.py
new file mode 100644
index 0000000000..35734d8a7a
--- /dev/null
+++ b/meta/lib/oeqa/selftest/cases/sdk.py
@@ -0,0 +1,79 @@
+#
+# Copyright OpenEmbedded Contributors
+#
+# SPDX-License-Identifier: MIT
+#
+
+import os
+
+from oeqa.selftest.case import OESelftestTestCase
+from oeqa.utils.commands import get_bb_var, bitbake
+
+class PopulateSDK(OESelftestTestCase):
+ '''Tests for populate SDK task(s)'''
+
+ @classmethod
+ def setUpClass(self):
+
+ super(PopulateSDK, self).setUpClass()
+ self.buildtarget = 'core-image-minimal'
+ self.classname = 'PopulateSDK'
+
+ def sdk_build(self):
+ """
+ Test if package added via IMAGE_INSTALL
+ conflicts with dummy SDK providers
+ """
+ SDKTASK = '-c populate_sdk'
+ bbargs = "{} {}".format(SDKTASK, self.buildtarget)
+ self.logger.info("{}: doing bitbake {} ".format(self.classname, bbargs))
+ return bitbake(bbargs).status
+
+ def set_config(self, image_install, package_classes):
+ config = 'IMAGE_INSTALL:append = " {}"\n'.format(image_install)
+ config += 'PACKAGE_CLASSES = " package_{}"\n'.format(package_classes)
+ return config
+
+ def do_test_build(self, image_install, package_manager):
+ self.write_config(self.set_config(image_install, package_manager))
+ res = self.sdk_build()
+ self.assertEqual(0, res, "Failed to populate SDK with {} in IMAGE_INSTALL and {} package manager"\
+ .format(image_install, package_manager))
+
+ def test_image_install_ipk(self):
+ """
+ Regression test for [Yocto #13338]
+ """
+ self.do_test_build("bash", "ipk")
+
+ def test_image_install_rpm(self):
+ """
+ Regression test for [Yocto #13338]
+ """
+ self.do_test_build("bash", "rpm")
+
+ def test_image_install_deb(self):
+ """
+ Regression test for [Yocto #13338]
+ """
+ self.do_test_build("bash", "deb")
+
+
+ def test_image_install_confictdeps_ipk(self):
+ """
+ Regression test for [Yocto #14995]
+ """
+ self.skipTest("Disabled until [Yocto #14995] is fixed")
+ self.do_test_build("testsdk-perldepends", "ipk")
+
+ def test_image_install_confictdeps_rpm(self):
+ """
+ Regression test for [Yocto #14995]
+ """
+ self.do_test_build("testsdk-perldepends", "rpm")
+
+ def test_image_install_confictdeps_deb(self):
+ """
+ Regression test for [Yocto #14995]
+ """
+ self.do_test_build("testsdk-perldepends", "deb")