From 828462d2c39fe6f4d188b5eb129f7b2969e1ee18 Mon Sep 17 00:00:00 2001 From: Joshua Watt Date: Sat, 30 Jun 2018 11:16:37 -0500 Subject: oe-selftest: Add bitbake-layer create-layer test Adds a test that creates a layer, adds it to bblayers.conf, then ensure that it appears properly in bitbake-layers show-layers. Signed-off-by: Joshua Watt Signed-off-by: Richard Purdie --- meta/lib/oeqa/selftest/cases/bblayers.py | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/meta/lib/oeqa/selftest/cases/bblayers.py b/meta/lib/oeqa/selftest/cases/bblayers.py index 90a2249b08..3448ae1999 100644 --- a/meta/lib/oeqa/selftest/cases/bblayers.py +++ b/meta/lib/oeqa/selftest/cases/bblayers.py @@ -2,7 +2,7 @@ import os import re import oeqa.utils.ftools as ftools -from oeqa.utils.commands import runCmd, get_bb_var +from oeqa.utils.commands import runCmd, get_bb_var, get_bb_vars from oeqa.selftest.case import OESelftestTestCase from oeqa.core.decorator.oeid import OETestID @@ -85,6 +85,31 @@ class BitbakeLayers(OESelftestTestCase): self.assertNotEqual(result.status, 0, 'bitbake-layers show-recipes -i nonexistentclass should have failed') self.assertIn('ERROR:', result.output) + def test_bitbakelayers_createlayer(self): + priority = 10 + layername = 'test-bitbakelayer-layercreate' + layerpath = os.path.join(get_bb_var('COREBASE'), layername) + self.assertFalse(os.path.exists(layerpath), '%s should not exist at this point in time' % layerpath) + result = runCmd('bitbake-layers create-layer --priority=%d %s' % (priority, layerpath)) + self.track_for_cleanup(layerpath) + result = runCmd('bitbake-layers add-layer %s' % layerpath) + self.add_command_to_tearDown('bitbake-layers remove-layer %s' % layerpath) + result = runCmd('bitbake-layers show-layers') + find_in_contents = re.search(re.escape(layername) + r'\s+' + re.escape(layerpath) + r'\s+' + re.escape(str(priority)), result.output) + self.assertTrue(find_in_contents, "%s not found in layers\n%s" % (layername, result.output)) + + layervars = ['BBFILE_PRIORITY', 'BBFILE_PATTERN', 'LAYERDEPENDS', 'LAYERSERIES_COMPAT'] + bb_vars = get_bb_vars(['BBFILE_COLLECTIONS'] + ['%s_%s' % (v, layername) for v in layervars]) + + for v in layervars: + varname = '%s_%s' % (v, layername) + self.assertIsNotNone(bb_vars[varname], "%s not found" % varname) + + find_in_contents = re.search(r'(^|\s)' + re.escape(layername) + r'($|\s)', bb_vars['BBFILE_COLLECTIONS']) + self.assertTrue(find_in_contents, "%s not in BBFILE_COLLECTIONS" % layername) + + self.assertEqual(bb_vars['BBFILE_PRIORITY_%s' % layername], str(priority), 'BBFILE_PRIORITY_%s != %d' % (layername, priority)) + def get_recipe_basename(self, recipe): recipe_file = "" result = runCmd("bitbake-layers show-recipes -f %s" % recipe) -- cgit 1.2.3-korg