summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta-selftest/recipes-test/multiconfig/multiconfig-image-packager_0.1.bb28
-rw-r--r--meta/lib/oeqa/selftest/cases/multiconfig.py43
2 files changed, 71 insertions, 0 deletions
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 0000000000..3dbc0f5d15
--- /dev/null
+++ b/meta-selftest/recipes-test/multiconfig/multiconfig-image-packager_0.1.bb
@@ -0,0 +1,28 @@
1LICENSE = "MIT"
2LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
3
4MCMACHINE_virtclass-mcextend-musl = "qemux86-64"
5MCMACHINE_virtclass-mcextend-tiny = "qemux86"
6MCIMGTYPE_virtclass-mcextend-musl = "ext4"
7MCIMGTYPE_virtclass-mcextend-tiny = "cpio.gz"
8
9MC_DEPLOY_DIR_IMAGE = "${TOPDIR}/tmp-mc-${MCNAME}/deploy/images/${MCMACHINE}"
10
11do_install[mcdepends] += "multiconfig::${MCNAME}:core-image-minimal:do_image_complete multiconfig::${MCNAME}:virtual/kernel:do_deploy"
12
13do_install () {
14 install -d ${D}/var/lib/machines/${MCNAME}
15 install ${MC_DEPLOY_DIR_IMAGE}/core-image-minimal-${MCMACHINE}.${MCIMGTYPE} ${D}/var/lib/machines/${MCNAME}/core-image-minimal.${MCIMGTYPE}
16 install ${MC_DEPLOY_DIR_IMAGE}/bzImage ${D}/var/lib/machines/${MCNAME}
17}
18
19python () {
20 mcname = d.getVar('MCNAME')
21 if not mcname:
22 raise bb.parse.SkipRecipe("Not a multiconfig target")
23 multiconfigs = d.getVar('BBMULTICONFIG') or ""
24 if mcname not in multiconfigs:
25 raise bb.parse.SkipRecipe("multiconfig target %s not enabled" % mcname)
26}
27
28BBCLASSEXTEND = "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 0000000000..3c36f6e5d2
--- /dev/null
+++ b/meta/lib/oeqa/selftest/cases/multiconfig.py
@@ -0,0 +1,43 @@
1import os
2from oeqa.selftest.case import OESelftestTestCase
3from oeqa.utils.commands import bitbake
4import oeqa.utils.ftools as ftools
5
6class MultiConfig(OESelftestTestCase):
7
8 def test_multiconfig(self):
9 """
10 Test that a simple multiconfig build works. This uses the mcextend class and the
11 multiconfig-image-packager test recipe to build a core-image-full-cmdline image which
12 contains a tiny core-image-minimal and a musl core-image-minimal, installed as packages.
13 """
14
15 config = """
16IMAGE_INSTALL_append_pn-core-image-full-cmdline = " multiconfig-image-packager-tiny multiconfig-image-packager-musl"
17BBMULTICONFIG = "tiny musl"
18"""
19 self.write_config(config)
20
21 muslconfig = """
22MACHINE = "qemux86-64"
23DISTRO = "poky"
24TCLIBC = "musl"
25TMPDIR = "${TOPDIR}/tmp-mc-musl"
26"""
27
28 tinyconfig = """
29MACHINE = "qemux86"
30DISTRO = "poky-tiny"
31TMPDIR = "${TOPDIR}/tmp-mc-tiny"
32"""
33
34 multiconfigdir = self.builddir + "/conf/multiconfig"
35 os.makedirs(multiconfigdir, exist_ok=True)
36 self.track_for_cleanup(multiconfigdir + "/musl.conf")
37 ftools.write_file(multiconfigdir + "/musl.conf", muslconfig)
38 self.track_for_cleanup(multiconfigdir + "/tiny.conf")
39 ftools.write_file(multiconfigdir + "/tiny.conf", tinyconfig)
40
41 # Build a core-image-minimal
42 bitbake('core-image-full-cmdline')
43