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 | ||