On Fri, Sep 4, 2026 at 3:01 PM Himani Ramesh Barde via
lists.openembedded.org <HimaniRamesh.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.
>
> Enable install-tests, package the installed tree into systemd-ptest, and
> add a run-ptest wrapper that drives run-unit-tests.py. This provides ptest
> coverage for the systemd:test and libsystemd meson unit-test suites.
>
> The test/units integration tests, which require a booted system, are out
> of scope here and can be addressed separately.
>
> Verified on systemd 257.6: -Dinstall-tests=true installs 313 test-*
> unit-test binaries plus run-unit-tests.py; systemd-ptest packages cleanly.
> The recipe change parses without error against oe-core master (261.2).
>
> [YOCTO #16386]
>
> Signed-off-by: Himani Ramesh Barde <[email protected]>
> ---
> meta/recipes-core/systemd/systemd/run-ptest | 11 +++++++++++
> meta/recipes-core/systemd/systemd_261.2.bb | 18 +++++++++++++++++-
> 2 files changed, 28 insertions(+), 1 deletion(-)
> create mode 100755 meta/recipes-core/systemd/systemd/run-ptest
>
> 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..dfd2b7c0c9 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 \
>
indentation
> "
>
> PAM_PLUGINS = " \
> @@ -937,3 +938,18 @@ 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
> +
> +# ptest support: systemd's meson 'install-tests' option installs the
> unit-test
> +# binaries and run-unit-tests.py under ${prefix}/lib/systemd/tests.
> Package them
> +# into systemd-ptest and drive them via run-ptest. [YOCTO #16386]
> +EXTRA_OEMESON:append = " -Dinstall-tests=true"
>
This should go in PACKAGECONFIG and condition to PTEST_ENABLED because
ptest is
not enabled in all builds. Something like
"${@bb.utils.contains('PTEST_ENABLED',
'1', 'tests', '', d)}
and then select it with PACKAGECONFIG[tests] = "-Dinstall-tests=true,
-Dinstall-tests=false"
+
> +do_install_ptest() {
> + install -d ${D}${PTEST_PATH}
> + if [ -d ${D}${prefix}/lib/systemd/tests ]; then
> + cp -r ${D}${prefix}/lib/systemd/tests/* ${D}${PTEST_PATH}/
> + fi
> +}
>
This part also seems redundant; if you say the tests are installed with
"-Dinstall-tests=true",
it shouldn't be necessary to do this.
Jose
> +
> +RDEPENDS:${PN}-ptest += "${PN} 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 (#245130):
https://lists.openembedded.org/g/openembedded-core/message/245130
Mute This Topic: https://lists.openembedded.org/mt/121086003/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-