[OE-core] [PATCH v4 6/8] yocto-compat-layer: add --additional-layers
Patrick Ohly
patrick.ohly at intel.com
Tue Apr 11 18:38:41 UTC 2017
The new --addditional-layers parameter takes a list of layer
directories and adds them to the build configuration before starting
testing. The resulting base configuration then more closely matches
a full distro.
This is relevant in two cases:
1. some layers like meta-freescale dynamically enable more recipes
in their layer.conf depending on which other layers are active,
so testing only against OE-core might miss problems which occur
only when also some other layers are active
2. BSP layers might be fine in combination with machines from
OE-core, but might break in combination with some other machines
As before, test_signatures only warns about signature changes
introduced by the layer which is under testing, and not those changes
introduced by the additional layers.
Signed-off-by: Patrick Ohly <patrick.ohly at intel.com>
---
scripts/yocto-compat-layer.py | 24 +++++++++++++++++++++++-
1 file changed, 23 insertions(+), 1 deletion(-)
diff --git a/scripts/yocto-compat-layer.py b/scripts/yocto-compat-layer.py
index 2ebddb6..daf3a6a 100755
--- a/scripts/yocto-compat-layer.py
+++ b/scripts/yocto-compat-layer.py
@@ -49,6 +49,8 @@ def main():
help='File to output log (optional)', action='store')
parser.add_argument('--dependency', nargs="+",
help='Layers to process for dependencies', action='store')
+ parser.add_argument('--additional-layers', nargs="+",
+ help='List of additional layers to add during testing', action='store')
parser.add_argument('-n', '--no-auto', help='Disable auto layer discovery',
action='store_true')
parser.add_argument('-d', '--debug', help='Enable debug output',
@@ -82,6 +84,10 @@ def main():
if not layers:
logger.error("Fail to detect layers")
return 1
+ if args.additional_layers:
+ additional_layers = detect_layers(args.additional_layers, args.no_auto)
+ else:
+ additional_layers = []
if args.dependency:
dep_layers = detect_layers(args.dependency, args.no_auto)
dep_layers = dep_layers + layers
@@ -128,13 +134,29 @@ def main():
shutil.copyfile(bblayersconf + '.backup', bblayersconf)
- if not add_layer_dependencies(bblayersconf, layer, dep_layers, logger):
+ missing_dependencies = not add_layer_dependencies(bblayersconf, layer, dep_layers, logger)
+ if not missing_dependencies:
+ for additional_layer in additional_layers:
+ if not add_layer_dependencies(bblayersconf, additional_layer, dep_layers, logger):
+ missing_dependencies = True
+ break
+ if not add_layer_dependencies(bblayersconf, layer, dep_layers, logger) or \
+ any(map(lambda additional_layer: not add_layer_dependencies(bblayersconf, additional_layer, dep_layers, logger),
+ additional_layers)):
logger.info('Skipping %s due to missing dependencies.' % layer['name'])
results[layer['name']] = None
results_status[layer['name']] = 'SKIPPED (Missing dependencies)'
layers_tested = layers_tested + 1
continue
+ if any(map(lambda additional_layer: not add_layer(bblayersconf, additional_layer, dep_layers, logger),
+ additional_layers)):
+ logger.info('Skipping %s due to missing additional layers.' % layer['name'])
+ results[layer['name']] = None
+ results_status[layer['name']] = 'SKIPPED (Missing additional layers)'
+ layers_tested = layers_tested + 1
+ continue
+
logger.info('Getting initial bitbake variables ...')
td['bbvars'] = get_bb_vars()
logger.info('Getting initial signatures ...')
--
git-series 0.9.1
More information about the Openembedded-core
mailing list