diff mbox series

libmd: add ptest for 'libmd'

Message ID 20250919120527.1517036-1-namanj1@kpit.com
State New
Headers show
Series libmd: add ptest for 'libmd' | expand

Commit Message

Naman Jain Sept. 19, 2025, 12:05 p.m. UTC
Adapt the compile 'test' phony target from Makefile and deploy as
ptest for libmd.
It takes less than 30seconds for ptest completion

Signed-off-by: Naman Jain <namanj1@kpit.com>
---
 .../conf/distro/include/ptest-packagelists.inc |  1 +
 meta/recipes-support/libmd/files/run-ptest     | 18 ++++++++++++++++++
 meta/recipes-support/libmd/libmd_1.1.0.bb      | 17 ++++++++++++++++-
 3 files changed, 35 insertions(+), 1 deletion(-)
 create mode 100644 meta/recipes-support/libmd/files/run-ptest

Comments

Mathieu Dubois-Briand Sept. 21, 2025, 12:28 p.m. UTC | #1
On Fri Sep 19, 2025 at 2:05 PM CEST, Naman Jain via lists.openembedded.org wrote:
> Adapt the compile 'test' phony target from Makefile and deploy as
> ptest for libmd.
> It takes less than 30seconds for ptest completion
>
> Signed-off-by: Naman Jain <namanj1@kpit.com>
> ---

Hi Naman,

Thanks for your patch.

It looks like we have a QA issue with it:

ERROR: lib32-libmd-1.1.0-r0 do_package_qa: QA Issue: File /usr/lib/libmd/ptest/test/sha1 in package lib32-libmd-ptest contains reference to TMPDIR [buildpaths]
ERROR: lib32-libmd-1.1.0-r0 do_package_qa: QA Issue: File /usr/lib/libmd/ptest/test/rmd160 in package lib32-libmd-ptest contains reference to TMPDIR [buildpaths]
ERROR: lib32-libmd-1.1.0-r0 do_package_qa: QA Issue: File /usr/lib/libmd/ptest/test/md5 in package lib32-libmd-ptest contains reference to TMPDIR [buildpaths]
ERROR: lib32-libmd-1.1.0-r0 do_package_qa: QA Issue: File /usr/lib/libmd/ptest/test/md4 in package lib32-libmd-ptest contains reference to TMPDIR [buildpaths]
ERROR: lib32-libmd-1.1.0-r0 do_package_qa: QA Issue: File /usr/lib/libmd/ptest/test/md2 in package lib32-libmd-ptest contains reference to TMPDIR [buildpaths]
ERROR: lib32-libmd-1.1.0-r0 do_package_qa: QA Issue: File /usr/lib/libmd/ptest/test/sha2 in package lib32-libmd-ptest contains reference to TMPDIR [buildpaths]
ERROR: lib32-libmd-1.1.0-r0 do_package_qa: QA Issue: /usr/lib/libmd/ptest/test/sha2 contained in package lib32-libmd-ptest requires /bin/bash, but no providers found in RDEPENDS:lib32-libmd-ptest? [file-rdeps]
ERROR: lib32-libmd-1.1.0-r0 do_package_qa: Fatal QA errors were found, failing task.
ERROR: Logfile of failure stored in: /srv/pokybuild/yocto-worker/qemux86-world/build/build/tmp/work/x86-pokymllib32-linux/lib32-libmd/1.1.0/temp/log.do_package_qa.1674361
NOTE: recipe lib32-libmd-1.1.0-r0: task do_package_qa: Failed

https://autobuilder.yoctoproject.org/valkyrie/#/builders/59/builds/2419

Can you fix it, please?

Thanks,
Mathieu
Naman Jain Sept. 22, 2025, 8:22 a.m. UTC | #2
Hi Mathieu,
Thanks for the information. It seems the patch is working for us in master
and scarthgap branch. Can you please suggest the steps to reproduce this
error in our build so that we can provide the fix for it.

Thanks,
Naman Jain

