poky/bitbake/lib/layerindexlib/tests/cooker.py
Joshua Watt 75f87db413 bitbake: logging: Make bitbake logger compatible with python logger
The bitbake logger overrode the definition of the debug() logging call
to include a debug level, but this causes problems with code that may
be using standard python logging, since the extra argument is
interpreted differently.

Instead, change the bitbake loggers debug() call to match the python
logger call and add a debug2() and debug3() API to replace calls that
were logging to a different debug level.

[RP: Small fix to ensure bb.debug calls bbdebug()]
(Bitbake rev: f68682a79d83e6399eb403f30a1f113516575f51)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-10 23:48:16 +00:00

111 lines
4.1 KiB
Python

# Copyright (C) 2018 Wind River Systems, Inc.
#
# SPDX-License-Identifier: GPL-2.0-only
#
import os
import bb
import layerindexlib
from layerindexlib.tests.common import LayersTest
class LayerIndexCookerTest(LayersTest):
def setUp(self):
LayersTest.setUp(self)
# Note this is NOT a comprehensive test of cooker, as we can't easily
# configure the test data. But we can emulate the basics of the layer.conf
# files, so that is what we will do.
new_topdir = os.path.join(os.path.dirname(os.path.realpath(__file__)), "testdata")
new_bbpath = os.path.join(new_topdir, "build")
self.d.setVar('TOPDIR', new_topdir)
self.d.setVar('BBPATH', new_bbpath)
self.d = bb.parse.handle("%s/conf/bblayers.conf" % new_bbpath, self.d, True)
for layer in self.d.getVar('BBLAYERS').split():
self.d = bb.parse.handle("%s/conf/layer.conf" % layer, self.d, True)
self.layerindex = layerindexlib.LayerIndex(self.d)
self.layerindex.load_layerindex('cooker://', load=['layerDependencies'])
def test_layerindex_is_empty(self):
self.assertFalse(self.layerindex.is_empty(), msg="Layerindex is not empty!")
def test_dependency_resolution(self):
# Verify depth first searching...
(dependencies, invalidnames) = self.layerindex.find_dependencies(names=['meta-python'])
first = True
for deplayerbranch in dependencies:
layerBranch = dependencies[deplayerbranch][0]
layerDeps = dependencies[deplayerbranch][1:]
if not first:
continue
first = False
# Top of the deps should be openembedded-core, since everything depends on it.
self.assertEqual(layerBranch.layer.name, "openembedded-core", msg='Top dependency not openembedded-core')
# meta-python should cause an openembedded-core dependency, if not assert!
for dep in layerDeps:
if dep.layer.name == 'meta-python':
break
else:
self.assertTrue(False, msg='meta-python was not found')
# Only check the first element...
break
else:
if first:
# Empty list, this is bad.
self.assertTrue(False, msg='Empty list of dependencies')
# Last dep should be the requested item
layerBranch = dependencies[deplayerbranch][0]
self.assertEqual(layerBranch.layer.name, "meta-python", msg='Last dependency not meta-python')
def test_find_collection(self):
def _check(collection, expected):
self.logger.debug("Looking for collection %s..." % collection)
result = self.layerindex.find_collection(collection)
if expected:
self.assertIsNotNone(result, msg="Did not find %s when it shouldn't be there" % collection)
else:
self.assertIsNone(result, msg="Found %s when it should be there" % collection)
tests = [ ('core', True),
('openembedded-core', False),
('networking-layer', True),
('meta-python', True),
('openembedded-layer', True),
('notpresent', False) ]
for collection,result in tests:
_check(collection, result)
def test_find_layerbranch(self):
def _check(name, expected):
self.logger.debug("Looking for layerbranch %s..." % name)
result = self.layerindex.find_layerbranch(name)
if expected:
self.assertIsNotNone(result, msg="Did not find %s when it shouldn't be there" % collection)
else:
self.assertIsNone(result, msg="Found %s when it should be there" % collection)
tests = [ ('openembedded-core', True),
('core', False),
('networking-layer', True),
('meta-python', True),
('openembedded-layer', True),
('notpresent', False) ]
for collection,result in tests:
_check(collection, result)