diff options
author | Patrick Ohly <patrick.ohly@intel.com> | 2017-04-11 20:38:41 +0200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-04-12 15:02:14 +0100 |
commit | 0e8528f7c6201e8a5d2799123241c0e1b85081ce (patch) | |
tree | 3a5250ec547646023d89d370a5b5095422c362fd /scripts | |
parent | 67f9a8759f47680dbf349797801b2a1e8d149377 (diff) | |
download | openembedded-core-0e8528f7c6201e8a5d2799123241c0e1b85081ce.tar.gz openembedded-core-0e8528f7c6201e8a5d2799123241c0e1b85081ce.tar.bz2 openembedded-core-0e8528f7c6201e8a5d2799123241c0e1b85081ce.zip |
yocto-compat-layer: add --additional-layers
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@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/yocto-compat-layer.py | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/scripts/yocto-compat-layer.py b/scripts/yocto-compat-layer.py index 2ebddb66d0..daf3a6a32a 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 ...') |