On Sun, 21 Sept, 2025, 5:58 pm Mathieu Dubois-Briand, <
mathieu.dubois-briand@bootlin.com> wrote:

> On Fri Sep 19, 2025 at 2:05 PM CEST, Naman Jain via lists.openembedded.org
> wrote:
> > Adapt the compile 'test' phony target from Makefile and deploy as
> > ptest for libmd.
> > It takes less than 30seconds for ptest completion
> >
> > Signed-off-by: Naman Jain <namanj1@kpit.com>
> > ---
>
> Hi Naman,
>
> Thanks for your patch.
>
> It looks like we have a QA issue with it:
>
> ERROR: lib32-libmd-1.1.0-r0 do_package_qa: QA Issue: File
> /usr/lib/libmd/ptest/test/sha1 in package lib32-libmd-ptest contains
> reference to TMPDIR [buildpaths]
> ERROR: lib32-libmd-1.1.0-r0 do_package_qa: QA Issue: File
> /usr/lib/libmd/ptest/test/rmd160 in package lib32-libmd-ptest contains
> reference to TMPDIR [buildpaths]
> ERROR: lib32-libmd-1.1.0-r0 do_package_qa: QA Issue: File
> /usr/lib/libmd/ptest/test/md5 in package lib32-libmd-ptest contains
> reference to TMPDIR [buildpaths]
> ERROR: lib32-libmd-1.1.0-r0 do_package_qa: QA Issue: File
> /usr/lib/libmd/ptest/test/md4 in package lib32-libmd-ptest contains
> reference to TMPDIR [buildpaths]
> ERROR: lib32-libmd-1.1.0-r0 do_package_qa: QA Issue: File
> /usr/lib/libmd/ptest/test/md2 in package lib32-libmd-ptest contains
> reference to TMPDIR [buildpaths]
> ERROR: lib32-libmd-1.1.0-r0 do_package_qa: QA Issue: File
> /usr/lib/libmd/ptest/test/sha2 in package lib32-libmd-ptest contains
> reference to TMPDIR [buildpaths]
> ERROR: lib32-libmd-1.1.0-r0 do_package_qa: QA Issue:
> /usr/lib/libmd/ptest/test/sha2 contained in package lib32-libmd-ptest
> requires /bin/bash, but no providers found in RDEPENDS:lib32-libmd-ptest?
> [file-rdeps]
> ERROR: lib32-libmd-1.1.0-r0 do_package_qa: Fatal QA errors were found,
> failing task.
> ERROR: Logfile of failure stored in:
> /srv/pokybuild/yocto-worker/qemux86-world/build/build/tmp/work/x86-pokymllib32-linux/lib32-libmd/1.1.0/temp/log.do_package_qa.1674361
> NOTE: recipe lib32-libmd-1.1.0-r0: task do_package_qa: Failed
>
> https://autobuilder.yoctoproject.org/valkyrie/#/builders/59/builds/2419
>
> Can you fix it, please?
>
> Thanks,
> Mathieu
>
> --
> Mathieu Dubois-Briand, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
>
>
Naman Jain Sept. 22, 2025, 10:16 a.m. UTC | #3
Hi Mathieu,
Thanks for the information. It seems the patch is working for us in master
and scarthgap branch. Can you please suggest the steps to reproduce this
error in our build so that we can provide the fix for it.

Thanks,
Naman Jain


On Sun, 21 Sept, 2025, 5:58 pm Mathieu Dubois-Briand, <
mathieu.dubois-briand@bootlin.com> wrote:

