src/third-party/libpng/tests/pngstest (view raw)
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