summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bitbake/lib/bb/data.py1
-rw-r--r--bitbake/lib/bb/tests/codeparser.py26
2 files changed, 27 insertions, 0 deletions
diff --git a/bitbake/lib/bb/data.py b/bitbake/lib/bb/data.py
index 3ee8f5e7db..505f42950f 100644
--- a/bitbake/lib/bb/data.py
+++ b/bitbake/lib/bb/data.py
@@ -285,6 +285,7 @@ def build_dependencies(key, keys, mod_funcs, shelldeps, varflagsexcl, ignored_va
285 value += "\n_remove of %s" % r 285 value += "\n_remove of %s" % r
286 deps |= r2.references 286 deps |= r2.references
287 deps = deps | (keys & r2.execs) 287 deps = deps | (keys & r2.execs)
288 value = handle_contains(value, r2.contains, exclusions, d)
288 return value 289 return value
289 290
290 deps = set() 291 deps = set()
diff --git a/bitbake/lib/bb/tests/codeparser.py b/bitbake/lib/bb/tests/codeparser.py
index a64c614b0b..b6f2b77ee3 100644
--- a/bitbake/lib/bb/tests/codeparser.py
+++ b/bitbake/lib/bb/tests/codeparser.py
@@ -436,6 +436,32 @@ esac
436 self.assertEqual(deps, set(["TESTVAR2"])) 436 self.assertEqual(deps, set(["TESTVAR2"]))
437 self.assertEqual(self.d.getVar('ANOTHERVAR').split(), ['testval3', 'anothervalue']) 437 self.assertEqual(self.d.getVar('ANOTHERVAR').split(), ['testval3', 'anothervalue'])
438 438
439 def test_contains_vardeps_override_operators(self):
440 # Check override operators handle dependencies correctly with the contains functionality
441 expr_plain = 'testval'
442 expr_prepend = '${@bb.utils.filter("TESTVAR1", "testval1", d)} '
443 expr_append = ' ${@bb.utils.filter("TESTVAR2", "testval2", d)}'
444 expr_remove = '${@bb.utils.contains("TESTVAR3", "no-testval", "testval", "", d)}'
445 # Check dependencies
446 self.d.setVar('ANOTHERVAR', expr_plain)
447 self.d.prependVar('ANOTHERVAR', expr_prepend)
448 self.d.appendVar('ANOTHERVAR', expr_append)
449 self.d.setVar('ANOTHERVAR:remove', expr_remove)
450 self.d.setVar('TESTVAR1', 'blah')
451 self.d.setVar('TESTVAR2', 'testval2')
452 self.d.setVar('TESTVAR3', 'no-testval')
453 deps, values = bb.data.build_dependencies("ANOTHERVAR", set(self.d.keys()), set(), set(), set(), set(), self.d, self.d)
454 self.assertEqual(sorted(values.splitlines()),
455 sorted([
456 expr_prepend + expr_plain + expr_append,
457 '_remove of ' + expr_remove,
458 'TESTVAR1{testval1} = Unset',
459 'TESTVAR2{testval2} = Set',
460 'TESTVAR3{no-testval} = Set',
461 ]))
462 # Check final value
463 self.assertEqual(self.d.getVar('ANOTHERVAR').split(), ['testval2'])
464
439 #Currently no wildcard support 465 #Currently no wildcard support
440 #def test_vardeps_wildcards(self): 466 #def test_vardeps_wildcards(self):
441 # self.d.setVar("oe_libinstall", "echo test") 467 # self.d.setVar("oe_libinstall", "echo test")