FPII-2034: DO NOT MERGE Update libpng to 1.6.20

DO NOT MERGE Update libpng to 1.6.20

BUG:23265085
Change-Id: I2fc2106965c789a54f04412e9c63a0901b0c1e71
(cherry picked from commit 0b39f202aaedd3029e4270d2af7d58ba6634f9cd)
diff --git a/tests/pngstest b/tests/pngstest
index f5cbdbc..255ed09 100755
--- a/tests/pngstest
+++ b/tests/pngstest
@@ -2,12 +2,51 @@
 #
 # Usage:
 #
-#  tests/pngstest pattern
+#  tests/pngstest gamma alpha
 #
-# Runs pngstest on all the contrib/pngsuite/[^x]*${pattern}.png files
-# NOTE: pattern is used to name the temporary files pngstest generates
+# Run ./pngstest on the PNG files in $srcdir/contrib/testpngs which have the
+# given gamma and opacity:
 #
-pattern="$1"
+#  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
-exec ./pngstest --strict --tmpfile "${pattern}" --log ${1+"$@"}\
-   "${srcdir}/contrib/pngsuite/"[a-wyz]*${pattern}".png"
+alpha="$1"
+shift
+exec ./pngstest --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
+)