From 1d2c6833ae802553d6df3dbb249336c44cef5df5 Mon Sep 17 00:00:00 2001 From: Björn Stenberg Date: Wed, 19 Dec 2012 17:18:27 +0100 Subject: Add a new distro feature "ptest". MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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//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 Signed-off-by: Saul Wold Signed-off-by: Richard Purdie --- meta/classes/image.bbclass | 6 ++++-- meta/classes/packagegroup.bbclass | 2 +- meta/classes/ptest.bbclass | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 meta/classes/ptest.bbclass (limited to 'meta/classes') 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 FEATURE_INSTALL = "${@' '.join(oe.packagegroup.required_packages(oe.data.typed_value('IMAGE_FEATURES', d), d))}" FEATURE_INSTALL_OPTIONAL = "${@' '.join(oe.packagegroup.optional_packages(oe.data.typed_value('IMAGE_FEATURES', d), d))}" -# packages to install from features, excluding dev/dbg/doc +# packages to install from features, excluding dev/dbg/doc/ptest NORMAL_FEATURE_INSTALL = "${@' '.join(oe.packagegroup.required_packages(normal_groups(d), d))}" NORMAL_FEATURE_INSTALL_OPTIONAL = "${@' '.join(oe.packagegroup.optional_packages(normal_groups(d), d))}" def normal_groups(d): """Return all the IMAGE_FEATURES, with the exception of our special package groups""" - extras = set(['dev-pkgs', 'staticdev-pkgs', 'doc-pkgs', 'dbg-pkgs']) + extras = set(['dev-pkgs', 'staticdev-pkgs', 'doc-pkgs', 'dbg-pkgs', 'ptest-pkgs']) features = set(oe.data.typed_value('IMAGE_FEATURES', d)) return features.difference(extras) @@ -54,6 +54,8 @@ def complementary_globs(featurevar, d): globs.append('*-doc') elif feature == 'dbg-pkgs': globs.append('*-dbg') + elif feature == 'ptest-pkgs': + globs.append('*-ptest') return ' '.join(globs) 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 () { packages = d.getVar('PACKAGES', True).split() genpackages = [] for pkg in packages: - for postfix in ['-dbg', '-dev']: + for postfix in ['-dbg', '-dev', '-ptest']: genpackages.append(pkg+postfix) d.setVar('PACKAGES', ' '.join(packages+genpackages)) } 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 @@ +# Ptest packages are built indirectly by a distro_feature, +# no need for them to be a direct target of 'world' +EXCLUDE_FROM_WORLD = "1" + +SUMMARY_${PN}-ptest ?= "${SUMMARY} - Package test files" +DESCRIPTION_${PN}-ptest ?= "${DESCRIPTION} \ +This package contains a test directory ${PTEST_PATH} for package test purposes." + +PTEST_PATH ?= "${libdir}/${PN}/ptest" +FILES_${PN}-ptest = "${PTEST_PATH}/*" +SECTION_${PN}-ptest = "devel" +ALLOW_EMPTY_${PN}-ptest = "1" +PTEST_ENABLED = "${@base_contains("DISTRO_FEATURES", "ptest", "1", "0", d)}" +RDEPENDS_${PN}-ptest_virtclass-native = "" +RDEPENDS_${PN}-ptest_virtclass-nativesdk = "" + +PACKAGES += "${PN}-ptest" + +FILES_${PN}-dbg += "${PTEST_PATH}/*/.debug \ + ${PTEST_PATH}/*/*/.debug \ + ${PTEST_PATH}/*/*/*/.debug \ + ${PTEST_PATH}/*/*/*/*/.debug \ + " + +ptest_do_install() { + if [ "${PN}" = "${BPN}" -a ${PTEST_ENABLED} = "1" ]; then + install -D ${WORKDIR}/run-ptest ${D}${PTEST_PATH}/run-ptest + if grep -q install-ptest: Makefile; then + oe_runmake DESTDIR=${D}${PTEST_PATH} install-ptest + fi + fi +} + +EXPORT_FUNCTIONS ptest_do_install -- cgit v1.2.3-54-g00ecf