diff options
| author | Joshua Watt <JPEWhacker@gmail.com> | 2020-06-09 13:34:15 -0500 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2020-06-12 17:03:15 +0100 |
| commit | 26ae42ded7f2a59f7ccc8e8e8b763b4613a2bbdb (patch) | |
| tree | ea4a0ba8f2237be0d8bc509af2a1dad36565c47a | |
| parent | bf69f30b4b0c478b4bb832f630d7e72b4389d2e1 (diff) | |
| download | poky-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>
| -rw-r--r-- | bitbake/lib/bb/tests/runqueue-tests/recipes/f1.bb | 1 | ||||
| -rw-r--r-- | bitbake/lib/bb/tests/runqueue.py | 30 |
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: |
