@@ -64,6 +64,7 @@ PTESTS_FAST = "\
nettle \
opkg \
popt \
+ procps \
python3-atomicwrites \
python3-attrs \
python3-bcrypt \
@@ -104,6 +105,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 ptest
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"
@@ -24,6 +26,8 @@ do_configure:prepend() {
( cd ${S} && po/update-potfiles )
}
+PTEST_ENABLED:libc-musl = "0"
+
EXTRA_OECONF = "--enable-skill --disable-modern-top"
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
@@ -46,6 +50,53 @@ 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
+ ${B}/libtool --mode=install install -m 0755 ${B}/$p ${D}${PTEST_PATH}/src/tests/
+ 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 +129,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}"