Message ID | 20240801082253.974486-1-martin@geanix.com |
---|---|
State | New |
Headers | show |
Series | [v3,1/2] ell: add ptests | expand |
On 1 Aug 2024, at 09:22, Martin Hundeb?ll via lists.openembedded.org <martin=geanix.com@lists.openembedded.org> wrote: > diff --git a/meta/recipes-core/ell/ell_0.67.bb b/meta/recipes-core/ell/ell_0.67.bb > index 6b0ebbe62113..ee9aa73d2908 100644 > --- a/meta/recipes-core/ell/ell_0.67.bb > +++ b/meta/recipes-core/ell/ell_0.67.bb > @@ -10,9 +10,27 @@ SECTION = "libs" > LICENSE = "LGPL-2.1-only" > LIC_FILES_CHKSUM = "file://COPYING;md5=fb504b67c50331fc78734fed90fb0e09" > > -DEPENDS = "dbus" > +DEPENDS = "dbus openssl-native xxd-native" This should be conditional on ptest, right? > +EXTRA_OECONF += "--enable-tests --enable-maintainer-mode" Make this conditional on ptest too? > +do_compile:prepend() { > + mkdir -p ${B}/unit > +} This sounds like a broken Makefile.am that has a bad assumption in. > +do_install_ptest() { > + install -m755 -Dt ${D}${PTEST_PATH} $(find ${B}/unit -executable -type f) > + install -Dt ${D}${PTEST_PATH}/unit \ > + ${S}/unit/dbus.conf \ > + ${S}/unit/settings.test \ > + $(find ${B}/unit -name \*.pem -type f) > +} As the test scripts are built with libtool, it’s best to use libtool —mode=install to install them. Ross
On Fri, 2024-08-02 at 12:36 +0000, Ross Burton via lists.openembedded.org wrote: > On 1 Aug 2024, at 09:22, Martin Hundeb?ll via lists.openembedded.org > <martin=geanix.com@lists.openembedded.org> wrote: > > diff --git a/meta/recipes-core/ell/ell_0.67.bb b/meta/recipes- > > core/ell/ell_0.67.bb > > index 6b0ebbe62113..ee9aa73d2908 100644 > > --- a/meta/recipes-core/ell/ell_0.67.bb > > +++ b/meta/recipes-core/ell/ell_0.67.bb > > @@ -10,9 +10,27 @@ SECTION = "libs" > > LICENSE = "LGPL-2.1-only" > > LIC_FILES_CHKSUM = > > "file://COPYING;md5=fb504b67c50331fc78734fed90fb0e09" > > > > -DEPENDS = "dbus" > > +DEPENDS = "dbus openssl-native xxd-native" > > This should be conditional on ptest, right? > > > +EXTRA_OECONF += "--enable-tests --enable-maintainer-mode" > > Make this conditional on ptest too? > > > +do_compile:prepend() { > > + mkdir -p ${B}/unit > > +} > > This sounds like a broken Makefile.am that has a bad assumption in. > > > +do_install_ptest() { > > + install -m755 -Dt ${D}${PTEST_PATH} $(find ${B}/unit - > > executable -type f) > > + install -Dt ${D}${PTEST_PATH}/unit \ > > + ${S}/unit/dbus.conf \ > > + ${S}/unit/settings.test \ > > + $(find ${B}/unit -name \*.pem -type f) > > +} > > As the test scripts are built with libtool, it’s best to use libtool > —mode=install to install them. Thanks for the review Ross. There was also a failure in automated testing on the autobuilder: https://autobuilder.yoctoproject.org/typhoon/#/builders/81/builds/6864/steps/12/logs/stdio The arm tests haven't run yet in that build. Cheers, Richard
On 02/08/2024 13:51:45+0100, Richard Purdie wrote: > On Fri, 2024-08-02 at 12:36 +0000, Ross Burton via > lists.openembedded.org wrote: > > On 1 Aug 2024, at 09:22, Martin Hundeb?ll via lists.openembedded.org > > <martin=geanix.com@lists.openembedded.org> wrote: > > > diff --git a/meta/recipes-core/ell/ell_0.67.bb b/meta/recipes- > > > core/ell/ell_0.67.bb > > > index 6b0ebbe62113..ee9aa73d2908 100644 > > > --- a/meta/recipes-core/ell/ell_0.67.bb > > > +++ b/meta/recipes-core/ell/ell_0.67.bb > > > @@ -10,9 +10,27 @@ SECTION = "libs" > > > LICENSE = "LGPL-2.1-only" > > > LIC_FILES_CHKSUM = > > > "file://COPYING;md5=fb504b67c50331fc78734fed90fb0e09" > > > > > > -DEPENDS = "dbus" > > > +DEPENDS = "dbus openssl-native xxd-native" > > > > This should be conditional on ptest, right? > > > > > +EXTRA_OECONF += "--enable-tests --enable-maintainer-mode" > > > > Make this conditional on ptest too? > > > > > +do_compile:prepend() { > > > + mkdir -p ${B}/unit > > > +} > > > > This sounds like a broken Makefile.am that has a bad assumption in. > > > > > +do_install_ptest() { > > > + install -m755 -Dt ${D}${PTEST_PATH} $(find ${B}/unit - > > > executable -type f) > > > + install -Dt ${D}${PTEST_PATH}/unit \ > > > + ${S}/unit/dbus.conf \ > > > + ${S}/unit/settings.test \ > > > + $(find ${B}/unit -name \*.pem -type f) > > > +} > > > > As the test scripts are built with libtool, it’s best to use libtool > > —mode=install to install them. > > Thanks for the review Ross. There was also a failure in automated > testing on the autobuilder: > > https://autobuilder.yoctoproject.org/typhoon/#/builders/81/builds/6864/steps/12/logs/stdio > > The arm tests haven't run yet in that build. It failed to build on arm64: https://autobuilder.yoctoproject.org/typhoon/#/builders/82/builds/6689/steps/11/logs/stdio > > Cheers, > > Richard > > > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#202907): https://lists.openembedded.org/g/openembedded-core/message/202907 > Mute This Topic: https://lists.openembedded.org/mt/107661617/3617179 > Group Owner: openembedded-core+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com] > -=-=-=-=-=-=-=-=-=-=-=- >
diff --git a/meta/conf/distro/include/ptest-packagelists.inc b/meta/conf/distro/include/ptest-packagelists.inc index e3ab7e862925..a655439f5ebe 100644 --- a/meta/conf/distro/include/ptest-packagelists.inc +++ b/meta/conf/distro/include/ptest-packagelists.inc @@ -15,6 +15,7 @@ PTESTS_FAST = "\ cpio \ diffstat \ diffutils \ + ell \ ethtool \ expat \ expect \ diff --git a/meta/recipes-core/ell/ell_0.67.bb b/meta/recipes-core/ell/ell_0.67.bb index 6b0ebbe62113..ee9aa73d2908 100644 --- a/meta/recipes-core/ell/ell_0.67.bb +++ b/meta/recipes-core/ell/ell_0.67.bb @@ -10,9 +10,27 @@ SECTION = "libs" LICENSE = "LGPL-2.1-only" LIC_FILES_CHKSUM = "file://COPYING;md5=fb504b67c50331fc78734fed90fb0e09" -DEPENDS = "dbus" +DEPENDS = "dbus openssl-native xxd-native" -inherit autotools pkgconfig +inherit autotools pkgconfig ptest -SRC_URI = "https://mirrors.edge.kernel.org/pub/linux/libs/${BPN}/${BPN}-${PV}.tar.xz" +SRC_URI = " \ + https://mirrors.edge.kernel.org/pub/linux/libs/${BPN}/${BPN}-${PV}.tar.xz \ + file://run-ptest \ +" SRC_URI[sha256sum] = "97942e8cefb130b632496e5485242f3f374f3b8846800fb74fffd76dc2a0c726" + +EXTRA_OECONF += "--enable-tests --enable-maintainer-mode" +CFLAGS += "-UUNITDIR -DUNITDIR="\\"./unit/\\""" + +do_compile:prepend() { + mkdir -p ${B}/unit +} + +do_install_ptest() { + install -m755 -Dt ${D}${PTEST_PATH} $(find ${B}/unit -executable -type f) + install -Dt ${D}${PTEST_PATH}/unit \ + ${S}/unit/dbus.conf \ + ${S}/unit/settings.test \ + $(find ${B}/unit -name \*.pem -type f) +} diff --git a/meta/recipes-core/ell/files/run-ptest b/meta/recipes-core/ell/files/run-ptest new file mode 100644 index 000000000000..5b3acdd98b8a --- /dev/null +++ b/meta/recipes-core/ell/files/run-ptest @@ -0,0 +1,23 @@ +#!/bin/sh + +ret_val=0 + +for test in test-*; do + case "$test" in + test-pem | test-key) + if ! [ -d /sys/module/pkcs8_key_parser ]; then + echo "SKIP: $test" + continue + fi + ;; + esac + + if "./$test" >> ell_test.log 2>&1; then + echo "PASS: $test" + else + echo "FAIL: $test" + ret_val=1 + fi +done + +exit $ret_val
Depends on openssl-native and xxd-native to allow generating certificates used for testing. Create the ${B}/unit dir as that seems to be missing with the automake patches used for building tests separately from running them. In order to build the test cases, both --enable-tests and --enable-maintainer-mode must be passed to configure. A few unit tests looks for files in ../ell-0.67/unit (i.e. $(top_srcdir) in automake) when running. Instead of playing games with symlinks or install paths, the "correct" path is just (re)defined in CFLAGS. Skip a few tests that require additional kernel modules to be enabled. Test execution time is about 10 seconds. Signed-off-by: Martin Hundebøll <martin@geanix.com> --- .../distro/include/ptest-packagelists.inc | 1 + meta/recipes-core/ell/ell_0.67.bb | 24 ++++++++++++++++--- meta/recipes-core/ell/files/run-ptest | 23 ++++++++++++++++++ 3 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 meta/recipes-core/ell/files/run-ptest