summaryrefslogtreecommitdiffstats
path: root/bitbake
diff options
context:
space:
mode:
authorJoshua Watt <JPEWhacker@gmail.com>2020-06-09 13:34:15 -0500
committerRichard Purdie <richard.purdie@linuxfoundation.org>2020-06-12 17:03:15 +0100
commit26ae42ded7f2a59f7ccc8e8e8b763b4613a2bbdb (patch)
treeea4a0ba8f2237be0d8bc509af2a1dad36565c47a /bitbake
parentbf69f30b4b0c478b4bb832f630d7e72b4389d2e1 (diff)
downloadpoky-26ae42ded7f2a59f7ccc8e8e8b763b4613a2bbdb.tar.gz
bitbake: bitbake: tests: Add mcdepends test
Adds a test to validate that mcdepends causes the dependent tasks to build, and also that a change in the dependent task causes the dependee task to re-execute. (Bitbake rev: f2062c41693f9f684bdaf2df0a2a08b7f3871026) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
-rw-r--r--bitbake/lib/bb/tests/runqueue-tests/recipes/f1.bb1
-rw-r--r--bitbake/lib/bb/tests/runqueue.py30
2 files changed, 31 insertions, 0 deletions
diff --git a/bitbake/lib/bb/tests/runqueue-tests/recipes/f1.bb b/bitbake/lib/bb/tests/runqueue-tests/recipes/f1.bb
new file mode 100644
index 0000000000..d45a4cff52
--- /dev/null
+++ b/bitbake/lib/bb/tests/runqueue-tests/recipes/f1.bb
@@ -0,0 +1 @@
do_install[mcdepends] = "mc:mc1:mc2:a1:do_build"
diff --git a/bitbake/lib/bb/tests/runqueue.py b/bitbake/lib/bb/tests/runqueue.py
index 091b5e41e0..d3d62b98f9 100644
--- a/bitbake/lib/bb/tests/runqueue.py
+++ b/bitbake/lib/bb/tests/runqueue.py
@@ -248,6 +248,36 @@ class RunQueueTests(unittest.TestCase):
248 cmd = ["bitbake", "mc:mc1:fails-mc2", "mc:mc2:fails-mc1"] 248 cmd = ["bitbake", "mc:mc1:fails-mc2", "mc:mc2:fails-mc1"]
249 self.run_bitbakecmd(cmd, tempdir, "", extraenv=extraenv) 249 self.run_bitbakecmd(cmd, tempdir, "", extraenv=extraenv)
250 250
251 def test_multiconfig_mcdepends(self):
252 with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir:
253 extraenv = {
254 "BBMULTICONFIG" : "mc1 mc2",
255 "BB_SIGNATURE_HANDLER" : "TestMulticonfigDepends",
256 "EXTRA_BBFILES": "${COREBASE}/recipes/fails-mc/*.bb",
257 }
258 tasks = self.run_bitbakecmd(["bitbake", "mc:mc1:f1"], tempdir, "", extraenv=extraenv, cleanup=True)
259 expected = ["mc1:f1:%s" % t for t in self.alltasks] + \
260 ["mc2:a1:%s" % t for t in self.alltasks]
261 self.assertEqual(set(tasks), set(expected))
262
263 # A rebuild does nothing
264 tasks = self.run_bitbakecmd(["bitbake", "mc:mc1:f1"], tempdir, "", extraenv=extraenv, cleanup=True)
265 self.assertEqual(set(tasks), set())
266
267 # Test that a signature change in the dependent task causes
268 # mcdepends to rebuild
269 tasks = self.run_bitbakecmd(["bitbake", "mc:mc2:a1", "-c", "compile", "-f"], tempdir, "", extraenv=extraenv, cleanup=True)
270 expected = ["mc2:a1:compile"]
271 self.assertEqual(set(tasks), set(expected))
272
273 rerun_tasks = self.alltasks[:]
274 for x in ("fetch", "unpack", "patch", "prepare_recipe_sysroot", "configure", "compile"):
275 rerun_tasks.remove(x)
276 tasks = self.run_bitbakecmd(["bitbake", "mc:mc1:f1"], tempdir, "", extraenv=extraenv, cleanup=True)
277 expected = ["mc1:f1:%s" % t for t in rerun_tasks] + \
278 ["mc2:a1:%s" % t for t in rerun_tasks]
279 self.assertEqual(set(tasks), set(expected))
280
251 @unittest.skipIf(sys.version_info < (3, 5, 0), 'Python 3.5 or later required') 281 @unittest.skipIf(sys.version_info < (3, 5, 0), 'Python 3.5 or later required')
252 def test_hashserv_single(self): 282 def test_hashserv_single(self):
253 with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir: 283 with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir: