On Thu, 2012-11-22 at 17:01 +0100, Björn Stenberg wrote: > 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. > > Signed-off-by: Björn Stenberg <[email protected]> > --- > meta/classes/image.bbclass | 6 ++- > meta/classes/packagegroup.bbclass | 2 +- > meta/conf/bitbake.conf | 15 ++++++++- > .../automake/automake/buildtest.patch | 33 > ++++++++++++++++++++ > meta/recipes-devtools/automake/automake_1.12.3.bb | 3 +- > 5 files changed, 54 insertions(+), 5 deletions(-) > create mode 100644 meta/recipes-devtools/automake/automake/buildtest.patch > > diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass > index 7b24e4e..b574545 100644 > --- a/meta/classes/image.bbclass > +++ b/meta/classes/image.bbclass > @@ -29,13 +29,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) > > @@ -57,6 +57,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 e0e5b1c..b5be048 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/conf/bitbake.conf b/meta/conf/bitbake.conf > index 450a0ee..d86e999 100644 > --- a/meta/conf/bitbake.conf > +++ b/meta/conf/bitbake.conf > @@ -224,6 +224,10 @@ SUMMARY_${PN}-dbg ?= "${SUMMARY} - Debugging files" > DESCRIPTION_${PN}-dbg ?= "${DESCRIPTION} \ > This package contains ELF symbols and related sources for debugging > purposes." > > +SUMMARY_${PN}-ptest ?= "${SUMMARY} - Package test files" > +DESCRIPTION_${PN}-ptest ?= "${DESCRIPTION} \ > +This package contains a test directory ${PTEST_PATH} for package test > purposes." > + > SUMMARY_${PN}-dev ?= "${SUMMARY} - Development files" > DESCRIPTION_${PN}-dev ?= "${DESCRIPTION} \ > This package contains symbolic links, header files, and \ > @@ -267,7 +271,7 @@ SOLIBSDEV_darwin8 = ".dylib" > SOLIBSDEV_darwin9 = ".dylib" > > PACKAGE_BEFORE_PN ?= "" > -PACKAGES = "${PN}-dbg ${PN}-staticdev ${PN}-dev ${PN}-doc ${PN}-locale > ${PACKAGE_BEFORE_PN} ${PN}" > +PACKAGES = "${PN}-dbg ${PN}-staticdev ${PN}-dev ${PN}-doc ${PN}-locale > ${PN}-ptest ${PACKAGE_BEFORE_PN} ${PN}" > PACKAGES_DYNAMIC = "^${PN}-locale-.*" > FILES = "" > > @@ -312,6 +316,15 @@ SECTION_${PN}-dbg = "devel" > ALLOW_EMPTY_${PN}-dbg = "1" > RRECOMMENDS_${PN}-dbg = "${PN} (= ${EXTENDPKGV})" > > +PTEST_PATH ?= "${libdir}/${PN}/ptest" > +FILES_${PN}-ptest = "${PTEST_PATH}/*" > +SECTION_${PN}-ptest = "devel" > +ALLOW_EMPTY_${PN}-ptest = "1" > +RDEPENDS_${PN}-ptest = "${PN} (= ${EXTENDPKGV})" > +PTEST_ENABLED = "${@base_contains("DISTRO_FEATURES", "ptest", "1", "0", d)}" > +RDEPENDS_${PN}-ptest_virtclass-native = "" > +RDEPENDS_${PN}-ptest_virtclass-nativesdk = "" > + > FILES_${PN}-locale = "${datadir}/locale" > > # File manifest
Whilst we're in bootstrapping mode for this work, how about we make these changes a "ptest.bbclass" file which we'd inherit in the recipes where we've got ptest enabled? This would also solve the package name conflict I suspect you have in the dbus recipes, making the hack to the main dbus recipe unnecessary. Cheers, Richard _______________________________________________ Openembedded-core mailing list [email protected] http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
