#!/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