diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-06-18 11:33:12 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-06-21 09:34:40 +0100 |
commit | fae0a9a4397e2878c2642a38ce82ec18fe60bc5a (patch) | |
tree | e3348bd9d0b9ffb414839af13ab68490f4332f7b /meta/classes | |
parent | 83d791089fb220553d4df144f56ebea61d9e0713 (diff) | |
download | poky-fae0a9a4397e2878c2642a38ce82ec18fe60bc5a.tar.gz |
image/testimage: Rework auto image test execution
The TEST_IMAGE interface has never particularly worked and image testing currently
gets configured manually.
This reworks the interface to better serve the needs of its users, replacing it
with TESTIMAGE_AUTO.
This does away with the need for the separate class due to better bitbake APIs for
changing tasks.
TESTIMAGE_AUTO will automatically boot under qemu any image that is built. It
also adds in dependencies so that any SDK for which testing is requested will
automatically be built first.
The code in bitbake.conf was error prone (e.g. testsdk wasn't considered), this
improves it to standardise on IMAGE_CLASSES as the standard configuration mechanism.
(From OE-Core rev: b34d44f3dfea8254826a46701a4fe3769a900434)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes')
-rw-r--r-- | meta/classes/image.bbclass | 1 | ||||
-rw-r--r-- | meta/classes/testimage-auto.bbclass | 23 | ||||
-rw-r--r-- | meta/classes/testimage.bbclass | 10 | ||||
-rw-r--r-- | meta/classes/testsdk.bbclass | 5 |
4 files changed, 14 insertions, 25 deletions
diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index f056ca5970..8ef06c0fb0 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass | |||
@@ -13,7 +13,6 @@ IMGCLASSES += "${@['populate_sdk_base', 'populate_sdk_ext']['linux' in d.getVar( | |||
13 | IMGCLASSES += "${@bb.utils.contains_any('IMAGE_FSTYPES', 'live iso hddimg', 'image-live', '', d)}" | 13 | IMGCLASSES += "${@bb.utils.contains_any('IMAGE_FSTYPES', 'live iso hddimg', 'image-live', '', d)}" |
14 | IMGCLASSES += "${@bb.utils.contains('IMAGE_FSTYPES', 'container', 'image-container', '', d)}" | 14 | IMGCLASSES += "${@bb.utils.contains('IMAGE_FSTYPES', 'container', 'image-container', '', d)}" |
15 | IMGCLASSES += "image_types_wic" | 15 | IMGCLASSES += "image_types_wic" |
16 | IMGCLASSES += "${@oe.utils.conditional('TEST_IMAGE', '1', 'testimage-auto', '', d)}" | ||
17 | IMGCLASSES += "rootfs-postcommands" | 16 | IMGCLASSES += "rootfs-postcommands" |
18 | inherit ${IMGCLASSES} | 17 | inherit ${IMGCLASSES} |
19 | 18 | ||
diff --git a/meta/classes/testimage-auto.bbclass b/meta/classes/testimage-auto.bbclass deleted file mode 100644 index e0a22b773c..0000000000 --- a/meta/classes/testimage-auto.bbclass +++ /dev/null | |||
@@ -1,23 +0,0 @@ | |||
1 | # Copyright (C) 2013 Intel Corporation | ||
2 | # | ||
3 | # Released under the MIT license (see COPYING.MIT) | ||
4 | |||
5 | |||
6 | # Run tests automatically on an image after the image is constructed | ||
7 | # (as opposed to testimage.bbclass alone where tests must be called | ||
8 | # manually using bitbake -c testimage <image>). | ||
9 | # | ||
10 | # NOTE: to use this class, simply set TEST_IMAGE = "1" - no need to | ||
11 | # inherit it since that will be done in image.bbclass when this variable | ||
12 | # has been set. | ||
13 | # | ||
14 | # See testimage.bbclass for the test implementation. | ||
15 | |||
16 | inherit testimage | ||
17 | |||
18 | python do_testimage_auto() { | ||
19 | testimage_main(d) | ||
20 | } | ||
21 | addtask testimage_auto before do_build after do_image_complete | ||
22 | do_testimage_auto[depends] += "${TESTIMAGEDEPENDS}" | ||
23 | do_testimage_auto[lockfiles] += "${TESTIMAGELOCK}" | ||
diff --git a/meta/classes/testimage.bbclass b/meta/classes/testimage.bbclass index c17a7c604b..eb2181309e 100644 --- a/meta/classes/testimage.bbclass +++ b/meta/classes/testimage.bbclass | |||
@@ -10,6 +10,11 @@ | |||
10 | # - first add IMAGE_CLASSES += "testimage" in local.conf | 10 | # - first add IMAGE_CLASSES += "testimage" in local.conf |
11 | # - build a qemu core-image-sato | 11 | # - build a qemu core-image-sato |
12 | # - then bitbake core-image-sato -c testimage. That will run a standard suite of tests. | 12 | # - then bitbake core-image-sato -c testimage. That will run a standard suite of tests. |
13 | # | ||
14 | # The tests can be run automatically each time an image is built if you set | ||
15 | # TESTIMAGE_AUTO = "1" | ||
16 | |||
17 | TESTIMAGE_AUTO ??= "0" | ||
13 | 18 | ||
14 | # You can set (or append to) TEST_SUITES in local.conf to select the tests | 19 | # You can set (or append to) TEST_SUITES in local.conf to select the tests |
15 | # which you want to run for your target. | 20 | # which you want to run for your target. |
@@ -382,4 +387,7 @@ def package_extraction(d, test_suites): | |||
382 | 387 | ||
383 | testimage_main[vardepsexclude] += "BB_ORIGENV DATETIME" | 388 | testimage_main[vardepsexclude] += "BB_ORIGENV DATETIME" |
384 | 389 | ||
385 | inherit testsdk | 390 | python () { |
391 | if oe.types.boolean(d.getVar("TESTIMAGE_AUTO") or "False"): | ||
392 | bb.build.addtask("testimage", "do_build", "do_image_complete", d) | ||
393 | } | ||
diff --git a/meta/classes/testsdk.bbclass b/meta/classes/testsdk.bbclass index 2e43343643..dba6b0708a 100644 --- a/meta/classes/testsdk.bbclass +++ b/meta/classes/testsdk.bbclass | |||
@@ -194,3 +194,8 @@ python do_testsdkext() { | |||
194 | addtask testsdkext | 194 | addtask testsdkext |
195 | do_testsdkext[nostamp] = "1" | 195 | do_testsdkext[nostamp] = "1" |
196 | 196 | ||
197 | python () { | ||
198 | if oe.types.boolean(d.getVar("TESTIMAGE_AUTO") or "False"): | ||
199 | bb.build.addtask("testsdk", None, "do_populate_sdk", d) | ||
200 | bb.build.addtask("testsdkext", None, "do_populate_sdk_ext", d) | ||
201 | } | ||