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/classes | |
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/classes')
-rw-r--r-- | meta/classes/image.bbclass | 6 | ||||
-rw-r--r-- | meta/classes/packagegroup.bbclass | 2 | ||||
-rw-r--r-- | meta/classes/ptest.bbclass | 34 |
3 files changed, 39 insertions, 3 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 | ||