fa5ba2e026
tests/pngstest-* are changed so that the new test files are divided into 8 groups by gamma and alpha channel. This makes each test take just under 5 seconds on a moderately up-to-date x86_64 system using libpng16 (test times are somewhat variable under libpng17 at present because of the lack of optimization in some gamma processing paths.) These tests have considerably better code and pixel-value coverage than contrib/pngsuite however coverage is still incomplete. Signed-off-by: John Bowler <jbowler@acm.org>
53 lines
1.2 KiB
Bash
Executable File
53 lines
1.2 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# Usage:
|
|
#
|
|
# tests/pngstest gamma alpha
|
|
#
|
|
# Run ./pngstest on the PNG files in $srcdir/contrib/testpngs which have the
|
|
# given gamma and opacity:
|
|
#
|
|
# gamma: one of; linear, 1.8, sRGB, none.
|
|
# alpha: one of; opaque, tRNS, alpha, none. 'none' is equivalent to !alpha
|
|
#
|
|
# NOTE: the temporary files pngstest generates have the base name gamma-alpha to
|
|
# avoid issues with make -j
|
|
#
|
|
gamma="$1"
|
|
shift
|
|
alpha="$1"
|
|
shift
|
|
exec ./pngstest --strict --tmpfile "${gamma}-${alpha}-" --log ${1+"$@"} $(
|
|
for f in "${srcdir}/contrib/testpngs/"*.png
|
|
do
|
|
g=
|
|
case "$f" in
|
|
*-linear[.-]*)
|
|
test "$gamma" = "linear" && g="$f";;
|
|
|
|
*-sRGB[.-]*)
|
|
test "$gamma" = "sRGB" && g="$f";;
|
|
|
|
*-1.8[.-]*)
|
|
test "$gamma" = "1.8" && g="$f";;
|
|
|
|
*)
|
|
test "$gamma" = "none" && g="$f";;
|
|
esac
|
|
|
|
case "$g" in
|
|
"")
|
|
:;;
|
|
|
|
*-alpha[-.]*)
|
|
test "$alpha" = "alpha" && echo "$g";;
|
|
|
|
*-tRNS[-.]*)
|
|
test "$alpha" = "tRNS" -o "$alpha" = "none" && echo "$g";;
|
|
|
|
*)
|
|
test "$alpha" = "opaque" -o "$alpha" = "none" && echo "$g";;
|
|
esac
|
|
done
|
|
)
|