libpng/tests/pngstest
John Bowler e717842a54 pngstest: options to fix per-file seed
Also avoid command output substition in tests/pngstest and fix the collation
locale to ASCII/C/POSIX

Signed-off-by: John Bowler <jbowler@acm.org>
2016-01-28 23:10:04 -08:00

55 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
args=
LC_ALL="C" # fix glob sort order to ASCII:
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" && args="$args $g";;
*-tRNS[-.]*)
test "$alpha" = "tRNS" -o "$alpha" = "none" && args="$args $g";;
*)
test "$alpha" = "opaque" -o "$alpha" = "none" && args="$args $g";;
esac
done
# This only works if the arguments don't contain spaces; they don't.
exec ./pngstest --tmpfile "${gamma}-${alpha}-" --log ${1+"$@"} $args