1#!/bin/sh
2#
3# Usage:
4#
5#  tests/pngstest gamma alpha
6#
7# Run ./pngstest on the PNG files in $srcdir/contrib/testpngs which have the
8# given gamma and opacity:
9#
10#  gamma: one of; linear, 1.8, sRGB, none.
11#  alpha: one of; opaque, tRNS, alpha, none.  'none' is equivalent to !alpha
12#
13# NOTE: the temporary files pngstest generates have the base name gamma-alpha to
14# avoid issues with make -j
15#
16gamma="$1"
17shift
18alpha="$1"
19shift
20args=
21LC_ALL="C" # fix glob sort order to ASCII:
22for f in "${srcdir}/contrib/testpngs/"*.png
23do
24   g=
25   case "$f" in
26      *-linear[.-]*)
27         test "$gamma" = "linear" && g="$f";;
28
29      *-sRGB[.-]*)
30         test "$gamma" = "sRGB" && g="$f";;
31
32      *-1.8[.-]*)
33         test "$gamma" = "1.8" && g="$f";;
34
35      *)
36         test "$gamma" = "none" && g="$f";;
37   esac
38
39   case "$g" in
40      "")
41         :;;
42
43      *-alpha[-.]*)
44         test "$alpha" = "alpha" && args="$args $g";;
45
46      *-tRNS[-.]*)
47         test "$alpha" = "tRNS" -o "$alpha" = "none" && args="$args $g";;
48
49      *)
50         test "$alpha" = "opaque" -o "$alpha" = "none" && args="$args $g";;
51   esac
52done
53# This only works if the arguments don't contain spaces; they don't.
54exec ./pngstest --tmpfile "${gamma}-${alpha}-" --log ${1+"$@"} $args
55