[oe-commits] [openembedded-core] 01/09: selftest: Add multiconfig test

git at git.openembedded.org git at git.openembedded.org
Sun Mar 3 15:44:23 UTC 2019


This is an automated email from the git hooks/post-receive script.

rpurdie pushed a commit to branch master-next
in repository openembedded-core.

commit 0c7fa15a7350808242754944243f01155bc6784c
Author: Richard Purdie <richard.purdie at linuxfoundation.org>
AuthorDate: Sat Mar 2 15:00:43 2019 +0000

    selftest: Add multiconfig test
    
    Add a test for a multiconfig build which mixes tiny and musl builds
    along with using the mcextend class to combine and package multiple images
    into another image. This gives the multiconfig a decent test in a scenario
    users may use.
    
    Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 .../multiconfig/multiconfig-image-packager_0.1.bb  | 28 ++++++++++++++
 meta/lib/oeqa/selftest/cases/multiconfig.py        | 43 ++++++++++++++++++++++
 2 files changed, 71 insertions(+)

diff --git a/meta-selftest/recipes-test/multiconfig/multiconfig-image-packager_0.1.bb b/meta-selftest/recipes-test/multiconfig/multiconfig-image-packager_0.1.bb
new file mode 100644
index 0000000..3dbc0f5
--- /dev/null
+++ b/meta-selftest/recipes-test/multiconfig/multiconfig-image-packager_0.1.bb
@@ -0,0 +1,28 @@
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+MCMACHINE_virtclass-mcextend-musl = "qemux86-64"
+MCMACHINE_virtclass-mcextend-tiny = "qemux86"
+MCIMGTYPE_virtclass-mcextend-musl = "ext4"
+MCIMGTYPE_virtclass-mcextend-tiny = "cpio.gz"
+
+MC_DEPLOY_DIR_IMAGE = "${TOPDIR}/tmp-mc-${MCNAME}/deploy/images/${MCMACHINE}"
+
+do_install[mcdepends] += "multiconfig::${MCNAME}:core-image-minimal:do_image_complete multiconfig::${MCNAME}:virtual/kernel:do_deploy"
+
+do_install () {
+    install -d ${D}/var/lib/machines/${MCNAME}
+    install ${MC_DEPLOY_DIR_IMAGE}/core-image-minimal-${MCMACHINE}.${MCIMGTYPE} ${D}/var/lib/machines/${MCNAME}/core-image-minimal.${MCIMGTYPE}
+    install ${MC_DEPLOY_DIR_IMAGE}/bzImage ${D}/var/lib/machines/${MCNAME}
+}
+
+python () {
+    mcname = d.getVar('MCNAME')
+    if not mcname:
+        raise bb.parse.SkipRecipe("Not a multiconfig target")
+    multiconfigs = d.getVar('BBMULTICONFIG') or ""
+    if mcname not in multiconfigs:
+        raise bb.parse.SkipRecipe("multiconfig target %s not enabled" % mcname)
+}
+
+BBCLASSEXTEND = "mcextend:tiny mcextend:musl"
diff --git a/meta/lib/oeqa/selftest/cases/multiconfig.py b/meta/lib/oeqa/selftest/cases/multiconfig.py
new file mode 100644
index 0000000..3c36f6e
--- /dev/null
+++ b/meta/lib/oeqa/selftest/cases/multiconfig.py
@@ -0,0 +1,43 @@
+import os
+from oeqa.selftest.case import OESelftestTestCase
+from oeqa.utils.commands import bitbake
+import oeqa.utils.ftools as ftools
+
+class MultiConfig(OESelftestTestCase):
+
+    def test_multiconfig(self):
+        """
+        Test that a simple multiconfig build works. This uses the mcextend class and the 
+        multiconfig-image-packager test recipe to build a core-image-full-cmdline image which 
+        contains a tiny core-image-minimal and a musl core-image-minimal, installed as packages.
+        """
+
+        config = """
+IMAGE_INSTALL_append_pn-core-image-full-cmdline = " multiconfig-image-packager-tiny multiconfig-image-packager-musl"
+BBMULTICONFIG = "tiny musl"
+"""
+        self.write_config(config)
+
+        muslconfig = """
+MACHINE = "qemux86-64"
+DISTRO = "poky"
+TCLIBC = "musl"
+TMPDIR = "${TOPDIR}/tmp-mc-musl"
+"""
+
+        tinyconfig = """
+MACHINE = "qemux86"
+DISTRO = "poky-tiny"
+TMPDIR = "${TOPDIR}/tmp-mc-tiny"
+"""
+
+        multiconfigdir = self.builddir + "/conf/multiconfig"
+        os.makedirs(multiconfigdir, exist_ok=True)
+        self.track_for_cleanup(multiconfigdir + "/musl.conf")
+        ftools.write_file(multiconfigdir + "/musl.conf", muslconfig)
+        self.track_for_cleanup(multiconfigdir + "/tiny.conf")
+        ftools.write_file(multiconfigdir + "/tiny.conf", tinyconfig)
+
+        # Build a core-image-minimal
+        bitbake('core-image-full-cmdline')
+

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list