diff options
author | Chris Laplante via bitbake-devel <bitbake-devel@lists.openembedded.org> | 2020-01-17 14:39:55 -0500 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2020-01-19 13:31:05 +0000 |
commit | 0b9b850537bbcb8be37a091cb15cd4b644b31116 (patch) | |
tree | 7dd70d021f5e1cb4512eb5241f3f01d0906711a1 /bitbake | |
parent | d5b3b76a71e69297dd4697d6a420f79752da5e5a (diff) | |
download | poky-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.py | 44 |
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 | |||
627 | class 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) | ||