#!/bin/sh

st=0    # exit status (set to 1 if a test fails)
fail="**FAIL**"
success=" SUCCESS"
TEST(){
   # Try to make the log file easier to read:
   test_status="$success"
   echo "=============== PNGTEST $* ===================="
   ./pngtest "$@" || {
      st=$?
      test_status="$fail"
   }
   echo "===============$test_status $* ===================="
}

# The "standard" test
TEST --strict "${srcdir}"/pngtest.png

# Various crashers
# Use --relaxed because some come from fuzzers that don't maintain CRCs
TEST --relaxed "${srcdir}"/contrib/testpngs/crashers/badcrc.png
# Use --xfail because there is no reliable way of disabling these errors
# (Adler32 checking cannot be switched off on all builds and there is no
# provision for turning the other checks into warnings.)
TEST --xfail "${srcdir}"/contrib/testpngs/crashers/badadler.png
TEST --xfail "${srcdir}"/contrib/testpngs/crashers/bad_iCCP.png
TEST --xfail "${srcdir}"/contrib/testpngs/crashers/empty_ancillary_chunks.png
for file in "${srcdir}"/contrib/testpngs/crashers/huge_*_chunk.png
do
   TEST --xfail "$file"
done
for file in "${srcdir}"/contrib/testpngs/crashers/huge_*safe_to_copy.png
do
   TEST --xfail "$file"
done
TEST --xfail "${srcdir}"/contrib/testpngs/crashers/huge_IDAT.png

# Regression tests for required warnings (or errors):
check_stdout(){
   # $1: the test file (a bad PNG which must produce a warning, etc)
   # $2: a string which must occur at the end of line on stdout for success
   # result: an error message on descriptor 3 if the string is NOT found
   found=
   while read line
   do
      case "$line" in
         *"$2") found=1;;
      esac
      echo "$line" # preserve the original output verbatim
   done
   # output the missing warning on descriptor 3:
   test -z "$found" && echo "$1: $2" >&3
}
# NOTE: traditionally the Bourne shell executed the last element in a pipe
# sequence in the original shell so it could set variables in the original
# shell however this is not reliable and doesn't work in bash.
#
# It *is* reliable to use the actual exit status of the last command in
# the pipeline.
exec 4>&1 # original stdout - the log file
{
   exec 3>&1 # stdout is the pipe at this point
   fail=" FAIL(EXPECTED)" # runtime scope
   success=" SUCCESS(UNEXPECTED)" # there should be a write error
   for file in "${srcdir}"/contrib/testpngs/badpal/*.png
   do
     # The exit code is ignored here, the test is that the particular errors
     # (warnings) are produced.  The original output still ends up in the log
     # file.
     TEST "$file" |
        check_stdout "$file" 'IDAT: Read palette index exceeding num_palette' |
        check_stdout "$file" 'Wrote palette index exceeding num_palette' >&4
   done
   exec 3>&-
} | {
   # This may not be a sub-shell, if it is 'st' is undefined and the exit
   # just ends up as 'exit'.
   while read error
   do
      echo "MISSING REPORT: $error"
      st=1
   done
   exit $st
} || st=$?

exit $st
