summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--scripts/lib/checklayer/__init__.py14
-rwxr-xr-xscripts/yocto-check-layer9
2 files changed, 22 insertions, 1 deletions
diff --git a/scripts/lib/checklayer/__init__.py b/scripts/lib/checklayer/__init__.py
index f625d59896..fe545607bb 100644
--- a/scripts/lib/checklayer/__init__.py
+++ b/scripts/lib/checklayer/__init__.py
@@ -229,6 +229,20 @@ def add_layers(bblayersconf, layers, logger):
229 f.write("\nBBLAYERS += \"%s\"\n" % path) 229 f.write("\nBBLAYERS += \"%s\"\n" % path)
230 return True 230 return True
231 231
232def check_bblayers(bblayersconf, layer_path, logger):
233 '''
234 If layer_path found in BBLAYERS return True
235 '''
236 import bb.parse
237 import bb.data
238
239 ldata = bb.parse.handle(bblayersconf, bb.data.init(), include=True)
240 for bblayer in (ldata.getVar('BBLAYERS') or '').split():
241 if os.path.normpath(bblayer) == os.path.normpath(layer_path):
242 return True
243
244 return False
245
232def check_command(error_msg, cmd, cwd=None): 246def check_command(error_msg, cmd, cwd=None):
233 ''' 247 '''
234 Run a command under a shell, capture stdout and stderr in a single stream, 248 Run a command under a shell, capture stdout and stderr in a single stream,
diff --git a/scripts/yocto-check-layer b/scripts/yocto-check-layer
index ca6c79bc8d..b7c83c8b54 100755
--- a/scripts/yocto-check-layer
+++ b/scripts/yocto-check-layer
@@ -24,7 +24,7 @@ import scriptpath
24scriptpath.add_oe_lib_path() 24scriptpath.add_oe_lib_path()
25scriptpath.add_bitbake_lib_path() 25scriptpath.add_bitbake_lib_path()
26 26
27from checklayer import LayerType, detect_layers, add_layers, add_layer_dependencies, get_signatures 27from checklayer import LayerType, detect_layers, add_layers, add_layer_dependencies, get_signatures, check_bblayers
28from oeqa.utils.commands import get_bb_vars 28from oeqa.utils.commands import get_bb_vars
29 29
30PROGNAME = 'yocto-check-layer' 30PROGNAME = 'yocto-check-layer'
@@ -138,6 +138,13 @@ def main():
138 layer['type'] == LayerType.ERROR_BSP_DISTRO: 138 layer['type'] == LayerType.ERROR_BSP_DISTRO:
139 continue 139 continue
140 140
141 if check_bblayers(bblayersconf, layer['path'], logger):
142 logger.info("%s already in %s. To capture initial signatures, layer under test should not present "
143 "in BBLAYERS. Please remove %s from BBLAYERS." % (layer['name'], bblayersconf, layer['name']))
144 results[layer['name']] = None
145 results_status[layer['name']] = 'SKIPPED (Layer under test should not present in BBLAYERS)'
146 continue
147
141 logger.info('') 148 logger.info('')
142 logger.info("Setting up for %s(%s), %s" % (layer['name'], layer['type'], 149 logger.info("Setting up for %s(%s), %s" % (layer['name'], layer['type'],
143 layer['path'])) 150 layer['path']))