diff options
-rw-r--r-- | meta/lib/bbconfigbuild/configfragments.py | 7 | ||||
-rw-r--r-- | meta/lib/oeqa/selftest/cases/bblayers.py | 15 |
2 files changed, 15 insertions, 7 deletions
diff --git a/meta/lib/bbconfigbuild/configfragments.py b/meta/lib/bbconfigbuild/configfragments.py index 452e418c38..fec985b442 100644 --- a/meta/lib/bbconfigbuild/configfragments.py +++ b/meta/lib/bbconfigbuild/configfragments.py | |||
@@ -104,8 +104,11 @@ class ConfigFragmentsPlugin(LayerPlugin): | |||
104 | return True | 104 | return True |
105 | return False | 105 | return False |
106 | 106 | ||
107 | def fragment_prefix(self, fragmentname): | ||
108 | return fragmentname.split("/",1)[0] | ||
109 | |||
107 | def builtin_fragment_exists(self, fragmentname): | 110 | def builtin_fragment_exists(self, fragmentname): |
108 | fragment_prefix = fragmentname.split("/",1)[0] | 111 | fragment_prefix = self.fragment_prefix(fragmentname) |
109 | fragment_prefix_defs = set([f.split(':')[0] for f in self.tinfoil.config_data.getVar('OE_FRAGMENTS_BUILTIN').split()]) | 112 | fragment_prefix_defs = set([f.split(':')[0] for f in self.tinfoil.config_data.getVar('OE_FRAGMENTS_BUILTIN').split()]) |
110 | return fragment_prefix in fragment_prefix_defs | 113 | return fragment_prefix in fragment_prefix_defs |
111 | 114 | ||
@@ -128,6 +131,8 @@ class ConfigFragmentsPlugin(LayerPlugin): | |||
128 | if f in enabled_fragments: | 131 | if f in enabled_fragments: |
129 | print("Fragment {} already included in {}".format(f, args.confpath)) | 132 | print("Fragment {} already included in {}".format(f, args.confpath)) |
130 | else: | 133 | else: |
134 | # first filter out all built-in fragments with the same prefix as the one that is being enabled | ||
135 | enabled_fragments = [fragment for fragment in enabled_fragments if not(self.builtin_fragment_exists(fragment) and self.fragment_prefix(fragment) == self.fragment_prefix(f))] | ||
131 | enabled_fragments.append(f) | 136 | enabled_fragments.append(f) |
132 | return " ".join(enabled_fragments), None, 0, True | 137 | return " ".join(enabled_fragments), None, 0, True |
133 | 138 | ||
diff --git a/meta/lib/oeqa/selftest/cases/bblayers.py b/meta/lib/oeqa/selftest/cases/bblayers.py index d82c5aaf37..7eb176aa04 100644 --- a/meta/lib/oeqa/selftest/cases/bblayers.py +++ b/meta/lib/oeqa/selftest/cases/bblayers.py | |||
@@ -281,11 +281,11 @@ class BitbakeConfigBuild(OESelftestTestCase): | |||
281 | 2. Verify that SELFTEST_BUILTIN_FRAGMENT_VARIABLE is set after setting | 281 | 2. Verify that SELFTEST_BUILTIN_FRAGMENT_VARIABLE is set after setting |
282 | the fragment. | 282 | the fragment. |
283 | 3. Verify that SELFTEST_BUILTIN_FRAGMENT_VARIABLE is set after setting | 283 | 3. Verify that SELFTEST_BUILTIN_FRAGMENT_VARIABLE is set after setting |
284 | the fragment with another value that overrides the first one. | 284 | the fragment with another value that replaces the first one. |
285 | 4. Verify that SELFTEST_BUILTIN_FRAGMENT_VARIABLE is set to the previous | 285 | 4. Repeat steps 2 and 3 to verify that going back and forth between values |
286 | value after removing the second assignment (from step 3). | 286 | works. |
287 | 5. Verify that SELFTEST_BUILTIN_FRAGMENT_VARIABLE is not set after | 287 | 5. Verify that SELFTEST_BUILTIN_FRAGMENT_VARIABLE is not set after |
288 | removing the original assignment. | 288 | removing the final assignment. |
289 | """ | 289 | """ |
290 | self.assertEqual(get_bb_var('SELFTEST_BUILTIN_FRAGMENT_VARIABLE'), None) | 290 | self.assertEqual(get_bb_var('SELFTEST_BUILTIN_FRAGMENT_VARIABLE'), None) |
291 | 291 | ||
@@ -295,10 +295,13 @@ class BitbakeConfigBuild(OESelftestTestCase): | |||
295 | runCmd('bitbake-config-build enable-fragment selftest-fragment/someothervalue') | 295 | runCmd('bitbake-config-build enable-fragment selftest-fragment/someothervalue') |
296 | self.assertEqual(get_bb_var('SELFTEST_BUILTIN_FRAGMENT_VARIABLE'), 'someothervalue') | 296 | self.assertEqual(get_bb_var('SELFTEST_BUILTIN_FRAGMENT_VARIABLE'), 'someothervalue') |
297 | 297 | ||
298 | runCmd('bitbake-config-build disable-fragment selftest-fragment/someothervalue') | 298 | runCmd('bitbake-config-build enable-fragment selftest-fragment/somevalue') |
299 | self.assertEqual(get_bb_var('SELFTEST_BUILTIN_FRAGMENT_VARIABLE'), 'somevalue') | 299 | self.assertEqual(get_bb_var('SELFTEST_BUILTIN_FRAGMENT_VARIABLE'), 'somevalue') |
300 | 300 | ||
301 | runCmd('bitbake-config-build disable-fragment selftest-fragment/somevalue') | 301 | runCmd('bitbake-config-build enable-fragment selftest-fragment/someothervalue') |
302 | self.assertEqual(get_bb_var('SELFTEST_BUILTIN_FRAGMENT_VARIABLE'), 'someothervalue') | ||
303 | |||
304 | runCmd('bitbake-config-build disable-fragment selftest-fragment/someothervalue') | ||
302 | self.assertEqual(get_bb_var('SELFTEST_BUILTIN_FRAGMENT_VARIABLE'), None) | 305 | self.assertEqual(get_bb_var('SELFTEST_BUILTIN_FRAGMENT_VARIABLE'), None) |
303 | 306 | ||
304 | def test_show_fragment(self): | 307 | def test_show_fragment(self): |