diff options
author | Paul Eggleton <paul.eggleton@linux.intel.com> | 2015-08-17 11:10:13 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-08-19 18:05:39 +0100 |
commit | 677e8c8e97ec377c5919943a9ca7257787b6ab81 (patch) | |
tree | 1af3878ca71d1058e84a65bcd5dabfa5b9b18be9 /meta/lib | |
parent | 48bb9eca790c354eb6505b02ce940398a6efa8a1 (diff) | |
download | poky-677e8c8e97ec377c5919943a9ca7257787b6ab81.tar.gz |
devtool: fix handling of BBCLASSEXTENDed recipes
If a recipe is BBCLASSEXTENDed (e.g. to -native), its PN value and the
name of the bbappend will be different; we were assuming them to be the
same when reading in the workspace, leading to us seeing the base recipe
name everywhere afterwards.
Also add a test so we ensure this doesn't regress in future.
Fixes [YOCTO #8157].
(From OE-Core rev: b63fca00c2e24ad0c8b8b3c492d93ee4372fa92d)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib')
-rw-r--r-- | meta/lib/oeqa/selftest/devtool.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/meta/lib/oeqa/selftest/devtool.py b/meta/lib/oeqa/selftest/devtool.py index b59db15be4..947d8eecf1 100644 --- a/meta/lib/oeqa/selftest/devtool.py +++ b/meta/lib/oeqa/selftest/devtool.py | |||
@@ -367,6 +367,36 @@ class DevtoolTests(DevtoolBase): | |||
367 | self.assertNotEqual(result.status, 0, 'devtool modify on %s should have failed. devtool output: %s' % (testrecipe, result.output)) | 367 | self.assertNotEqual(result.status, 0, 'devtool modify on %s should have failed. devtool output: %s' % (testrecipe, result.output)) |
368 | self.assertIn('ERROR: ', result.output, 'devtool modify on %s should have given an ERROR' % testrecipe) | 368 | self.assertIn('ERROR: ', result.output, 'devtool modify on %s should have given an ERROR' % testrecipe) |
369 | 369 | ||
370 | def test_devtool_modify_native(self): | ||
371 | # Check preconditions | ||
372 | workspacedir = os.path.join(self.builddir, 'workspace') | ||
373 | self.assertTrue(not os.path.exists(workspacedir), 'This test cannot be run with a workspace directory under the build directory') | ||
374 | # Try modifying some recipes | ||
375 | tempdir = tempfile.mkdtemp(prefix='devtoolqa') | ||
376 | self.track_for_cleanup(tempdir) | ||
377 | self.track_for_cleanup(workspacedir) | ||
378 | self.add_command_to_tearDown('bitbake-layers remove-layer */workspace') | ||
379 | |||
380 | bbclassextended = False | ||
381 | inheritnative = False | ||
382 | testrecipes = 'mtools-native apt-native desktop-file-utils-native'.split() | ||
383 | for testrecipe in testrecipes: | ||
384 | checkextend = 'native' in (get_bb_var('BBCLASSEXTEND', testrecipe) or '').split() | ||
385 | if not bbclassextended: | ||
386 | bbclassextended = checkextend | ||
387 | if not inheritnative: | ||
388 | inheritnative = not checkextend | ||
389 | result = runCmd('devtool modify %s -x %s' % (testrecipe, os.path.join(tempdir, testrecipe))) | ||
390 | self.assertNotIn('ERROR: ', result.output, 'ERROR in devtool modify output: %s' % result.output) | ||
391 | result = runCmd('devtool build %s' % testrecipe) | ||
392 | self.assertNotIn('ERROR: ', result.output, 'ERROR in devtool build output: %s' % result.output) | ||
393 | result = runCmd('devtool reset %s' % testrecipe) | ||
394 | self.assertNotIn('ERROR: ', result.output, 'ERROR in devtool reset output: %s' % result.output) | ||
395 | |||
396 | self.assertTrue(bbclassextended, 'None of these recipes are BBCLASSEXTENDed to native - need to adjust testrecipes list: %s' % ', '.join(testrecipes)) | ||
397 | self.assertTrue(inheritnative, 'None of these recipes do "inherit native" - need to adjust testrecipes list: %s' % ', '.join(testrecipes)) | ||
398 | |||
399 | |||
370 | @testcase(1165) | 400 | @testcase(1165) |
371 | def test_devtool_modify_git(self): | 401 | def test_devtool_modify_git(self): |
372 | # Check preconditions | 402 | # Check preconditions |