From a68fb2be37b88a0131236cbe5d20433cf12209a4 Mon Sep 17 00:00:00 2001 From: Yoann Congal Date: Sat, 11 Jan 2025 15:13:50 +0100 Subject: bitbake: tests/parse: add test for ?= and ??= operators for variable flags MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Run the test with: $ bitbake-selftest bb.tests.parse.ParseTest.test_parse_defaulttest . ---------------------------------------------------------------------- Ran 1 test in 0.001s OK This is a test case for [YOCTO #15685] (Bitbake rev: d12c80125d810df54379cc4f019a95ab9064ad2c) Signed-off-by: Yoann Congal Reviewed-by: Ghislain Mangé Signed-off-by: Richard Purdie --- bitbake/lib/bb/tests/parse.py | 53 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) (limited to 'bitbake/lib/bb/tests/parse.py') diff --git a/bitbake/lib/bb/tests/parse.py b/bitbake/lib/bb/tests/parse.py index 56eb66be9f..935c85ac7c 100644 --- a/bitbake/lib/bb/tests/parse.py +++ b/bitbake/lib/bb/tests/parse.py @@ -75,6 +75,59 @@ unset B[flag] self.assertEqual(d.getVarFlag("A","flag"), None) self.assertEqual(d.getVar("B"), "2") + defaulttest = """ +A = "set value" +A ??= "default value" + +A[flag_set_vs_question] = "set flag" +A[flag_set_vs_question] ?= "question flag" + +A[flag_set_vs_default] = "set flag" +A[flag_set_vs_default] ??= "default flag" + +A[flag_question] ?= "question flag" + +A[flag_default] ??= "default flag" + +A[flag_question_vs_default] ?= "question flag" +A[flag_question_vs_default] ??= "default flag" + +A[flag_default_vs_question] ??= "default flag" +A[flag_default_vs_question] ?= "question flag" + +A[flag_set_question_default] = "set flag" +A[flag_set_question_default] ?= "question flag" +A[flag_set_question_default] ??= "default flag" + +A[flag_set_default_question] = "set flag" +A[flag_set_default_question] ??= "default flag" +A[flag_set_default_question] ?= "question flag" + +A[flag_set_twice] = "set flag first" +A[flag_set_twice] = "set flag second" + +A[flag_question_twice] ?= "question flag first" +A[flag_question_twice] ?= "question flag second" + +A[flag_default_twice] ??= "default flag first" +A[flag_default_twice] ??= "default flag second" +""" + def test_parse_defaulttest(self): + f = self.parsehelper(self.defaulttest) + d = bb.parse.handle(f.name, self.d)[''] + self.assertEqual(d.getVar("A"), "set value") + self.assertEqual(d.getVarFlag("A","flag_set_vs_question"), "set flag") + self.assertEqual(d.getVarFlag("A","flag_set_vs_default"), "set flag") + self.assertEqual(d.getVarFlag("A","flag_question"), "question flag") + self.assertEqual(d.getVarFlag("A","flag_default"), "default flag") + self.assertEqual(d.getVarFlag("A","flag_question_vs_default"), "question flag") + self.assertEqual(d.getVarFlag("A","flag_default_vs_question"), "question flag") + self.assertEqual(d.getVarFlag("A","flag_set_question_default"), "set flag") + self.assertEqual(d.getVarFlag("A","flag_set_default_question"), "set flag") + self.assertEqual(d.getVarFlag("A","flag_set_twice"), "set flag second") + self.assertEqual(d.getVarFlag("A","flag_question_twice"), "question flag first") + self.assertEqual(d.getVarFlag("A","flag_default_twice"), "default flag second") + exporttest = """ A = "a" export B = "b" -- cgit v1.2.3-54-g00ecf