> On Fri Sep 19, 2025 at 2:05 PM CEST, Naman Jain via lists.openembedded.org
> wrote:
> > Adapt the compile 'test' phony target from Makefile and deploy as
> > ptest for libmd.
> > It takes less than 30seconds for ptest completion
> >
> > Signed-off-by: Naman Jain <namanj1@kpit.com>
> > ---
>
> Hi Naman,
>
> Thanks for your patch.
>
> It looks like we have a QA issue with it:
>
> ERROR: lib32-libmd-1.1.0-r0 do_package_qa: QA Issue: File
> /usr/lib/libmd/ptest/test/sha1 in package lib32-libmd-ptest contains
> reference to TMPDIR [buildpaths]
> ERROR: lib32-libmd-1.1.0-r0 do_package_qa: QA Issue: File
> /usr/lib/libmd/ptest/test/rmd160 in package lib32-libmd-ptest contains
> reference to TMPDIR [buildpaths]
> ERROR: lib32-libmd-1.1.0-r0 do_package_qa: QA Issue: File
> /usr/lib/libmd/ptest/test/md5 in package lib32-libmd-ptest contains
> reference to TMPDIR [buildpaths]
> ERROR: lib32-libmd-1.1.0-r0 do_package_qa: QA Issue: File
> /usr/lib/libmd/ptest/test/md4 in package lib32-libmd-ptest contains
> reference to TMPDIR [buildpaths]
> ERROR: lib32-libmd-1.1.0-r0 do_package_qa: QA Issue: File
> /usr/lib/libmd/ptest/test/md2 in package lib32-libmd-ptest contains
> reference to TMPDIR [buildpaths]
> ERROR: lib32-libmd-1.1.0-r0 do_package_qa: QA Issue: File
> /usr/lib/libmd/ptest/test/sha2 in package lib32-libmd-ptest contains
> reference to TMPDIR [buildpaths]
> ERROR: lib32-libmd-1.1.0-r0 do_package_qa: QA Issue:
> /usr/lib/libmd/ptest/test/sha2 contained in package lib32-libmd-ptest
> requires /bin/bash, but no providers found in RDEPENDS:lib32-libmd-ptest?
> [file-rdeps]
> ERROR: lib32-libmd-1.1.0-r0 do_package_qa: Fatal QA errors were found,
> failing task.
> ERROR: Logfile of failure stored in:
> /srv/pokybuild/yocto-worker/qemux86-world/build/build/tmp/work/x86-pokymllib32-linux/lib32-libmd/1.1.0/temp/log.do_package_qa.1674361
> NOTE: recipe lib32-libmd-1.1.0-r0: task do_package_qa: Failed
>
> https://autobuilder.yoctoproject.org/valkyrie/#/builders/59/builds/2419
>
> Can you fix it, please?
>
> Thanks,
> Mathieu
>
> --
> Mathieu Dubois-Briand, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
>
>
Mathieu Dubois-Briand Sept. 22, 2025, 1:47 p.m. UTC | #4
On Mon Sep 22, 2025 at 12:16 PM CEST, Naman Jain wrote:
> Hi Mathieu,
> Thanks for the information. It seems the patch is working for us in master
> and scarthgap branch. Can you please suggest the steps to reproduce this
> error in our build so that we can provide the fix for it.
>
> Thanks,
> Naman Jain
>

Hi Naman,

Now this failure is a bit strange, because I'm having a hard time
reproducing this out of the autobuilder. The behaviour of the libtool
command in do_install_ptest() is different when I build locally.

So first, how can you reproduce this locally:

git clone https://git.yoctoproject.org/poky-ci-archive -b autobuilder.yoctoproject.org/valkyrie/a-full-2415
. oe-init-build-env
bitbake libmd
# Above build log is for lib32-libmd, but libmd should show the same
# error.

Now, on my computer, the build succeeds, while it fails on the
autobuilder.

The difference lies in the libtool command output. On both the
autobuilder and my computer, the input file is a shell script wrapper
generated by libtool. But on the my computer the output is a binary,
while on the autobuilder the output is the same script as in input. As
the script contains a reference to the build directory, it triggers the
QA error.

I will try to go further and understand why the behaviour is different.

