@@ -59,6 +59,7 @@ PTESTS_FAST = "\
nettle \
opkg \
popt \
+ procps \
python3-atomicwrites \
python3-attrs \
python3-bcrypt \
@@ -99,6 +100,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 \
new file mode 100644
@@ -0,0 +1,55 @@
+From 56505e2ac9b703aac979f0849814ab7c83af57e2 Mon Sep 17 00:00:00 2001
+From: Craig Small <csmall@dropbear.xyz>
+Date: Mon, 9 Feb 2026 18:19:35 +1100
+Subject: [PATCH] tests: Disable twice total pmap -X tests
+
+Sometimes the memory count can be just a little different
+but the test is equal, i.e. must be the exact number.
+This means sometimes the test fails.
+
+This removes the pmap -XX pid pid and pmap -X pid pid tests
+for checking the result is the same.
+
+Debian buildds this test never works and has been removed
+for a while.
+
+References:
+ #409
+
+Signed-off-by: Craig Small <csmall@dropbear.xyz>
+
+Upstream-Status: Backport [https://gitlab.com/procps-ng/procps/-/commit/bbe21e141b77398586c90884a43ff75996b83843]
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ testsuite/pmap.test/pmap.exp | 15 ++++++++-------
+ 1 file changed, 8 insertions(+), 7 deletions(-)
+
+diff --git a/testsuite/pmap.test/pmap.exp b/testsuite/pmap.test/pmap.exp
+index d37b55e5..6fb6fa1e 100644
+--- a/testsuite/pmap.test/pmap.exp
++++ b/testsuite/pmap.test/pmap.exp
+@@ -93,13 +93,14 @@ proc expect_twice_total { test } {
+ }
+ }
+
+-set test "pmap X pid pid has same total"
+-spawn $pmap -X $mypid $mypid
+-expect_twice_total "$test"
+-
+-set test "pmap XX pid pid has same total"
+-spawn $pmap -XX $mypid $mypid
+-expect_twice_total "$test"
++# Disabled twice total as there can be a small change issue #409
++#set test "pmap X pid pid has same total"
++#spawn $pmap -X $mypid $mypid
++#expect_twice_total "$test"
++
++#set test "pmap XX pid pid has same total"
++#spawn $pmap -XX $mypid $mypid
++#expect_twice_total "$test"
+
+ set test "pmap finding shm"
+ make_testshm_proc
+--
+2.34.1
+
new file mode 100644
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+# Run testsuite which use dejagnu
+cd ./testsuite
+for tool in @DEJATOOL@; do
+ runtest -a --tool $tool --outdir ../log
+done
+cd -
+
+# Run test programs not used by dejagnu but run directly
+for p in @TESTS@; do
+ ./src/tests/"$p" > ./log/"$p".log 2>&1
+ case "$?" in
+ 0)
+ echo "PASS: $p"
+ ;;
+ 77)
+ echo "SKIP: $p"
+ ;;
+ *)
+ echo "FAIL: $p"
+ ;;
+ esac
+done
@@ -10,10 +10,12 @@ 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://0001-tests-Disable-twice-total-pmap-X-tests.patch \
+ file://run-ptest \
"
SRCREV = "4dafddf4c3f4646caa517f039a2307e92657ec93"
@@ -46,6 +48,58 @@ do_install:append () {
fi
}
+do_compile_ptest() {
+ for p in $(makefile-getvar ${B}/Makefile check_PROGRAMS); do
+ oe_runmake $p
+ done
+ oe_runmake -C testsuite site.exp
+}
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/testsuite
+ install -d ${D}${PTEST_PATH}/src/tests
+ install -d ${D}${PTEST_PATH}/log
+
+ install -m644 ${B}/testsuite/site.exp ${D}${PTEST_PATH}/testsuite/
+ for p in $(makefile-getvar ${B}/testsuite/Makefile noinst_PROGRAMS); do
+ install -m755 ${B}/testsuite/$p ${D}${PTEST_PATH}/testsuite/
+ done
+ cp -r ${S}/testsuite/* ${D}${PTEST_PATH}/testsuite/
+
+ for p in $(makefile-getvar ${B}/Makefile check_PROGRAMS);do
+ case "$p" in
+ src/tests/*)
+ install -m 0755 ${B}/$p ${D}${PTEST_PATH}/src/tests/ ;;
+ library/tests/*)
+ install -m 0755 ${B}/library/tests/.libs/$(basename $p) ${D}${PTEST_PATH}/src/tests/ ;;
+ esac
+ done
+
+ tests=""
+ for p in $(makefile-getvar ${B}/Makefile TESTS); do
+ tests="$tests $(basename $p)"
+ done
+ sed -i -e "s#@TESTS@#$tests#" ${D}${PTEST_PATH}/run-ptest
+
+ 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
+
+ sed -i -e "s#@DEJATOOL@#$(makefile-getvar ${B}/testsuite/Makefile DEJATOOL)#" ${D}${PTEST_PATH}/run-ptest
+ for p in $(makefile-getvar ${B}/testsuite/Makefile 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"
@@ -78,6 +132,7 @@ RDEPENDS:${PN} += "${PROCPS_PACKAGES}"
RDEPENDS:${PN}-ps += "${PN}-lib"
RDEPENDS:${PN}-sysctl += "${PN}-lib"
+RDEPENDS:${PN}-ptest += "dejagnu glibc-utils"
FILES:${PN}-lib = "${libdir}"
FILES:${PN}-ps = "${base_bindir}/ps.${BPN}"
* 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 + ...sts-Disable-twice-total-pmap-X-tests.patch | 55 ++++++++++++++++++ meta/recipes-extended/procps/procps/run-ptest | 24 ++++++++ meta/recipes-extended/procps/procps_4.0.6.bb | 57 ++++++++++++++++++- 4 files changed, 137 insertions(+), 1 deletion(-) create mode 100644 meta/recipes-extended/procps/procps/0001-tests-Disable-twice-total-pmap-X-tests.patch create mode 100644 meta/recipes-extended/procps/procps/run-ptest