| Message ID | 20260114044319.2830540-1-changqing.li@windriver.com |
|---|---|
| State | New |
| Headers | show |
| Series | procps: support ptest | expand |
Hi, On Wed Jan 14, 2026 at 5:43 AM CET, Changqing Li via lists.openembedded.org wrote: > From: Changqing Li <changqing.li@windriver.com> > > support ptest for procps, 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 | 1 + > meta/recipes-extended/procps/procps/run-ptest | 7 +++ > meta/recipes-extended/procps/procps_4.0.5.bb | 50 ++++++++++++++++++- > 3 files changed, 56 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..0a4ff49ee3 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 \ > diff --git a/meta/recipes-extended/procps/procps/run-ptest b/meta/recipes-extended/procps/procps/run-ptest > new file mode 100644 > index 0000000000..c999876bd8 > --- /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..b4697f7ce3 100644 > --- a/meta/recipes-extended/procps/procps_4.0.5.bb > +++ b/meta/recipes-extended/procps/procps_4.0.5.bb > @@ -10,11 +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://top_large_pid_fix.patch \ > + file://run-ptest \ > " > SRCREV = "f46b2f7929cdfe2913ed0a7f585b09d6adbf994e" > > @@ -47,8 +48,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 +124,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" I think this triggered the following error on our test infrastructure: NOTE: Resolving any missing task queue dependencies ERROR: Nothing RPROVIDES 'glibc-utils' (but /srv/pokybuild/yocto-worker/musl-qemux86/build/layers/openembedded-core/meta/recipes-extended/procps/procps_4.0.5.bb RDEPENDS on or otherwise requires it) Can you have a look? https://autobuilder.yoctoproject.org/valkyrie/api/v2/logs/4942697/raw_inline https://autobuilder.yoctoproject.org/valkyrie/#/builders/6/builds/3047 Antonin
On 1/15/26 15:53, Antonin Godard via lists.openembedded.org wrote: > CAUTION: This email comes from a non Wind River email account! > Do not click links or open attachments unless you recognize the sender and know the content is safe. > > Hi, > > On Wed Jan 14, 2026 at 5:43 AM CET, Changqing Li via lists.openembedded.org wrote: >> From: Changqing Li <changqing.li@windriver.com> >> >> support ptest for procps, 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 | 1 + >> meta/recipes-extended/procps/procps/run-ptest | 7 +++ >> meta/recipes-extended/procps/procps_4.0.5.bb | 50 ++++++++++++++++++- >> 3 files changed, 56 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..0a4ff49ee3 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 \ >> diff --git a/meta/recipes-extended/procps/procps/run-ptest b/meta/recipes-extended/procps/procps/run-ptest >> new file mode 100644 >> index 0000000000..c999876bd8 >> --- /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..b4697f7ce3 100644 >> --- a/meta/recipes-extended/procps/procps_4.0.5.bb >> +++ b/meta/recipes-extended/procps/procps_4.0.5.bb >> @@ -10,11 +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://top_large_pid_fix.patch \ >> + file://run-ptest \ >> " >> SRCREV = "f46b2f7929cdfe2913ed0a7f585b09d6adbf994e" >> >> @@ -47,8 +48,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 +124,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" > I think this triggered the following error on our test infrastructure: > > NOTE: Resolving any missing task queue dependencies > ERROR: Nothing RPROVIDES 'glibc-utils' (but /srv/pokybuild/yocto-worker/musl-qemux86/build/layers/openembedded-core/meta/recipes-extended/procps/procps_4.0.5.bb RDEPENDS on or otherwise requires it) > > Can you have a look? > > https://autobuilder.yoctoproject.org/valkyrie/api/v2/logs/4942697/raw_inline > https://autobuilder.yoctoproject.org/valkyrie/#/builders/6/builds/3047 > > Antonin V2 patch is sent to fix this issue. Regards Changqing > -- > Antonin Godard, Bootlin > Embedded Linux and Kernel engineering > https://bootlin.com > > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#229388): https://lists.openembedded.org/g/openembedded-core/message/229388 > Mute This Topic: https://lists.openembedded.org/mt/117256827/3616873 > Group Owner: openembedded-core+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [changqing.li@windriver.com] > -=-=-=-=-=-=-=-=-=-=-=- >
diff --git a/meta/conf/distro/include/ptest-packagelists.inc b/meta/conf/distro/include/ptest-packagelists.inc index fff2947177..0a4ff49ee3 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 \ diff --git a/meta/recipes-extended/procps/procps/run-ptest b/meta/recipes-extended/procps/procps/run-ptest new file mode 100644 index 0000000000..c999876bd8 --- /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..b4697f7ce3 100644 --- a/meta/recipes-extended/procps/procps_4.0.5.bb +++ b/meta/recipes-extended/procps/procps_4.0.5.bb @@ -10,11 +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://top_large_pid_fix.patch \ + file://run-ptest \ " SRCREV = "f46b2f7929cdfe2913ed0a7f585b09d6adbf994e" @@ -47,8 +48,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 +124,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"