diff options
-rw-r--r-- | bitbake/lib/bb/data_smart.py | 3 | ||||
-rw-r--r-- | bitbake/lib/bb/tests/data.py | 7 |
2 files changed, 9 insertions, 1 deletions
diff --git a/bitbake/lib/bb/data_smart.py b/bitbake/lib/bb/data_smart.py index 3d773b1..cf8919c 100644 --- a/bitbake/lib/bb/data_smart.py +++ b/bitbake/lib/bb/data_smart.py @@ -616,7 +616,8 @@ class DataSmart(MutableMapping): cachename = var + "[" + flag + "]" value = self.expand(value, cachename) if value and flag == "_content" and local_var is not None and "_removeactive" in local_var: - filtered = filter(lambda v: v not in local_var["_removeactive"], + removes = [self.expand(r) for r in local_var["_removeactive"]] + filtered = filter(lambda v: v not in removes, value.split(" ")) value = " ".join(filtered) if expand: diff --git a/bitbake/lib/bb/tests/data.py b/bitbake/lib/bb/tests/data.py index 944a906..9b09ff4 100644 --- a/bitbake/lib/bb/tests/data.py +++ b/bitbake/lib/bb/tests/data.py @@ -259,6 +259,13 @@ class TestConcatOverride(unittest.TestCase): bb.data.update_data(self.d) self.assertEqual(self.d.getVar("TEST", True), "") + def test_remove_expansion(self): + self.d.setVar("BAR", "Z") + self.d.setVar("TEST", "${BAR}/X Y") + self.d.setVar("TEST_remove", "${BAR}/X") + bb.data.update_data(self.d) + self.assertEqual(self.d.getVar("TEST", True), "Y") + class TestOverrides(unittest.TestCase): def setUp(self): self.d = bb.data.init() |