diff options
Diffstat (limited to 'meta/lib/oeqa/selftest/devtool.py')
| -rw-r--r-- | meta/lib/oeqa/selftest/devtool.py | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/meta/lib/oeqa/selftest/devtool.py b/meta/lib/oeqa/selftest/devtool.py index f4571c4ef1..ad10af5826 100644 --- a/meta/lib/oeqa/selftest/devtool.py +++ b/meta/lib/oeqa/selftest/devtool.py | |||
| @@ -8,7 +8,7 @@ import glob | |||
| 8 | 8 | ||
| 9 | import oeqa.utils.ftools as ftools | 9 | import oeqa.utils.ftools as ftools |
| 10 | from oeqa.selftest.base import oeSelfTest | 10 | from oeqa.selftest.base import oeSelfTest |
| 11 | from oeqa.utils.commands import runCmd, bitbake, get_bb_var | 11 | from oeqa.utils.commands import runCmd, bitbake, get_bb_var, create_temp_layer |
| 12 | from oeqa.utils.decorators import testcase | 12 | from oeqa.utils.decorators import testcase |
| 13 | 13 | ||
| 14 | class DevtoolBase(oeSelfTest): | 14 | class DevtoolBase(oeSelfTest): |
| @@ -31,6 +31,35 @@ class DevtoolBase(oeSelfTest): | |||
| 31 | for inherit in checkinherits: | 31 | for inherit in checkinherits: |
| 32 | self.assertIn(inherit, inherits, 'Missing inherit of %s' % inherit) | 32 | self.assertIn(inherit, inherits, 'Missing inherit of %s' % inherit) |
| 33 | 33 | ||
| 34 | def _check_bbappend(self, testrecipe, recipefile, appenddir): | ||
| 35 | result = runCmd('bitbake-layers show-appends', cwd=self.builddir) | ||
| 36 | resultlines = result.output.splitlines() | ||
| 37 | inrecipe = False | ||
| 38 | bbappends = [] | ||
| 39 | bbappendfile = None | ||
| 40 | for line in resultlines: | ||
| 41 | if inrecipe: | ||
| 42 | if line.startswith(' '): | ||
| 43 | bbappends.append(line.strip()) | ||
| 44 | else: | ||
| 45 | break | ||
| 46 | elif line == '%s:' % os.path.basename(recipefile): | ||
| 47 | inrecipe = True | ||
| 48 | self.assertLessEqual(len(bbappends), 2, '%s recipe is being bbappended by another layer - bbappends found:\n %s' % (testrecipe, '\n '.join(bbappends))) | ||
| 49 | for bbappend in bbappends: | ||
| 50 | if bbappend.startswith(appenddir): | ||
| 51 | bbappendfile = bbappend | ||
| 52 | break | ||
| 53 | else: | ||
| 54 | self.assertTrue(False, 'bbappend for recipe %s does not seem to be created in test layer' % testrecipe) | ||
| 55 | return bbappendfile | ||
| 56 | |||
| 57 | def _create_temp_layer(self, templayerdir, addlayer, templayername, priority=999, recipepathspec='recipes-*/*'): | ||
| 58 | create_temp_layer(templayerdir, templayername, priority, recipepathspec) | ||
| 59 | if addlayer: | ||
| 60 | self.add_command_to_tearDown('bitbake-layers remove-layer %s || true' % templayerdir) | ||
| 61 | result = runCmd('bitbake-layers add-layer %s' % templayerdir, cwd=self.builddir) | ||
| 62 | |||
| 34 | 63 | ||
| 35 | class DevtoolTests(DevtoolBase): | 64 | class DevtoolTests(DevtoolBase): |
| 36 | 65 | ||
