Hi,

Gentle ping.
It looks like this one got forgotten.

Jose

On Wed, Sep 9, 2026 at 9:55 AM Himani Ramesh Barde <
[email protected]> wrote:

> ptest support for systemd was dropped in 2018 (commit 906230a73b3c)
> when the recipe switched to meson, as there was no easy way to install
> and run the test suite. Current systemd and meson resolve this: the
> meson 'install-tests' option installs the unit-test binaries and a
> run-unit-tests.py runner under ${prefix}/lib/systemd/tests, and
> run-unit-tests.py already emits PASS:/SKIP: results per test.
>
> Add a 'tests' PACKAGECONFIG gated on PTEST_ENABLED that sets -Dtests
> and -Dinstall-tests and pulls in python3-pefile-native (needed to build
> the boot hwids test). do_install_ptest relocates the installed tests
> into ${PTEST_PATH} and drops the mkosi/integration-tests harness (which
> needs a booted system). A run-ptest wrapper drives run-unit-tests.py,
> and systemd is registered in ptest-packagelists.inc.
>
> The test/units integration tests, which require a booted system, are
> out of scope here and can be addressed separately.
>
> Verified on oe-core master (261.2, qemux86-64): with ptest enabled, 342
> unit-test binaries plus run-unit-tests.py install into ${PTEST_PATH} and
> systemd-ptest packages cleanly with no QA errors.
>
> [YOCTO #16386]
>
> Signed-off-by: Himani Ramesh Barde <[email protected]>
> ---
> v4:
> - Make the systemd entry in ptest-packagelists.inc conditional on the
>   'systemd' DISTRO_FEATURE via bb.utils.filter, so distros without systemd
>   (e.g. poky) do not require systemd-ptest. Fixes the autobuilder failure
>   reported by Mathieu Dubois-Briand.
> - Fix leading-whitespace alignment of the PTEST_ENABLED and run-ptest
>   lines (Jose Quaresma).
>
> v3:
> - Move PACKAGECONFIG[tests] next to the other PACKAGECONFIG entries and
>   the PTEST_ENABLED conditional into the PACKAGECONFIG ??= block (Jose
>   Quaresma).
> - Drop the inline comment; details are in the commit message (Jose
>   Quaresma).
> - Fix the SRC_URI run-ptest indentation (Jose Quaresma).
> - Wrap the commit message at ~72 columns.
>
> v2:
> - Gate tests via a PACKAGECONFIG on PTEST_ENABLED (Jose Quaresma).
> - Register systemd in ptest-packagelists.inc, fixing the missing-ptest
>   QA error seen on the autobuilder (Khem Raj, Richard Purdie).
> - Add python3-pefile-native dependency (fixes boot hwids test build
>   failure). Exclude the mkosi/integration harness from the ptest package.
>  meta/conf/distro/include/ptest-packagelists.inc |  1 +
>  meta/recipes-core/systemd/systemd/run-ptest     | 11 +++++++++++
>  meta/recipes-core/systemd/systemd_261.2.bb      | 17 ++++++++++++++++-
>  3 files changed, 28 insertions(+), 1 deletion(-)
>  create mode 100755 meta/recipes-core/systemd/systemd/run-ptest
>
> diff --git a/meta/conf/distro/include/ptest-packagelists.inc
> b/meta/conf/distro/include/ptest-packagelists.inc
> index ce6c0a2d76..5de3424e40 100644
> --- a/meta/conf/distro/include/ptest-packagelists.inc
> +++ b/meta/conf/distro/include/ptest-packagelists.inc
> @@ -146,6 +146,7 @@ PTESTS_SLOW = "\
>      python3-numpy \
>      python3-xmltodict \
>      strace \
> +    ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
>      tar \
>      tcl \
>      tcl8 \
> diff --git a/meta/recipes-core/systemd/systemd/run-ptest
> b/meta/recipes-core/systemd/systemd/run-ptest
> new file mode 100755
> index 0000000000..b2204b96d4
> --- /dev/null
> +++ b/meta/recipes-core/systemd/systemd/run-ptest
> @@ -0,0 +1,11 @@
> +#!/bin/sh
> +# Run systemd's installed meson unit tests in ptest format.
> +# systemd's -Dinstall-tests=true installs run-unit-tests.py plus the
> +# unit-tests/test-* binaries; run-unit-tests.py already emits PASS:/SKIP:
> lines.
> +set -u
> +here="$(cd "$(dirname "$0")" && pwd)"
> +for cand in "$here/run-unit-tests.py" "$here/tests/run-unit-tests.py"
> /usr/lib/systemd/tests/run-unit-tests.py; do
> +    [ -f "$cand" ] && { python3 "$cand" 2>&1; exit 0; }
> +done
> +echo "FAIL: systemd-ptest (run-unit-tests.py not found)"
> +exit 1
> diff --git a/meta/recipes-core/systemd/systemd_261.2.bb
> b/meta/recipes-core/systemd/systemd_261.2.bb
> index 80e1aa07d1..095b123683 100644
> --- a/meta/recipes-core/systemd/systemd_261.2.bb
> +++ b/meta/recipes-core/systemd/systemd_261.2.bb
> @@ -9,7 +9,7 @@ DEPENDS:append:libc-musl = " libucontext"
>
>  SECTION = "base/shell"
>
> -inherit useradd pkgconfig meson perlnative update-rc.d
> update-alternatives systemd gettext bash-completion manpages features_check
> mime
> +inherit useradd pkgconfig meson perlnative update-rc.d
> update-alternatives systemd gettext bash-completion manpages features_check
> mime ptest
>
>  # unmerged-usr support is deprecated upstream, taints the system and will
> be
>  # removed in the near future. Fail the build if it is not enabled.
> @@ -37,6 +37,7 @@ SRC_URI += " \
>             file://systemd-pager.sh \
>
> file://0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch \
>             file://0003-Do-not-create-var-log-README.patch \
> +           file://run-ptest \
>             "
>
>  PAM_PLUGINS = " \
> @@ -51,6 +52,7 @@ PACKAGECONFIG ??= " \
>      ${@bb.utils.contains('DISTRO_FEATURES', 'minidebuginfo', 'coredump
> elfutils', '', d)} \
>      ${@bb.utils.contains('DISTRO_FEATURES', 'wifi', 'rfkill', '', d)} \
>      ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xkbcommon', '', d)} \
> +    ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \
>      link-udev-shared \
>      backlight \
>      binfmt \
> @@ -188,6 +190,7 @@ PACKAGECONFIG[selinux] =
> "-Dselinux=enabled,-Dselinux=disabled,libselinux,initsc
>  PACKAGECONFIG[smack] = "-Dsmack=true,-Dsmack=false"
>  PACKAGECONFIG[sysext] = "-Dsysext=true, -Dsysext=false"
>  PACKAGECONFIG[sysusers] = "-Dsysusers=true,-Dsysusers=false"
> +PACKAGECONFIG[tests] = "-Dtests=unsafe -Dinstall-tests=true,-Dtests=false
> -Dinstall-tests=false,python3-pefile-native"
>  # When enabled use reproducible build timestamp if set as time epoch,
>  # or build time if not. When disabled, time epoch is unset.
>  def build_epoch(d):
> @@ -937,3 +940,15 @@ python do_warn_musl() {
>          bb.warn("Using systemd with musl is experimental, see
> https://github.com/systemd/systemd/blob/9ca4334/NEWS#L524 for details")
>  }
>  addtask warn_musl before do_configure
> +
> +do_install_ptest() {
> +    install -d ${D}${PTEST_PATH}
> +    if [ -d ${D}${prefix}/lib/systemd/tests ]; then
> +        mv ${D}${prefix}/lib/systemd/tests/* ${D}${PTEST_PATH}/
> +        rm -rf ${D}${prefix}/lib/systemd/tests
> +    fi
> +    rm -rf ${D}${PTEST_PATH}/mkosi ${D}${PTEST_PATH}/integration-tests
> +}
> +
> +RDEPENDS:${PN}-ptest += "python3-core bash"
> +INSANE_SKIP:${PN}-ptest += "dev-deps debug-files"
> --
> 2.54.0
>
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#245827): 
https://lists.openembedded.org/g/openembedded-core/message/245827
Mute This Topic: https://lists.openembedded.org/mt/121161004/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to