Thanks,
Mathieu
Mathieu Dubois-Briand Sept. 22, 2025, 5:03 p.m. UTC | #5
On Fri Sep 19, 2025 at 2:05 PM CEST, Naman Jain via lists.openembedded.org wrote:
> diff --git a/meta/recipes-support/libmd/libmd_1.1.0.bb b/meta/recipes-support/libmd/libmd_1.1.0.bb
> index dc588a0f95..a39a5ec65b 100644
> --- a/meta/recipes-support/libmd/libmd_1.1.0.bb
> +++ b/meta/recipes-support/libmd/libmd_1.1.0.bb
> @@ -11,6 +11,21 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=0436d4fb62a71f661d6e8b7812f9e1df"
>  SRC_URI = "https://archive.hadrons.org/software/libmd/libmd-${PV}.tar.xz"
>  SRC_URI[sha256sum] = "1bd6aa42275313af3141c7cf2e5b964e8b1fd488025caf2f971f43b00776b332"
>  
> -inherit autotools
> +inherit autotools ptest
> +
> +do_compile_ptest() {
> +    sed -i "/\$(MAKE) \$(AM_MAKEFLAGS) check-TESTS/d" test/Makefile
> +    oe_runmake check
> +}
> +
> +
> +do_install_ptest() {
> +    install -d ${D}${PTEST_PATH}/test
> +    for bin in ${B}/test/*; do
> +        if [ -x "$bin" ]; then
> +            libtool --mode=install install "$bin" ${D}${PTEST_PATH}/test/$(basename "$bin")

Hi Naman,

Can you use ${B}/libtool here instead of libtool? It looks like it
should fix the issue we are seeing.

> +        fi
> +    done
> +}
>  
>  BBCLASSEXTEND = "native nativesdk"

Thanks,
Mathieu
diff mbox series

Patch

diff --git a/meta/conf/distro/include/ptest-packagelists.inc b/meta/conf/distro/include/ptest-packagelists.inc
index e6e725bd25..4be87fb780 100644
--- a/meta/conf/distro/include/ptest-packagelists.inc
+++ b/meta/conf/distro/include/ptest-packagelists.inc
@@ -30,6 +30,7 @@  PTESTS_FAST = "\
     libconvert-asn1-perl \
     libexif \
     libgpg-error\
+    libmd\
     libnl \
     libpcre \
     librsvg \
diff --git a/meta/recipes-support/libmd/files/run-ptest b/meta/recipes-support/libmd/files/run-ptest
new file mode 100644
index 0000000000..0c4a5f64ec
--- /dev/null
+++ b/meta/recipes-support/libmd/files/run-ptest
@@ -0,0 +1,18 @@ 
+#!/bin/sh
+
+cd test
+status = 0
+
+for testbin in *; do
+    if [ -x "$testbin" ] && [ ! -d "$testbin" ]; then
+        if "./$testbin"; then
+            echo "PASS: $testbin"
+        else
+            echo "FAIL: $testbin"
+            status=1
+        fi
+    fi
+done
+
+return $status
+
diff --git a/meta/recipes-support/libmd/libmd_1.1.0.bb b/meta/recipes-support/libmd/libmd_1.1.0.bb
index dc588a0f95..a39a5ec65b 100644
--- a/meta/recipes-support/libmd/libmd_1.1.0.bb
+++ b/meta/recipes-support/libmd/libmd_1.1.0.bb
@@ -11,6 +11,21 @@  LIC_FILES_CHKSUM = "file://COPYING;md5=0436d4fb62a71f661d6e8b7812f9e1df"
 SRC_URI = "https://archive.hadrons.org/software/libmd/libmd-${PV}.tar.xz"
 SRC_URI[sha256sum] = "1bd6aa42275313af3141c7cf2e5b964e8b1fd488025caf2f971f43b00776b332"
 
-inherit autotools
+inherit autotools ptest
+
+do_compile_ptest() {
+    sed -i "/\$(MAKE) \$(AM_MAKEFLAGS) check-TESTS/d" test/Makefile
+    oe_runmake check
+}
+
+
+do_install_ptest() {
+    install -d ${D}${PTEST_PATH}/test
+    for bin in ${B}/test/*; do
+        if [ -x "$bin" ]; then
+            libtool --mode=install install "$bin" ${D}${PTEST_PATH}/test/$(basename "$bin")
+        fi
+    done
+}
 
 BBCLASSEXTEND = "native nativesdk"