diff options
Diffstat (limited to 'bitbake/lib/bb/tests')
5 files changed, 46 insertions, 3 deletions
diff --git a/bitbake/lib/bb/tests/runqueue-tests/classes/base.bbclass b/bitbake/lib/bb/tests/runqueue-tests/classes/base.bbclass index e174c02dd6..cf38d09224 100644 --- a/bitbake/lib/bb/tests/runqueue-tests/classes/base.bbclass +++ b/bitbake/lib/bb/tests/runqueue-tests/classes/base.bbclass | |||
| @@ -4,7 +4,9 @@ SSTATEVALID ??= "" | |||
| 4 | def stamptask(d): | 4 | def stamptask(d): |
| 5 | import time | 5 | import time |
| 6 | 6 | ||
| 7 | thistask = d.expand("${PN}:${BB_CURRENTTASK}") | 7 | thistask = d.expand("${PN}:${BB_CURRENTTASK}") |
| 8 | if d.getVar("BB_CURRENT_MC") != "default": | ||
| 9 | thistask = d.expand("${BB_CURRENT_MC}:${PN}:${BB_CURRENTTASK}") | ||
| 8 | if thistask in d.getVar("SLOWTASKS").split(): | 10 | if thistask in d.getVar("SLOWTASKS").split(): |
| 9 | bb.note("Slowing task %s" % thistask) | 11 | bb.note("Slowing task %s" % thistask) |
| 10 | time.sleep(0.5) | 12 | time.sleep(0.5) |
| @@ -13,48 +15,63 @@ def stamptask(d): | |||
| 13 | f.write(thistask + "\n") | 15 | f.write(thistask + "\n") |
| 14 | 16 | ||
| 15 | python do_fetch() { | 17 | python do_fetch() { |
| 18 | # fetch | ||
| 16 | stamptask(d) | 19 | stamptask(d) |
| 17 | } | 20 | } |
| 18 | python do_unpack() { | 21 | python do_unpack() { |
| 22 | # unpack | ||
| 19 | stamptask(d) | 23 | stamptask(d) |
| 20 | } | 24 | } |
| 21 | python do_patch() { | 25 | python do_patch() { |
| 26 | # patch | ||
| 22 | stamptask(d) | 27 | stamptask(d) |
| 23 | } | 28 | } |
| 24 | python do_populate_lic() { | 29 | python do_populate_lic() { |
| 30 | # populate_lic | ||
| 25 | stamptask(d) | 31 | stamptask(d) |
| 26 | } | 32 | } |
| 27 | python do_prepare_recipe_sysroot() { | 33 | python do_prepare_recipe_sysroot() { |
| 34 | # prepare_recipe_sysroot | ||
| 28 | stamptask(d) | 35 | stamptask(d) |
| 29 | } | 36 | } |
| 30 | python do_configure() { | 37 | python do_configure() { |
| 38 | # configure | ||
| 31 | stamptask(d) | 39 | stamptask(d) |
| 32 | } | 40 | } |
| 33 | python do_compile() { | 41 | python do_compile() { |
| 42 | # compile | ||
| 34 | stamptask(d) | 43 | stamptask(d) |
| 35 | } | 44 | } |
| 36 | python do_install() { | 45 | python do_install() { |
| 46 | # install | ||
| 37 | stamptask(d) | 47 | stamptask(d) |
| 38 | } | 48 | } |
| 39 | python do_populate_sysroot() { | 49 | python do_populate_sysroot() { |
| 50 | # populate_sysroot | ||
| 40 | stamptask(d) | 51 | stamptask(d) |
| 41 | } | 52 | } |
| 42 | python do_package() { | 53 | python do_package() { |
| 54 | # package | ||
| 43 | stamptask(d) | 55 | stamptask(d) |
| 44 | } | 56 | } |
| 45 | python do_package_write_ipk() { | 57 | python do_package_write_ipk() { |
| 58 | # package_write_ipk | ||
| 46 | stamptask(d) | 59 | stamptask(d) |
| 47 | } | 60 | } |
| 48 | python do_package_write_rpm() { | 61 | python do_package_write_rpm() { |
| 62 | # package_write_rpm | ||
| 49 | stamptask(d) | 63 | stamptask(d) |
| 50 | } | 64 | } |
| 51 | python do_packagedata() { | 65 | python do_packagedata() { |
| 66 | # packagedata | ||
| 52 | stamptask(d) | 67 | stamptask(d) |
| 53 | } | 68 | } |
| 54 | python do_package_qa() { | 69 | python do_package_qa() { |
| 70 | # package_qa | ||
| 55 | stamptask(d) | 71 | stamptask(d) |
| 56 | } | 72 | } |
| 57 | python do_build() { | 73 | python do_build() { |
| 74 | # build | ||
| 58 | stamptask(d) | 75 | stamptask(d) |
| 59 | } | 76 | } |
| 60 | do_prepare_recipe_sysroot[deptask] = "do_populate_sysroot" | 77 | do_prepare_recipe_sysroot[deptask] = "do_populate_sysroot" |
diff --git a/bitbake/lib/bb/tests/runqueue-tests/conf/bitbake.conf b/bitbake/lib/bb/tests/runqueue-tests/conf/bitbake.conf index 8c7b754dab..96ee1cd5ec 100644 --- a/bitbake/lib/bb/tests/runqueue-tests/conf/bitbake.conf +++ b/bitbake/lib/bb/tests/runqueue-tests/conf/bitbake.conf | |||
| @@ -6,6 +6,11 @@ PROVIDES = "${PN}" | |||
| 6 | PN = "${@bb.parse.vars_from_file(d.getVar('FILE', False),d)[0]}" | 6 | PN = "${@bb.parse.vars_from_file(d.getVar('FILE', False),d)[0]}" |
| 7 | PF = "${BB_CURRENT_MC}:${PN}" | 7 | PF = "${BB_CURRENT_MC}:${PN}" |
| 8 | export PATH | 8 | export PATH |
| 9 | STAMP = "${TOPDIR}/stamps/${PN}" | 9 | TMPDIR ??= "${TOPDIR}" |
| 10 | T = "${TOPDIR}/workdir/${PN}/temp" | 10 | STAMP = "${TMPDIR}/stamps/${PN}" |
| 11 | T = "${TMPDIR}/workdir/${PN}/temp" | ||
| 11 | BB_NUMBER_THREADS = "4" | 12 | BB_NUMBER_THREADS = "4" |
| 13 | |||
| 14 | BB_HASHBASE_WHITELIST = "BB_CURRENT_MC" | ||
| 15 | |||
| 16 | include conf/multiconfig/${BB_CURRENT_MC}.conf | ||
diff --git a/bitbake/lib/bb/tests/runqueue-tests/conf/multiconfig/mc1.conf b/bitbake/lib/bb/tests/runqueue-tests/conf/multiconfig/mc1.conf new file mode 100644 index 0000000000..ecf23e1c73 --- /dev/null +++ b/bitbake/lib/bb/tests/runqueue-tests/conf/multiconfig/mc1.conf | |||
| @@ -0,0 +1 @@ | |||
| TMPDIR = "${TOPDIR}/mc1/" | |||
diff --git a/bitbake/lib/bb/tests/runqueue-tests/conf/multiconfig/mc2.conf b/bitbake/lib/bb/tests/runqueue-tests/conf/multiconfig/mc2.conf new file mode 100644 index 0000000000..eef338e4cc --- /dev/null +++ b/bitbake/lib/bb/tests/runqueue-tests/conf/multiconfig/mc2.conf | |||
| @@ -0,0 +1 @@ | |||
| TMPDIR = "${TOPDIR}/mc2/" | |||
diff --git a/bitbake/lib/bb/tests/runqueue.py b/bitbake/lib/bb/tests/runqueue.py index 4a65b5b6e7..f0cea6483f 100644 --- a/bitbake/lib/bb/tests/runqueue.py +++ b/bitbake/lib/bb/tests/runqueue.py | |||
| @@ -198,3 +198,22 @@ class RunQueueTests(unittest.TestCase): | |||
| 198 | 'b1:packagedata_setscene', 'b1:package_qa_setscene', 'b1:populate_sysroot_setscene'] | 198 | 'b1:packagedata_setscene', 'b1:package_qa_setscene', 'b1:populate_sysroot_setscene'] |
| 199 | self.assertEqual(set(tasks), set(expected)) | 199 | self.assertEqual(set(tasks), set(expected)) |
| 200 | 200 | ||
| 201 | def test_multiconfig_setscene_optimise(self): | ||
| 202 | with tempfile.TemporaryDirectory(prefix="runqueuetest") as tempdir: | ||
| 203 | extraenv = { | ||
| 204 | "BBMULTICONFIG" : "mc1 mc2", | ||
| 205 | "BB_SIGNATURE_HANDLER" : "basic" | ||
| 206 | } | ||
| 207 | cmd = ["bitbake", "b1", "mc:mc1:b1", "mc:mc2:b1"] | ||
| 208 | setscenetasks = ['package_write_ipk_setscene', 'package_write_rpm_setscene', 'packagedata_setscene', | ||
| 209 | 'populate_sysroot_setscene', 'package_qa_setscene'] | ||
| 210 | sstatevalid = "" | ||
| 211 | tasks = self.run_bitbakecmd(cmd, tempdir, sstatevalid, extraenv=extraenv) | ||
| 212 | expected = ['a1:' + x for x in self.alltasks] + ['b1:' + x for x in self.alltasks] + \ | ||
| 213 | ['mc1:b1:' + x for x in setscenetasks] + ['mc1:a1:' + x for x in setscenetasks] + \ | ||
| 214 | ['mc2:b1:' + x for x in setscenetasks] + ['mc2:a1:' + x for x in setscenetasks] + \ | ||
| 215 | ['mc1:b1:build', 'mc2:b1:build'] | ||
| 216 | for x in ['mc1:a1:package_qa_setscene', 'mc2:a1:package_qa_setscene', 'a1:build', 'a1:package_qa']: | ||
| 217 | expected.remove(x) | ||
| 218 | self.assertEqual(set(tasks), set(expected)) | ||
| 219 | |||
