libpng: Add ptest for libpng

libpng is a platform-independent library which
supports all PNG features.
This ptest executes the below binaries, parses
the png image and prints the image features.

1. pngfix - provides information about PNG image
copyrights details.

2. pngtest - tests, optimizes and optionally fixes
the zlib header in PNG files.

3. pngstest - verifies the integrity of PNG image by
dumping chunk level information.

4. timepng - provides details about PNG image chunks.

(From OE-Core rev: 2d58b38185ca7eed5d885b8d00ca549b57138554)

Signed-off-by: Nikhil R <nikhil.r@kpit.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
This commit is contained in:
Nikhil R
2023-07-06 10:22:28 +05:30
committed by Steve Sakoman
parent 934cbbc48e
commit 67c4196ac1
3 changed files with 44 additions and 2 deletions

View File

@@ -29,6 +29,7 @@ PTESTS_FAST = "\
libnl-ptest \
libmodule-build-perl-ptest \
libpcre-ptest \
libpng-ptest \
libssh2-ptest \
libtimedate-perl-ptest \
libtest-needs-perl-ptest \

View File

@@ -0,0 +1,29 @@
#!/bin/sh
set -eux
./pngfix pngtest.png &> log.txt 2>&1
if grep -i "OK" log.txt 2>&1 ; then
echo "PASS: pngfix passed"
else
echo "FAIL: pngfix failed"
fi
rm -f log.txt
./pngtest pngtest.png &> log.txt 2>&1
if grep -i "PASS" log.txt 2>&1 ; then
echo "PASS: pngtest passed"
else
echo "FAIL: pngtest failed"
fi
rm -f log.txt
for i in pngstest timepng; do
if "./${i}" pngtest.png 2>&1; then
echo "PASS: $i"
else
echo "FAIL: $i"
fi
done

View File

@@ -10,7 +10,11 @@ DEPENDS = "zlib"
LIBV = "16"
SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}${LIBV}/${BP}.tar.xz"
SRC_URI = "\
${SOURCEFORGE_MIRROR}/${BPN}/${BPN}${LIBV}/${BP}.tar.xz \
file://run-ptest \
"
SRC_URI[sha256sum] = "1f4696ce70b4ee5f85f1e1623dc1229b210029fa4b7aee573df3e2ba7b036937"
MIRRORS += "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}${LIBV}/ ${SOURCEFORGE_MIRROR}/${BPN}/${BPN}${LIBV}/older-releases/"
@@ -19,7 +23,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
EXTRA_OECONF:append:class-target = " ${@bb.utils.contains("TUNE_FEATURES", "neon", "--enable-arm-neon=on", "--enable-arm-neon=off", d)}"
@@ -32,3 +36,11 @@ BBCLASSEXTEND = "native nativesdk"
# CVE-2019-17371 is actually a memory leak in gif2png 2.x
CVE_CHECK_IGNORE += "CVE-2019-17371"
do_install_ptest() {
install -m644 "${S}/pngtest.png" "${D}${PTEST_PATH}"
install -m755 "${B}/.libs/pngfix" "${D}${PTEST_PATH}"
install -m755 "${B}/.libs/pngtest" "${D}${PTEST_PATH}"
install -m755 "${B}/.libs/pngstest" "${D}${PTEST_PATH}"
install -m755 "${B}/.libs/timepng" "${D}${PTEST_PATH}"
}