[OE-core] [PATCH] dbus-test_1.12.2: various fixes
Khem Raj
raj.khem at gmail.com
Wed Feb 28 03:46:17 UTC 2018
On 2/27/18 12:19 PM, Juro Bystricky wrote:
> The result of running dbus-test-ptest was a series of
> various segfaults, interpreted as FAILs. This was a direct consequence
> of the test suite loading the installed shared library libdbus-1.so, not the
> one built along the test suite.
>
> While we normally want to test against the installed libraries, we cannot
> do this in this case as the test suite expects a library that is configured/compiled
> differently from the installed one. We could configure the installed library
> identically as the test suite expects, (and there should be no issues), however
> this is not desirable for performance reasons.
>
> Hence we need to use the library built along with the test suite.
> Of course, running the test suite against its own library does not
> test the installed library, however they are both built from the same
> sources so that can give us some kind of indication.
>
> The following changes were made:
>
> 1. Configure the test library as close as possible to the installed one,
> with some additional configuration options that are needed for testing.
> (Use dbus_1.12.2.bb recipe as a template)
> 2. Include the shared libraries in the package, use LD_LIBRARY_PATH during
> testing to load them instead of the installed ones.
> 3. Add a few more tests. (There are still some additional tests built that
> are not used, but they would have to be special-cased).
> 4. When evaluating the test results, differentiate between "FAIL" and "SKIP"
>
> [YOCTO #10841]
> [YOCTO #12277]
>
> Signed-off-by: Juro Bystricky <juro.bystricky at intel.com>
> ---
> meta/recipes-core/dbus/dbus-test_1.12.2.bb | 30 ++++++++++++++++++++++++++----
> meta/recipes-core/dbus/dbus/run-ptest | 20 +++++++++++++++++---
> 2 files changed, 43 insertions(+), 7 deletions(-)
>
> diff --git a/meta/recipes-core/dbus/dbus-test_1.12.2.bb b/meta/recipes-core/dbus/dbus-test_1.12.2.bb
> index c3891a3..a6a5ca2 100644
> --- a/meta/recipes-core/dbus/dbus-test_1.12.2.bb
> +++ b/meta/recipes-core/dbus/dbus-test_1.12.2.bb
> @@ -34,25 +34,47 @@ EXTRA_OECONF = "--enable-tests \
> --enable-checks \
> --enable-asserts \
> --enable-verbose-mode \
> + --enable-largefile \
Perhaps this should be controlled with DISTRO_FEATURE for largefile as
well ?
> --disable-xml-docs \
> --disable-doxygen-docs \
> --disable-libaudit \
> - --disable-systemd \
> - --without-systemdsystemunitdir \
> --with-dbus-test-dir=${PTEST_PATH} \
> ${EXTRA_OECONF_X}"
>
> +EXTRA_OECONF_append_class-target = " SYSTEMCTL=${base_bindir}/systemctl"
> +
> +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd x11', d)}"
> +PACKAGECONFIG_class-native = ""
> +PACKAGECONFIG_class-nativesdk = ""
> +
> +PACKAGECONFIG[systemd] = "--enable-systemd --with-systemdsystemunitdir=${systemd_system_unitdir},--disable-systemd --without-systemdsystemunitdir,systemd"
> +PACKAGECONFIG[x11] = "--with-x --enable-x11-autolaunch,--without-x --disable-x11-autolaunch, virtual/libx11 libsm"
> +PACKAGECONFIG[user-session] = "--enable-user-session --with-systemduserunitdir=${systemd_user_unitdir},--disable-user-session"
> +
hmm packageconfigs while a good thing here, would be nice if was
mentioned in commit msg.
> do_install() {
> :
> }
>
> do_install_ptest() {
> install -d ${D}${PTEST_PATH}/test
> - l="shell printf refs syslog marshal syntax corrupt dbus-daemon dbus-daemon-eavesdrop loopback relay"
> + l="shell printf refs syslog marshal syntax corrupt dbus-daemon dbus-daemon-eavesdrop loopback relay \
> + variant uid-permissions syntax spawn sd-activation names monitor message fdpass "
Dont know if we will be testing same things but this is a good start.
> for i in $l; do install ${B}/test/.libs/test-$i ${D}${PTEST_PATH}/test; done
> +
> l="bus bus-system bus-launch-helper"
> for i in $l; do install ${B}/bus/.libs/test-$i ${D}${PTEST_PATH}/test; done
> - install ${B}/dbus/.libs/test-dbus ${D}${PTEST_PATH}/test
> +
> cp -r ${B}/test/data ${D}${PTEST_PATH}/test
> + install ${B}/dbus/.libs/test-dbus ${D}${PTEST_PATH}/test
> +
> + install -d ${D}${PTEST_PATH}/test/.libs
> + cp -a ${B}/dbus/.libs/*.so* ${D}${PTEST_PATH}/test/.libs
> +
> + # Remove build host references...
> + find "${D}${PTEST_PATH}/test/data" \( -name *.service -o -name *.conf \) -type f -exec \
> + sed -i \
> + -e 's:${B}:${PTEST_PATH}:g' \
> + {} +
> }
> +
> RDEPENDS_${PN}-ptest += "bash"
> diff --git a/meta/recipes-core/dbus/dbus/run-ptest b/meta/recipes-core/dbus/dbus/run-ptest
> index c72d083..8a8970e 100755
> --- a/meta/recipes-core/dbus/dbus/run-ptest
> +++ b/meta/recipes-core/dbus/dbus/run-ptest
> @@ -1,10 +1,24 @@
> #!/bin/sh
>
> output() {
> - if [ $? -eq 0 ]
> + retcode=$?
> + if [ $retcode -eq 0 ]
> then echo "PASS: $i"
> - else echo "FAIL: $i"
> + elif [ $retcode -eq 77 ]
> + then echo "SKIP: $i"
> + else echo "FAIL: $i"
> fi
> }
>
> -for i in `ls test/test-*`; do ./$i ./test/data DBUS_TEST_HOMEDIR=./test >/dev/null; output; done
> +export DBUS_TEST_HOMEDIR=./test
> +export XDG_RUNTIME_DIR=./test
> +export LD_LIBRARY_PATH=/usr/lib/dbus-test/ptest/test/.libs
> +
> +files=`ls test/test-*`
> +
> +for i in $files
> + do
> + ./$i ./test/data >/dev/null
> + output
> + done
> +
>
More information about the Openembedded-core
mailing list