* [OE-core][PATCH v4] systemd: re-enable ptest support
@ 2026-09-09 8:55 Himani Ramesh Barde
2026-09-15 8:17 ` Jose Quaresma
2026-09-16 11:48 ` Antonin Godard
0 siblings, 2 replies; 3+ messages in thread
From: Himani Ramesh Barde @ 2026-09-09 8:55 UTC (permalink / raw)
To: openembedded-core
Cc: mathieu.dubois-briand, jose.quaresma, Randy.MacLeod, ross.burton,
raj.khem, richard.purdie, Shiva.Komati, Himani Ramesh Barde
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 <HimaniRamesh.Barde@windriver.com>
---
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
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [OE-core][PATCH v4] systemd: re-enable ptest support
2026-09-09 8:55 [OE-core][PATCH v4] systemd: re-enable ptest support Himani Ramesh Barde
@ 2026-09-15 8:17 ` Jose Quaresma
2026-09-16 11:48 ` Antonin Godard
1 sibling, 0 replies; 3+ messages in thread
From: Jose Quaresma @ 2026-09-15 8:17 UTC (permalink / raw)
To: Himani Ramesh Barde
Cc: openembedded-core, mathieu.dubois-briand, Randy.MacLeod,
ross.burton, raj.khem, richard.purdie, Shiva.Komati
[-- Attachment #1: Type: text/plain, Size: 6987 bytes --]
Hi,
Gentle ping.
It looks like this one got forgotten.
Jose
On Wed, Sep 9, 2026 at 9:55 AM Himani Ramesh Barde <
HimaniRamesh.Barde@windriver.com> 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 <HimaniRamesh.Barde@windriver.com>
> ---
> 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
>
>
[-- Attachment #2: Type: text/html, Size: 8665 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [OE-core][PATCH v4] systemd: re-enable ptest support
2026-09-09 8:55 [OE-core][PATCH v4] systemd: re-enable ptest support Himani Ramesh Barde
2026-09-15 8:17 ` Jose Quaresma
@ 2026-09-16 11:48 ` Antonin Godard
1 sibling, 0 replies; 3+ messages in thread
From: Antonin Godard @ 2026-09-16 11:48 UTC (permalink / raw)
To: HimaniRamesh.Barde, openembedded-core
Cc: mathieu.dubois-briand, jose.quaresma, Randy.MacLeod, ross.burton,
raj.khem, richard.purdie, Shiva.Komati
Hi,
On Wed Sep 9, 2026 at 10:55 AM CEST, Himani Ramesh Barde via lists.openembedded.org 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]
I think this is triggering the following error on our test infra:
Parsing recipes...ERROR: /srv/pokybuild/yocto-worker/check-layer/build/layers/openembedded-core/meta/recipes-core/systemd/systemd_261.3.bb: QA Issue: Package systemd-ptest is skipping required QA tests. [debug-files]
ERROR: /srv/pokybuild/yocto-worker/check-layer/build/layers/openembedded-core/meta/recipes-core/systemd/systemd_261.3.bb: Fatal QA errors were found, failing task.
Full log: https://autobuilder.yoctoproject.org/valkyrie/api/v2/logs/8951661/raw_inline
Parent build: https://autobuilder.yoctoproject.org/valkyrie/#/builders/27/builds/4717
This is happening when checking the meta-mingw layer with check-layer though…
Do you mind looking into it?
Thanks,
Antonin
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-09-16 11:49 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-09 8:55 [OE-core][PATCH v4] systemd: re-enable ptest support Himani Ramesh Barde
2026-09-15 8:17 ` Jose Quaresma
2026-09-16 11:48 ` Antonin Godard
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox