diff options
Diffstat (limited to 'poky/bitbake/lib/bb/tests')
-rw-r--r-- | poky/bitbake/lib/bb/tests/codeparser.py | 6 | ||||
-rw-r--r-- | poky/bitbake/lib/bb/tests/data.py | 12 | ||||
-rw-r--r-- | poky/bitbake/lib/bb/tests/fetch.py | 1 | ||||
-rw-r--r-- | poky/bitbake/lib/bb/tests/siggen.py | 77 |
4 files changed, 26 insertions, 70 deletions
diff --git a/poky/bitbake/lib/bb/tests/codeparser.py b/poky/bitbake/lib/bb/tests/codeparser.py index 7f5d59ca74..a64c614b0b 100644 --- a/poky/bitbake/lib/bb/tests/codeparser.py +++ b/poky/bitbake/lib/bb/tests/codeparser.py @@ -44,6 +44,7 @@ class VariableReferenceTest(ReferenceTest): def parseExpression(self, exp): parsedvar = self.d.expandWithRefs(exp, None) self.references = parsedvar.references + self.execs = parsedvar.execs def test_simple_reference(self): self.setEmptyVars(["FOO"]) @@ -61,6 +62,11 @@ class VariableReferenceTest(ReferenceTest): self.parseExpression("${@d.getVar('BAR') + 'foo'}") self.assertReferences(set(["BAR"])) + def test_python_exec_reference(self): + self.parseExpression("${@eval('3 * 5')}") + self.assertReferences(set()) + self.assertExecs(set(["eval"])) + class ShellReferenceTest(ReferenceTest): def parseExpression(self, exp): diff --git a/poky/bitbake/lib/bb/tests/data.py b/poky/bitbake/lib/bb/tests/data.py index 8c043b709d..98e430ce2a 100644 --- a/poky/bitbake/lib/bb/tests/data.py +++ b/poky/bitbake/lib/bb/tests/data.py @@ -77,6 +77,18 @@ class DataExpansions(unittest.TestCase): val = self.d.expand("${@d.getVar('foo') + ' ${bar}'}") self.assertEqual(str(val), "value_of_foo value_of_bar") + def test_python_snippet_function_reference(self): + self.d.setVar("TESTVAL", "testvalue") + self.d.setVar("testfunc", 'd.getVar("TESTVAL")') + context = bb.utils.get_context() + context["testfunc"] = lambda d: d.getVar("TESTVAL") + val = self.d.expand("${@testfunc(d)}") + self.assertEqual(str(val), "testvalue") + + def test_python_snippet_builtin_metadata(self): + self.d.setVar("eval", "INVALID") + self.d.expand("${@eval('3')}") + def test_python_unexpanded(self): self.d.setVar("bar", "${unsetvar}") val = self.d.expand("${@d.getVar('foo') + ' ${bar}'}") diff --git a/poky/bitbake/lib/bb/tests/fetch.py b/poky/bitbake/lib/bb/tests/fetch.py index 20593764fd..c5d15e9fd8 100644 --- a/poky/bitbake/lib/bb/tests/fetch.py +++ b/poky/bitbake/lib/bb/tests/fetch.py @@ -1342,6 +1342,7 @@ class URLHandle(unittest.TestCase): "cvs://anoncvs:anonymous@cvs.handhelds.org/cvs;tag=V0-99-81;module=familiar/dist/ipkg" : ('cvs', 'cvs.handhelds.org', '/cvs', 'anoncvs', 'anonymous', collections.OrderedDict([('tag', 'V0-99-81'), ('module', 'familiar/dist/ipkg')])), "git://git.openembedded.org/bitbake;branch=@foo;protocol=https" : ('git', 'git.openembedded.org', '/bitbake', '', '', {'branch': '@foo', 'protocol' : 'https'}), "file://somelocation;someparam=1": ('file', '', 'somelocation', '', '', {'someparam': '1'}), + "https://somesite.com/somerepo.git;user=anyUser:idtoken=1234" : ('https', 'somesite.com', '/somerepo.git', '', '', {'user': 'anyUser:idtoken=1234'}), r'git://s.o-me_ONE:!#$%^&*()-_={}[]\|:?,.<>~`@git.openembedded.org/bitbake;branch=main;protocol=https': ('git', 'git.openembedded.org', '/bitbake', 's.o-me_ONE', r'!#$%^&*()-_={}[]\|:?,.<>~`', {'branch': 'main', 'protocol' : 'https'}), } # we require a pathname to encodeurl but users can still pass such urls to diff --git a/poky/bitbake/lib/bb/tests/siggen.py b/poky/bitbake/lib/bb/tests/siggen.py index c21ab4e4fb..0dc67e6cc2 100644 --- a/poky/bitbake/lib/bb/tests/siggen.py +++ b/poky/bitbake/lib/bb/tests/siggen.py @@ -17,75 +17,12 @@ import bb.siggen class SiggenTest(unittest.TestCase): - def test_clean_basepath_simple_target_basepath(self): - basepath = '/full/path/to/poky/meta/recipes-whatever/helloworld/helloworld_1.2.3.bb:do_sometask' - expected_cleaned = 'helloworld/helloworld_1.2.3.bb:do_sometask' + def test_build_pnid(self): + tests = { + ('', 'helloworld', 'do_sometask') : 'helloworld:do_sometask', + ('XX', 'helloworld', 'do_sometask') : 'mc:XX:helloworld:do_sometask', + } - actual_cleaned = bb.siggen.clean_basepath(basepath) + for t in tests: + self.assertEqual(bb.siggen.build_pnid(*t), tests[t]) - self.assertEqual(actual_cleaned, expected_cleaned) - - def test_clean_basepath_basic_virtual_basepath(self): - basepath = 'virtual:something:/full/path/to/poky/meta/recipes-whatever/helloworld/helloworld_1.2.3.bb:do_sometask' - expected_cleaned = 'helloworld/helloworld_1.2.3.bb:do_sometask:virtual:something' - - actual_cleaned = bb.siggen.clean_basepath(basepath) - - self.assertEqual(actual_cleaned, expected_cleaned) - - def test_clean_basepath_mc_basepath(self): - basepath = 'mc:somemachine:/full/path/to/poky/meta/recipes-whatever/helloworld/helloworld_1.2.3.bb:do_sometask' - expected_cleaned = 'helloworld/helloworld_1.2.3.bb:do_sometask:mc:somemachine' - - actual_cleaned = bb.siggen.clean_basepath(basepath) - - self.assertEqual(actual_cleaned, expected_cleaned) - - def test_clean_basepath_virtual_long_prefix_basepath(self): - basepath = 'virtual:something:A:B:C:/full/path/to/poky/meta/recipes-whatever/helloworld/helloworld_1.2.3.bb:do_sometask' - expected_cleaned = 'helloworld/helloworld_1.2.3.bb:do_sometask:virtual:something:A:B:C' - - actual_cleaned = bb.siggen.clean_basepath(basepath) - - self.assertEqual(actual_cleaned, expected_cleaned) - - def test_clean_basepath_mc_virtual_basepath(self): - basepath = 'mc:somemachine:virtual:something:/full/path/to/poky/meta/recipes-whatever/helloworld/helloworld_1.2.3.bb:do_sometask' - expected_cleaned = 'helloworld/helloworld_1.2.3.bb:do_sometask:virtual:something:mc:somemachine' - - actual_cleaned = bb.siggen.clean_basepath(basepath) - - self.assertEqual(actual_cleaned, expected_cleaned) - - def test_clean_basepath_mc_virtual_long_prefix_basepath(self): - basepath = 'mc:X:virtual:something:C:B:A:/full/path/to/poky/meta/recipes-whatever/helloworld/helloworld_1.2.3.bb:do_sometask' - expected_cleaned = 'helloworld/helloworld_1.2.3.bb:do_sometask:virtual:something:C:B:A:mc:X' - - actual_cleaned = bb.siggen.clean_basepath(basepath) - - self.assertEqual(actual_cleaned, expected_cleaned) - - - # def test_clean_basepath_performance(self): - # input_basepaths = [ - # 'mc:X:/full/path/to/poky/meta/recipes-whatever/helloworld/helloworld_1.2.3.bb:do_sometask', - # 'mc:X:virtual:something:C:B:A:/full/path/to/poky/meta/recipes-whatever/helloworld/helloworld_1.2.3.bb:do_sometask', - # 'virtual:something:C:B:A:/different/path/to/poky/meta/recipes-whatever/helloworld/helloworld_1.2.3.bb:do_sometask', - # 'virtual:something:A:/full/path/to/poky/meta/recipes-whatever/helloworld/helloworld_1.2.3.bb:do_sometask', - # '/this/is/most/common/input/recipes-whatever/helloworld/helloworld_1.2.3.bb:do_sometask', - # '/and/should/be/tested/with/recipes-whatever/helloworld/helloworld_1.2.3.bb:do_sometask', - # '/more/weight/recipes-whatever/helloworld/helloworld_1.2.3.bb:do_sometask', - # ] - - # time_start = time.time() - - # i = 2000000 - # while i >= 0: - # for basepath in input_basepaths: - # bb.siggen.clean_basepath(basepath) - # i -= 1 - - # elapsed = time.time() - time_start - # print('{} ({}s)'.format(self.id(), round(elapsed, 3))) - - # self.assertTrue(False) |