diff options
author | Patrick Williams <patrick@stwcx.xyz> | 2015-09-15 22:41:29 +0300 |
---|---|---|
committer | Patrick Williams <patrick@stwcx.xyz> | 2015-09-15 22:41:29 +0300 |
commit | 21f9b84b4b729fbd7acbd465e7a3f726e4d20f91 (patch) | |
tree | eb2d091d427ca0813b445509d59cc8e27e8ad25f /yocto-poky/meta/lib/oeqa/selftest/layerappend.py | |
parent | 101cef31e2bf54c678501155cd2106251acbd076 (diff) | |
parent | c124f4f2e04dca16a428a76c89677328bc7bf908 (diff) | |
download | openbmc-21f9b84b4b729fbd7acbd465e7a3f726e4d20f91.tar.xz |
Merge commit 'c124f4f2e04dca16a428a76c89677328bc7bf908' as 'yocto-poky'
Diffstat (limited to 'yocto-poky/meta/lib/oeqa/selftest/layerappend.py')
-rw-r--r-- | yocto-poky/meta/lib/oeqa/selftest/layerappend.py | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/yocto-poky/meta/lib/oeqa/selftest/layerappend.py b/yocto-poky/meta/lib/oeqa/selftest/layerappend.py new file mode 100644 index 000000000..a82a6c8b9 --- /dev/null +++ b/yocto-poky/meta/lib/oeqa/selftest/layerappend.py @@ -0,0 +1,96 @@ +import unittest +import os +import logging +import re + +from oeqa.selftest.base import oeSelfTest +from oeqa.selftest.buildhistory import BuildhistoryBase +from oeqa.utils.commands import runCmd, bitbake, get_bb_var +import oeqa.utils.ftools as ftools +from oeqa.utils.decorators import testcase + +class LayerAppendTests(oeSelfTest): + layerconf = """ +# We have a conf and classes directory, append to BBPATH +BBPATH .= ":${LAYERDIR}" + +# We have a recipes directory, add to BBFILES +BBFILES += "${LAYERDIR}/recipes*/*.bb ${LAYERDIR}/recipes*/*.bbappend" + +BBFILE_COLLECTIONS += "meta-layerINT" +BBFILE_PATTERN_meta-layerINT := "^${LAYERDIR}/" +BBFILE_PRIORITY_meta-layerINT = "6" +""" + recipe = """ +LICENSE="CLOSED" +INHIBIT_DEFAULT_DEPS = "1" + +python do_build() { + bb.plain('Building ...') +} +addtask build +""" + append = """ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +SRC_URI_append = " file://appendtest.txt" + +sysroot_stage_all_append() { + install -m 644 ${WORKDIR}/appendtest.txt ${SYSROOT_DESTDIR}/ +} + +""" + + append2 = """ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +SRC_URI_append += "file://appendtest.txt" +""" + layerappend = "BBLAYERS += \"COREBASE/meta-layertest0 COREBASE/meta-layertest1 COREBASE/meta-layertest2\"" + + def tearDownLocal(self): + ftools.remove_from_file(self.builddir + "/conf/bblayers.conf", self.layerappend.replace("COREBASE", self.builddir + "/..")) + + @testcase(1196) + def test_layer_appends(self): + corebase = get_bb_var("COREBASE") + stagingdir = get_bb_var("STAGING_DIR_TARGET") + for l in ["0", "1", "2"]: + layer = os.path.join(corebase, "meta-layertest" + l) + self.assertFalse(os.path.exists(layer)) + os.mkdir(layer) + os.mkdir(layer + "/conf") + with open(layer + "/conf/layer.conf", "w") as f: + f.write(self.layerconf.replace("INT", l)) + os.mkdir(layer + "/recipes-test") + if l == "0": + with open(layer + "/recipes-test/layerappendtest.bb", "w") as f: + f.write(self.recipe) + elif l == "1": + with open(layer + "/recipes-test/layerappendtest.bbappend", "w") as f: + f.write(self.append) + os.mkdir(layer + "/recipes-test/layerappendtest") + with open(layer + "/recipes-test/layerappendtest/appendtest.txt", "w") as f: + f.write("Layer 1 test") + elif l == "2": + with open(layer + "/recipes-test/layerappendtest.bbappend", "w") as f: + f.write(self.append2) + os.mkdir(layer + "/recipes-test/layerappendtest") + with open(layer + "/recipes-test/layerappendtest/appendtest.txt", "w") as f: + f.write("Layer 2 test") + self.track_for_cleanup(layer) + ftools.append_file(self.builddir + "/conf/bblayers.conf", self.layerappend.replace("COREBASE", self.builddir + "/..")) + bitbake("layerappendtest") + data = ftools.read_file(stagingdir + "/appendtest.txt") + self.assertEqual(data, "Layer 2 test") + os.remove(corebase + "/meta-layertest2/recipes-test/layerappendtest/appendtest.txt") + bitbake("layerappendtest") + data = ftools.read_file(stagingdir + "/appendtest.txt") + self.assertEqual(data, "Layer 1 test") + with open(corebase + "/meta-layertest2/recipes-test/layerappendtest/appendtest.txt", "w") as f: + f.write("Layer 2 test") + bitbake("layerappendtest") + data = ftools.read_file(stagingdir + "/appendtest.txt") + self.assertEqual(data, "Layer 2 test") + + |