From: <changqing.li@windriver.com>
To: <openembedded-core@lists.openembedded.org>
Subject: [PATCH V2] procps: support ptest when TCLIBC is glibc
Date: Fri, 16 Jan 2026 17:27:04 +0800 [thread overview]
Message-ID: <20260116092704.2465341-1-changqing.li@windriver.com> (raw)
From: Changqing Li <changqing.li@windriver.com>
* support ptest for procps TCLIBC is glibc. The configure.ac only match
LINUX as "linux-gnu", we can patch it to make test can run on musl lib
system, but the upstream testsuite should only run on gnu libc host,
some test cases only suitable for glibc, eg: Some of the error messages
for free command on musl system is not the same as glibc system, which
will make test failed. In order to avoid some other unexpected failure,
just support ptest for glibc.
* procps's testsuite use DejaGnu test framework. The testsuite is
expected to run during build time, this implementation create the same
folder structure as the testsuite expected to make it can work well.
Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
.../distro/include/ptest-packagelists.inc | 2 +
meta/recipes-extended/procps/procps/run-ptest | 7 +++
meta/recipes-extended/procps/procps_4.0.5.bb | 51 ++++++++++++++++++-
3 files changed, 58 insertions(+), 2 deletions(-)
create mode 100644 meta/recipes-extended/procps/procps/run-ptest
diff --git a/meta/conf/distro/include/ptest-packagelists.inc b/meta/conf/distro/include/ptest-packagelists.inc
index fff2947177..2391224527 100644
--- a/meta/conf/distro/include/ptest-packagelists.inc
+++ b/meta/conf/distro/include/ptest-packagelists.inc
@@ -57,6 +57,7 @@ PTESTS_FAST = "\
nettle \
opkg \
popt \
+ procps \
python3-atomicwrites \
python3-attrs \
python3-bcrypt \
@@ -97,6 +98,7 @@ PTESTS_FAST:remove:mips64 = "qemu"
PTESTS_PROBLEMS:append:mips64 = " qemu"
PTESTS_FAST:remove:riscv32 = "qemu"
PTESTS_PROBLEMS:append:riscv32 = " qemu"
+PTESTS_FAST:remove:libc-musl = "procps"
PTESTS_SLOW = "\
apr \
diff --git a/meta/recipes-extended/procps/procps/run-ptest b/meta/recipes-extended/procps/procps/run-ptest
new file mode 100644
index 0000000000..0a74907fcc
--- /dev/null
+++ b/meta/recipes-extended/procps/procps/run-ptest
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+cd ./testsuite
+for tool in @DEJATOOL@;do
+ runtest -a --tool $tool --outdir ../log
+done
+
diff --git a/meta/recipes-extended/procps/procps_4.0.5.bb b/meta/recipes-extended/procps/procps_4.0.5.bb
index 0e0e06f0d2..d39bb5062f 100644
--- a/meta/recipes-extended/procps/procps_4.0.5.bb
+++ b/meta/recipes-extended/procps/procps_4.0.5.bb
@@ -10,12 +10,14 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
DEPENDS = "ncurses"
-inherit autotools gettext pkgconfig update-alternatives
+inherit autotools gettext pkgconfig update-alternatives ${@bb.utils.contains('TCLIBC', 'glibc', 'ptest', '', d)}
SRC_URI = "git://gitlab.com/procps-ng/procps.git;protocol=https;branch=master;tag=v${PV} \
file://sysctl.conf \
file://top_large_pid_fix.patch \
"
+SRC_URI:append:libc-glibc = " file://run-ptest"
+
SRCREV = "f46b2f7929cdfe2913ed0a7f585b09d6adbf994e"
# Upstream has a custom autogen.sh which invokes po/update-potfiles as they
@@ -47,8 +49,51 @@ do_install:append () {
fi
}
-CONFFILES:${PN} = "${sysconfdir}/sysctl.conf"
+do_compile_ptest() {
+ oe_runmake -C testsuite site.exp
+ oe_runmake src/tests/test_process src/tests/test_strutils src/tests/test_fileutils src/tests/test_shm
+ DEJATOOL=$(make -C testsuite -s -f Makefile -f - <<'EOF'
+all:
+ $(info $(DEJATOOL))
+EOF
+)
+ echo $DEJATOOL > ${B}/testsuite/.dejatool
+}
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/testsuite
+ install -d ${D}${PTEST_PATH}/src
+ install -d ${D}${PTEST_PATH}/log
+
+ cp -r ${S}/testsuite/* ${D}${PTEST_PATH}/testsuite/
+ cp -r ${B}/testsuite/* ${D}${PTEST_PATH}/testsuite/
+ cp -r ${B}/src/tests ${D}${PTEST_PATH}/src/
+
+ rm -rf ${D}${PTEST_PATH}/testsuite/Makefile*
+ rm -rf ${D}${PTEST_PATH}/testsuite/README
+ find ${D}${PTEST_PATH}/testsuite/ -type f -name "*.o" -exec rm -f {} +
+ find ${D}${PTEST_PATH}/src/ -type f -name "*.o" -exec rm -f {} +
+
+ sed -i -e "/set srcdir/c\set srcdir ${PTEST_PATH}/testsuite" \
+ -e "/set objdir/c\set objdir ${PTEST_PATH}/testsuite" ${D}${PTEST_PATH}/testsuite/site.exp
+
+ DEJATOOL=$(cat ${B}/testsuite/.dejatool)
+ sed -i -e "s#@DEJATOOL@#$DEJATOOL#g" ${D}${PTEST_PATH}/run-ptest
+ for p in $DEJATOOL; do
+ if [ "$p" = "ps" ]; then
+ install -d ${D}${PTEST_PATH}/src/ps
+ ln -sf ${base_bindir}/ps ${D}${PTEST_PATH}/src/ps/pscommand
+ elif [ "$p" = "sysctl" ]; then
+ ln -sf ${base_sbindir}/$p ${D}${PTEST_PATH}/src/$p
+ elif [ "$p" = "kill" ] || [ "$p" = "pidof" ] || [ "$p" = "watch" ]; then
+ ln -sf ${base_bindir}/$p ${D}${PTEST_PATH}/src/$p
+ else
+ ln -sf ${bindir}/$p ${D}${PTEST_PATH}/src/$p
+ fi
+ done
+}
+CONFFILES:${PN} = "${sysconfdir}/sysctl.conf"
bindir_progs = "free pkill pmap pgrep pwdx skill snice top uptime w"
base_bindir_progs += "kill pidof ps watch"
base_sbindir_progs += "sysctl"
@@ -80,6 +125,8 @@ RDEPENDS:${PN} += "${PROCPS_PACKAGES}"
RDEPENDS:${PN}-ps += "${PN}-lib"
RDEPENDS:${PN}-sysctl += "${PN}-lib"
+RDEPENDS:${PN}-ptest += "dejagnu bash glibc-utils"
+
FILES:${PN}-lib = "${libdir}"
FILES:${PN}-ps = "${base_bindir}/ps.${BPN}"
FILES:${PN}-sysctl = "${base_sbindir}/sysctl.${BPN} ${sysconfdir}/sysctl.conf ${sysconfdir}/sysctl.d"
--
2.34.1
next reply other threads:[~2026-01-16 9:27 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-16 9:27 changqing.li [this message]
2026-01-26 13:01 ` [OE-core] [PATCH V2] procps: support ptest when TCLIBC is glibc Ross Burton
2026-01-27 8:57 ` Changqing Li
2026-01-27 8:58 ` [PATCH V3] " changqing.li
2026-01-28 11:32 ` [OE-core] " Richard Purdie
2026-01-29 7:39 ` Changqing Li
2026-01-29 7:48 ` [PATCH V4] " changqing.li
[not found] ` <188F2427284C7A56.4057262@lists.openembedded.org>
2026-02-09 1:58 ` [OE-core] " Changqing Li
[not found] ` <188E8AC794A362CA.3302988@lists.openembedded.org>
2026-01-27 9:06 ` [OE-core] [PATCH V3] " Changqing Li
-- strict thread matches above, loose matches on Subject: below --
2026-02-26 13:13 [OE-core] [PATCH 2/2] " Ross Burton
2026-02-27 6:49 ` [PATCH V2] " Changqing Li
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260116092704.2465341-1-changqing.li@windriver.com \
--to=changqing.li@windriver.com \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox