From 2ae32dae580105156a151fa3dc7cbfe8673636e5 Mon Sep 17 00:00:00 2001 From: Louis Rannou Date: Thu, 13 Feb 2025 16:05:43 +0100 Subject: [PATCH] bitbake: bitbake: tests/data: add tests for variable flags Check default flags are correctly returned by getVarFlags and check all flags are returned when internalflags is True. Check delVarFlags also removes default value. Check all flags are removed after delVar. Run the test with: $ bitbake-selftest -v bb.tests.data.TestFlags test_delflag (bb.tests.data.TestFlags.test_delflag) ... ok test_delvar (bb.tests.data.TestFlags.test_delvar) ... ok test_setflag (bb.tests.data.TestFlags.test_setflag) ... ok ---------------------------------------------------------------------- Ran 3 tests in 0.000s OK This is a test case for [YOCTO #15685] (Bitbake rev: ff8cae735cf489373af1aac7ee233d7b82d483d3) Signed-off-by: Louis Rannou Signed-off-by: Richard Purdie --- bitbake/lib/bb/tests/data.py | 47 ++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/bitbake/lib/bb/tests/data.py b/bitbake/lib/bb/tests/data.py index cbc7c1ecd4..a895f6a58e 100644 --- a/bitbake/lib/bb/tests/data.py +++ b/bitbake/lib/bb/tests/data.py @@ -450,17 +450,64 @@ class TestFlags(unittest.TestCase): self.d = bb.data.init() self.d.setVar("foo", "value of foo") self.d.setVarFlag("foo", "flag1", "value of flag1") + self.d.setVarFlag("foo", "_defaultval_flag_flag1", "default of flag1") self.d.setVarFlag("foo", "flag2", "value of flag2") + self.d.setVarFlag("foo", "_defaultval_flag_flag2", "default of flag2") + self.d.setVarFlag("foo", "flag3", "value of flag3") + self.d.setVarFlag("foo", "_defaultval_flag_flagnovalue", "default of flagnovalue") def test_setflag(self): self.assertEqual(self.d.getVarFlag("foo", "flag1", False), "value of flag1") self.assertEqual(self.d.getVarFlag("foo", "flag2", False), "value of flag2") + self.assertDictEqual( + self.d.getVarFlags("foo"), + { + "flag1": "value of flag1", + "flag2": "value of flag2", + "flag3": "value of flag3", + "flagnovalue": "default of flagnovalue", + } + ) + self.assertDictEqual( + self.d.getVarFlags("foo", internalflags=True), + { + "_content": "value of foo", + "flag1": "value of flag1", + "flag2": "value of flag2", + "flag3": "value of flag3", + "_defaultval_flag_flag1": "default of flag1", + "_defaultval_flag_flag2": "default of flag2", + "_defaultval_flag_flagnovalue": "default of flagnovalue", + } + ) def test_delflag(self): self.d.delVarFlag("foo", "flag2") + self.d.delVarFlag("foo", "flag3") self.assertEqual(self.d.getVarFlag("foo", "flag1", False), "value of flag1") self.assertEqual(self.d.getVarFlag("foo", "flag2", False), None) + self.assertDictEqual( + self.d.getVarFlags("foo"), + { + "flag1": "value of flag1", + "flagnovalue": "default of flagnovalue", + } + ) + self.assertDictEqual( + self.d.getVarFlags("foo", internalflags=True), + { + "_content": "value of foo", + "flag1": "value of flag1", + "_defaultval_flag_flag1": "default of flag1", + "_defaultval_flag_flagnovalue": "default of flagnovalue", + } + ) + def test_delvar(self): + self.d.delVar("foo") + self.assertEqual(self.d.getVarFlag("foo", "flag1", False), None) + self.assertEqual(self.d.getVarFlag("foo", "flag2", False), None) + self.assertEqual(self.d.getVarFlags("foo", internalflags=True), None) class Contains(unittest.TestCase): def setUp(self):