diff options
author | Björn Stenberg <bjst@enea.com> | 2012-12-19 17:18:27 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-12-26 11:34:04 +0000 |
commit | 1d2c6833ae802553d6df3dbb249336c44cef5df5 (patch) | |
tree | bdcbf8c98fae2723949c625c195d59f21251e124 /meta | |
parent | 627e745d7bcda8821392f30c60da3cf2858d9e7f (diff) | |
download | poky-1d2c6833ae802553d6df3dbb249336c44cef5df5.tar.gz |
Add a new distro feature "ptest".
This patch creates a new distro feature "ptest", which creates -ptest
packages containing the test suite of the package for running on the
target. Test files are installed in /usr/lib/<pkg>/ptest.
The patch also includes a change to automake, splitting the "make check"
target into separate steps for building and running the tests.
(From OE-Core rev: 6f92e7f8891008dd3c89325d3fbe2da853372326)
Signed-off-by: Björn Stenberg <bjst@enea.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r-- | meta/classes/image.bbclass | 6 | ||||
-rw-r--r-- | meta/classes/packagegroup.bbclass | 2 | ||||
-rw-r--r-- | meta/classes/ptest.bbclass | 34 | ||||
-rw-r--r-- | meta/recipes-devtools/automake/automake/buildtest.patch | 33 | ||||
-rw-r--r-- | meta/recipes-devtools/automake/automake_1.12.5.bb | 3 |
5 files changed, 74 insertions, 4 deletions
diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index 8bf718a64b..d3a416d371 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass | |||
@@ -26,13 +26,13 @@ ROOTFS_BOOTSTRAP_INSTALL = "${@base_contains("IMAGE_FEATURES", "package-manageme | |||
26 | FEATURE_INSTALL = "${@' '.join(oe.packagegroup.required_packages(oe.data.typed_value('IMAGE_FEATURES', d), d))}" | 26 | FEATURE_INSTALL = "${@' '.join(oe.packagegroup.required_packages(oe.data.typed_value('IMAGE_FEATURES', d), d))}" |
27 | FEATURE_INSTALL_OPTIONAL = "${@' '.join(oe.packagegroup.optional_packages(oe.data.typed_value('IMAGE_FEATURES', d), d))}" | 27 | FEATURE_INSTALL_OPTIONAL = "${@' '.join(oe.packagegroup.optional_packages(oe.data.typed_value('IMAGE_FEATURES', d), d))}" |
28 | 28 | ||
29 | # packages to install from features, excluding dev/dbg/doc | 29 | # packages to install from features, excluding dev/dbg/doc/ptest |
30 | NORMAL_FEATURE_INSTALL = "${@' '.join(oe.packagegroup.required_packages(normal_groups(d), d))}" | 30 | NORMAL_FEATURE_INSTALL = "${@' '.join(oe.packagegroup.required_packages(normal_groups(d), d))}" |
31 | NORMAL_FEATURE_INSTALL_OPTIONAL = "${@' '.join(oe.packagegroup.optional_packages(normal_groups(d), d))}" | 31 | NORMAL_FEATURE_INSTALL_OPTIONAL = "${@' '.join(oe.packagegroup.optional_packages(normal_groups(d), d))}" |
32 | 32 | ||
33 | def normal_groups(d): | 33 | def normal_groups(d): |
34 | """Return all the IMAGE_FEATURES, with the exception of our special package groups""" | 34 | """Return all the IMAGE_FEATURES, with the exception of our special package groups""" |
35 | extras = set(['dev-pkgs', 'staticdev-pkgs', 'doc-pkgs', 'dbg-pkgs']) | 35 | extras = set(['dev-pkgs', 'staticdev-pkgs', 'doc-pkgs', 'dbg-pkgs', 'ptest-pkgs']) |
36 | features = set(oe.data.typed_value('IMAGE_FEATURES', d)) | 36 | features = set(oe.data.typed_value('IMAGE_FEATURES', d)) |
37 | return features.difference(extras) | 37 | return features.difference(extras) |
38 | 38 | ||
@@ -54,6 +54,8 @@ def complementary_globs(featurevar, d): | |||
54 | globs.append('*-doc') | 54 | globs.append('*-doc') |
55 | elif feature == 'dbg-pkgs': | 55 | elif feature == 'dbg-pkgs': |
56 | globs.append('*-dbg') | 56 | globs.append('*-dbg') |
57 | elif feature == 'ptest-pkgs': | ||
58 | globs.append('*-ptest') | ||
57 | return ' '.join(globs) | 59 | return ' '.join(globs) |
58 | 60 | ||
59 | IMAGE_INSTALL_COMPLEMENTARY = '${@complementary_globs("IMAGE_FEATURES", d)}' | 61 | IMAGE_INSTALL_COMPLEMENTARY = '${@complementary_globs("IMAGE_FEATURES", d)}' |
diff --git a/meta/classes/packagegroup.bbclass b/meta/classes/packagegroup.bbclass index fc67302a2c..af6ee5dff1 100644 --- a/meta/classes/packagegroup.bbclass +++ b/meta/classes/packagegroup.bbclass | |||
@@ -25,7 +25,7 @@ python () { | |||
25 | packages = d.getVar('PACKAGES', True).split() | 25 | packages = d.getVar('PACKAGES', True).split() |
26 | genpackages = [] | 26 | genpackages = [] |
27 | for pkg in packages: | 27 | for pkg in packages: |
28 | for postfix in ['-dbg', '-dev']: | 28 | for postfix in ['-dbg', '-dev', '-ptest']: |
29 | genpackages.append(pkg+postfix) | 29 | genpackages.append(pkg+postfix) |
30 | d.setVar('PACKAGES', ' '.join(packages+genpackages)) | 30 | d.setVar('PACKAGES', ' '.join(packages+genpackages)) |
31 | } | 31 | } |
diff --git a/meta/classes/ptest.bbclass b/meta/classes/ptest.bbclass new file mode 100644 index 0000000000..8bde489e90 --- /dev/null +++ b/meta/classes/ptest.bbclass | |||
@@ -0,0 +1,34 @@ | |||
1 | # Ptest packages are built indirectly by a distro_feature, | ||
2 | # no need for them to be a direct target of 'world' | ||
3 | EXCLUDE_FROM_WORLD = "1" | ||
4 | |||
5 | SUMMARY_${PN}-ptest ?= "${SUMMARY} - Package test files" | ||
6 | DESCRIPTION_${PN}-ptest ?= "${DESCRIPTION} \ | ||
7 | This package contains a test directory ${PTEST_PATH} for package test purposes." | ||
8 | |||
9 | PTEST_PATH ?= "${libdir}/${PN}/ptest" | ||
10 | FILES_${PN}-ptest = "${PTEST_PATH}/*" | ||
11 | SECTION_${PN}-ptest = "devel" | ||
12 | ALLOW_EMPTY_${PN}-ptest = "1" | ||
13 | PTEST_ENABLED = "${@base_contains("DISTRO_FEATURES", "ptest", "1", "0", d)}" | ||
14 | RDEPENDS_${PN}-ptest_virtclass-native = "" | ||
15 | RDEPENDS_${PN}-ptest_virtclass-nativesdk = "" | ||
16 | |||
17 | PACKAGES += "${PN}-ptest" | ||
18 | |||
19 | FILES_${PN}-dbg += "${PTEST_PATH}/*/.debug \ | ||
20 | ${PTEST_PATH}/*/*/.debug \ | ||
21 | ${PTEST_PATH}/*/*/*/.debug \ | ||
22 | ${PTEST_PATH}/*/*/*/*/.debug \ | ||
23 | " | ||
24 | |||
25 | ptest_do_install() { | ||
26 | if [ "${PN}" = "${BPN}" -a ${PTEST_ENABLED} = "1" ]; then | ||
27 | install -D ${WORKDIR}/run-ptest ${D}${PTEST_PATH}/run-ptest | ||
28 | if grep -q install-ptest: Makefile; then | ||
29 | oe_runmake DESTDIR=${D}${PTEST_PATH} install-ptest | ||
30 | fi | ||
31 | fi | ||
32 | } | ||
33 | |||
34 | EXPORT_FUNCTIONS ptest_do_install | ||
diff --git a/meta/recipes-devtools/automake/automake/buildtest.patch b/meta/recipes-devtools/automake/automake/buildtest.patch new file mode 100644 index 0000000000..1dd5337849 --- /dev/null +++ b/meta/recipes-devtools/automake/automake/buildtest.patch | |||
@@ -0,0 +1,33 @@ | |||
1 | Split "check-TESTS" into a buildtest and runtest target, so that they can | ||
2 | be run separately. | ||
3 | |||
4 | Signed-off-by: Björn Stenberg <bjst@enea.com> | ||
5 | Upstream-Status: Pending | ||
6 | |||
7 | --- a/lib/am/check.am 2012-11-14 13:46:16.335475995 +0100 | ||
8 | +++ b/lib/am/check.am 2012-08-13 18:40:12.000000000 +0200 | ||
9 | @@ -44,7 +44,7 @@ | ||
10 | am__tty_colors = $(am__tty_colors_dummy) | ||
11 | endif !%?COLOR% | ||
12 | |||
13 | -.PHONY: check-TESTS | ||
14 | +.PHONY: check-TESTS buildtest-TESTS runtest-TESTS | ||
15 | |||
16 | if %?PARALLEL_TESTS% | ||
17 | |||
18 | @@ -465,7 +465,14 @@ | ||
19 | |||
20 | else !%?PARALLEL_TESTS% | ||
21 | |||
22 | -check-TESTS: $(TESTS) | ||
23 | +AM_RECURSIVE_TARGETS += buildtest runtest | ||
24 | + | ||
25 | +buildtest-TESTS: $(TESTS) | ||
26 | + | ||
27 | +check-TESTS: buildtest-TESTS | ||
28 | + $(MAKE) $(AM_MAKEFLAGS) runtest-TESTS | ||
29 | + | ||
30 | +runtest-TESTS: | ||
31 | @failed=0; all=0; xfail=0; xpass=0; skip=0; \ | ||
32 | srcdir=$(srcdir); export srcdir; \ | ||
33 | ## Make sure Solaris VPATH-expands all members of this list, even | ||
diff --git a/meta/recipes-devtools/automake/automake_1.12.5.bb b/meta/recipes-devtools/automake/automake_1.12.5.bb index 76e2b872ed..c68167483a 100644 --- a/meta/recipes-devtools/automake/automake_1.12.5.bb +++ b/meta/recipes-devtools/automake/automake_1.12.5.bb | |||
@@ -23,7 +23,8 @@ PATHFIXPATCH_class-nativesdk = "" | |||
23 | SRC_URI += "${PATHFIXPATCH} \ | 23 | SRC_URI += "${PATHFIXPATCH} \ |
24 | file://prefer-cpio-over-pax-for-ustar-archives.patch \ | 24 | file://prefer-cpio-over-pax-for-ustar-archives.patch \ |
25 | file://python-libdir.patch \ | 25 | file://python-libdir.patch \ |
26 | file://py-compile-compile-only-optimized-byte-code.patch" | 26 | file://py-compile-compile-only-optimized-byte-code.patch \ |
27 | file://buildtest.patch" | ||
27 | 28 | ||
28 | SRC_URI[md5sum] = "674f6d28f8723e0f478cb03de30f36f1" | 29 | SRC_URI[md5sum] = "674f6d28f8723e0f478cb03de30f36f1" |
29 | SRC_URI[sha256sum] = "82089e23b384d3e64efa4f09f133a02dadb91c0593d4f1d4e12c29d806be9925" | 30 | SRC_URI[sha256sum] = "82089e23b384d3e64efa4f09f133a02dadb91c0593d4f1d4e12c29d806be9925" |