summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjörn Stenberg <bjst@enea.com>2012-12-19 17:18:27 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-12-26 11:34:04 +0000
commit1d2c6833ae802553d6df3dbb249336c44cef5df5 (patch)
treebdcbf8c98fae2723949c625c195d59f21251e124
parent627e745d7bcda8821392f30c60da3cf2858d9e7f (diff)
downloadpoky-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>
-rw-r--r--meta/classes/image.bbclass6
-rw-r--r--meta/classes/packagegroup.bbclass2
-rw-r--r--meta/classes/ptest.bbclass34
-rw-r--r--meta/recipes-devtools/automake/automake/buildtest.patch33
-rw-r--r--meta/recipes-devtools/automake/automake_1.12.5.bb3
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
26FEATURE_INSTALL = "${@' '.join(oe.packagegroup.required_packages(oe.data.typed_value('IMAGE_FEATURES', d), d))}" 26FEATURE_INSTALL = "${@' '.join(oe.packagegroup.required_packages(oe.data.typed_value('IMAGE_FEATURES', d), d))}"
27FEATURE_INSTALL_OPTIONAL = "${@' '.join(oe.packagegroup.optional_packages(oe.data.typed_value('IMAGE_FEATURES', d), d))}" 27FEATURE_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
30NORMAL_FEATURE_INSTALL = "${@' '.join(oe.packagegroup.required_packages(normal_groups(d), d))}" 30NORMAL_FEATURE_INSTALL = "${@' '.join(oe.packagegroup.required_packages(normal_groups(d), d))}"
31NORMAL_FEATURE_INSTALL_OPTIONAL = "${@' '.join(oe.packagegroup.optional_packages(normal_groups(d), d))}" 31NORMAL_FEATURE_INSTALL_OPTIONAL = "${@' '.join(oe.packagegroup.optional_packages(normal_groups(d), d))}"
32 32
33def normal_groups(d): 33def 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
59IMAGE_INSTALL_COMPLEMENTARY = '${@complementary_globs("IMAGE_FEATURES", d)}' 61IMAGE_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'
3EXCLUDE_FROM_WORLD = "1"
4
5SUMMARY_${PN}-ptest ?= "${SUMMARY} - Package test files"
6DESCRIPTION_${PN}-ptest ?= "${DESCRIPTION} \
7This package contains a test directory ${PTEST_PATH} for package test purposes."
8
9PTEST_PATH ?= "${libdir}/${PN}/ptest"
10FILES_${PN}-ptest = "${PTEST_PATH}/*"
11SECTION_${PN}-ptest = "devel"
12ALLOW_EMPTY_${PN}-ptest = "1"
13PTEST_ENABLED = "${@base_contains("DISTRO_FEATURES", "ptest", "1", "0", d)}"
14RDEPENDS_${PN}-ptest_virtclass-native = ""
15RDEPENDS_${PN}-ptest_virtclass-nativesdk = ""
16
17PACKAGES += "${PN}-ptest"
18
19FILES_${PN}-dbg += "${PTEST_PATH}/*/.debug \
20 ${PTEST_PATH}/*/*/.debug \
21 ${PTEST_PATH}/*/*/*/.debug \
22 ${PTEST_PATH}/*/*/*/*/.debug \
23 "
24
25ptest_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
34EXPORT_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 @@
1Split "check-TESTS" into a buildtest and runtest target, so that they can
2be run separately.
3
4Signed-off-by: Björn Stenberg <bjst@enea.com>
5Upstream-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 = ""
23SRC_URI += "${PATHFIXPATCH} \ 23SRC_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
28SRC_URI[md5sum] = "674f6d28f8723e0f478cb03de30f36f1" 29SRC_URI[md5sum] = "674f6d28f8723e0f478cb03de30f36f1"
29SRC_URI[sha256sum] = "82089e23b384d3e64efa4f09f133a02dadb91c0593d4f1d4e12c29d806be9925" 30SRC_URI[sha256sum] = "82089e23b384d3e64efa4f09f133a02dadb91c0593d4f1d4e12c29d806be9925"