From 39f1520cd7bc5cb01f47faa5cc3af50621418cda Mon Sep 17 00:00:00 2001 From: Poonam Jadhav Date: Mon, 16 Jun 2025 10:16:04 +0530 Subject: [PATCH] libpng: Add ptest Install libpng test-suite to run it as a ptest. As the test-suite takes more than 30 seconds to run, add libpng-ptest to PTESTS_SLOW in ptest-packagelists.inc (From OE-Core rev: 1b52b7ebe5f8fb490088622181cdb95e6b7f5a29) Signed-off-by: Poonam Jadhav Signed-off-by: Steve Sakoman --- .../distro/include/ptest-packagelists.inc | 1 + .../recipes-multimedia/libpng/files/run-ptest | 7 ++++ .../libpng/libpng_1.6.42.bb | 42 ++++++++++++++++++- 3 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 meta/recipes-multimedia/libpng/files/run-ptest diff --git a/meta/conf/distro/include/ptest-packagelists.inc b/meta/conf/distro/include/ptest-packagelists.inc index 3387e19191..9950e46776 100644 --- a/meta/conf/distro/include/ptest-packagelists.inc +++ b/meta/conf/distro/include/ptest-packagelists.inc @@ -102,6 +102,7 @@ PTESTS_SLOW = "\ libevent \ libgcrypt \ libmodule-build-perl \ + libpng \ lttng-tools \ openssh \ openssl \ diff --git a/meta/recipes-multimedia/libpng/files/run-ptest b/meta/recipes-multimedia/libpng/files/run-ptest new file mode 100644 index 0000000000..85051a59f5 --- /dev/null +++ b/meta/recipes-multimedia/libpng/files/run-ptest @@ -0,0 +1,7 @@ +#!/bin/sh + +set -eux + +cd src + +make check-TESTS diff --git a/meta/recipes-multimedia/libpng/libpng_1.6.42.bb b/meta/recipes-multimedia/libpng/libpng_1.6.42.bb index 673133bb4a..4c21e8d597 100644 --- a/meta/recipes-multimedia/libpng/libpng_1.6.42.bb +++ b/meta/recipes-multimedia/libpng/libpng_1.6.42.bb @@ -10,7 +10,10 @@ DEPENDS = "zlib" LIBV = "16" -SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}${LIBV}/${PV}/${BP}.tar.xz" +SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}${LIBV}/${PV}/${BP}.tar.xz \ + file://run-ptest \ +" + SRC_URI[sha256sum] = "c919dbc11f4c03b05aba3f8884d8eb7adfe3572ad228af972bb60057bdb48450" MIRRORS += "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}${LIBV}/ ${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}${LIBV}/older-releases/" @@ -19,7 +22,7 @@ UPSTREAM_CHECK_URI = "http://libpng.org/pub/png/libpng.html" BINCONFIG = "${bindir}/libpng-config ${bindir}/libpng16-config" -inherit autotools binconfig-disabled pkgconfig +inherit autotools binconfig-disabled pkgconfig ptest # Work around missing symbols ARMNEON = "${@bb.utils.contains("TUNE_FEATURES", "neon", "--enable-arm-neon=on", "--enable-arm-neon=off", d)}" @@ -30,4 +33,39 @@ PACKAGES =+ "${PN}-tools" FILES:${PN}-tools = "${bindir}/png-fix-itxt ${bindir}/pngfix ${bindir}/pngcp" +RDEPENDS:${PN}-ptest += "make bash gawk" + +do_install_ptest() { + # Install test scripts to ptest path + install -d ${D}${PTEST_PATH}/src/tests + install -m 755 ${S}/tests/* ${D}${PTEST_PATH}/src/tests + install -m 755 ${S}/test-driver ${D}${PTEST_PATH}/src + install -d ${D}${PTEST_PATH}/src/tests/scripts + install -m 755 ${S}/scripts/*.awk ${D}${PTEST_PATH}/src/tests/scripts + install -m 644 ${S}/scripts/pnglib* ${S}/scripts/*.c ${S}/scripts/*.def ${S}/scripts/macro.lst ${D}${PTEST_PATH}/src/tests/scripts + install -m 644 ${S}/scripts/pnglibconf.h.prebuilt ${D}${PTEST_PATH}/src/tests/scripts/pnglibconf.h + install -d ${D}${PTEST_PATH}/src/contrib/tools + install -m 755 ${S}/contrib/tools/*.sh ${D}${PTEST_PATH}/src/contrib/tools + install -m 644 ${S}/contrib/tools/*.c ${S}/contrib/tools/*.h ${D}${PTEST_PATH}/src/contrib/tools + + # Install .libs directory binaries to ptest path + install -m 755 ${B}/.libs/pngtest ${B}/.libs/pngstest ${B}/.libs/pngimage ${B}/.libs/pngunknown ${B}/.libs/pngvalid ${D}${PTEST_PATH}/src + + # Copy png files to ptest path + cd ${S} && find contrib -name '*.png' | cpio -pd ${D}${PTEST_PATH}/src + + # Install Makefile and png files + install -m 644 ${S}/pngtest.png ${D}${PTEST_PATH}/src + install -m 644 ${S}/*.png ${S}/*.h ${S}/*.c ${S}/*.dfa ${B}/pnglibconf.out ${S}/Makefile.am ${S}/Makefile.in ${D}${PTEST_PATH}/src/tests + + sed -e 's/^abs_srcdir = ..*/abs_srcdir = \.\./' \ + -e 's/^top_srcdir = ..*/top_srcdir = \.\./' \ + -e 's/^srcdir = ..*/srcdir = \./' \ + -e 's/^Makefile: ..*/Makefile: /' \ + -e 's/check-TESTS: $(check_PROGRAMS)/check-TESTS:/g' \ + ${B}/Makefile > ${D}${PTEST_PATH}/src/Makefile + + sed -e 's|#!/bin/awk|#!/usr/bin/awk|g' -i ${D}${PTEST_PATH}/src/tests/scripts/*.awk +} + BBCLASSEXTEND = "native nativesdk"