summaryrefslogtreecommitdiffstats
path: root/bitbake
diff options
context:
space:
mode:
authorChris Laplante via bitbake-devel <bitbake-devel@lists.openembedded.org>2020-01-17 14:39:55 -0500
committerRichard Purdie <richard.purdie@linuxfoundation.org>2020-01-19 13:31:05 +0000
commit0b9b850537bbcb8be37a091cb15cd4b644b31116 (patch)
tree7dd70d021f5e1cb4512eb5241f3f01d0906711a1 /bitbake
parentd5b3b76a71e69297dd4697d6a420f79752da5e5a (diff)
downloadpoky-0b9b850537bbcb8be37a091cb15cd4b644b31116.tar.gz
bitbake: tests/utils: add tests for bb.utils.get_referenced_vars
(Bitbake rev: 346e74e5d751aadf7881de70b5ab6670dfc463ce) Signed-off-by: Chris Laplante <chris.laplante@agilent.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
-rw-r--r--bitbake/lib/bb/tests/utils.py44
1 files changed, 44 insertions, 0 deletions
diff --git a/bitbake/lib/bb/tests/utils.py b/bitbake/lib/bb/tests/utils.py
index 5c910b4b8e..a7ff33db52 100644
--- a/bitbake/lib/bb/tests/utils.py
+++ b/bitbake/lib/bb/tests/utils.py
@@ -622,3 +622,47 @@ BBLAYERS += "/home/user/otherpath/layer6"
622 ['/home/user/otherpath/layer6', '/home/user/path/layer3'], ['/home/user/path/layer1', '/home/user/path/layer4', '/home/user/path/layer7'], 622 ['/home/user/otherpath/layer6', '/home/user/path/layer3'], ['/home/user/path/layer1', '/home/user/path/layer4', '/home/user/path/layer7'],
623 ['/home/user/path/layer3'], 623 ['/home/user/path/layer3'],
624 ['/home/user/path/layer7']) 624 ['/home/user/path/layer7'])
625
626
627class GetReferencedVars(unittest.TestCase):
628 def setUp(self):
629 self.d = bb.data.init()
630
631 def check_referenced(self, expression, expected_layers):
632 vars = bb.utils.get_referenced_vars(expression, self.d)
633
634 # Do the easy check first - is every variable accounted for?
635 expected_vars = set.union(set(), *expected_layers)
636 got_vars = set(vars)
637 self.assertSetEqual(got_vars, expected_vars)
638
639 # Now test the order of the layers
640 start = 0
641 for i, expected_layer in enumerate(expected_layers):
642 got_layer = set(vars[start:len(expected_layer)+start])
643 start += len(expected_layer)
644 self.assertSetEqual(got_layer, expected_layer)
645
646 def test_no_vars(self):
647 self.check_referenced("", [])
648 self.check_referenced(" ", [])
649 self.check_referenced(" no vars here! ", [])
650
651 def test_single_layer(self):
652 self.check_referenced("${VAR}", [{"VAR"}])
653 self.check_referenced("${VAR} ${VAR}", [{"VAR"}])
654
655 def test_two_layer(self):
656 self.d.setVar("VAR", "${B}")
657 self.check_referenced("${VAR}", [{"VAR"}, {"B"}])
658 self.check_referenced("${@d.getVar('VAR')}", [{"VAR"}, {"B"}])
659
660 def test_more_complicated(self):
661 self.d["SRC_URI"] = "${QT_GIT}/${QT_MODULE}.git;name=${QT_MODULE};${QT_MODULE_BRANCH_PARAM};protocol=${QT_GIT_PROTOCOL}"
662 self.d["QT_GIT"] = "git://code.qt.io/${QT_GIT_PROJECT}"
663 self.d["QT_MODULE_BRANCH_PARAM"] = "branch=${QT_MODULE_BRANCH}"
664 self.d["QT_MODULE"] = "${BPN}"
665 self.d["BPN"] = "something to do with ${PN} and ${SPECIAL_PKGSUFFIX}"
666
667 layers = [{"SRC_URI"}, {"QT_GIT", "QT_MODULE", "QT_MODULE_BRANCH_PARAM", "QT_GIT_PROTOCOL"}, {"QT_GIT_PROJECT", "QT_MODULE_BRANCH", "BPN"}, {"PN", "SPECIAL_PKGSUFFIX"}]
668 self.check_referenced("${SRC_URI}", layers)