95 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			95 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
#!/bin/sh
 | 
						|
#
 | 
						|
# Make a set of test PNG files, MAKEPNG is the name of the makepng executable
 | 
						|
# built from contrib/libtests/makepng.c
 | 
						|
 | 
						|
# Copyright (c) 2015 John Cunningham Bowler
 | 
						|
 | 
						|
# Last changed in libpng 1.6.20 [December 3, 2015]
 | 
						|
 | 
						|
# This code is released under the libpng license.
 | 
						|
# For conditions of distribution and use, see the disclaimer
 | 
						|
# and license in png.h
 | 
						|
 | 
						|
# The arguments say whether to build all the files or whether just to build the
 | 
						|
# ones that extend the code-coverage of libpng from the existing test files in
 | 
						|
# contrib/pngsuite.
 | 
						|
test -n "$MAKEPNG" || MAKEPNG=./makepng
 | 
						|
opts=
 | 
						|
 | 
						|
mp(){
 | 
						|
   ${MAKEPNG} $opts $1 "$3" "$4" "$3-$4$2.png"
 | 
						|
}
 | 
						|
 | 
						|
mpg(){
 | 
						|
   if test "$1" = "none"
 | 
						|
   then
 | 
						|
      mp "" "" "$2" "$3"
 | 
						|
   else
 | 
						|
      mp "--$1" "-$1" "$2" "$3"
 | 
						|
   fi
 | 
						|
}
 | 
						|
 | 
						|
mptrans(){
 | 
						|
   if test "$1" = "none"
 | 
						|
   then
 | 
						|
      mp "--tRNS" "-tRNS" "$2" "$3"
 | 
						|
   else
 | 
						|
      mp "--tRNS --$1" "-$1-tRNS" "$2" "$3"
 | 
						|
   fi
 | 
						|
}
 | 
						|
 | 
						|
case "$1" in
 | 
						|
   --small)
 | 
						|
      opts="--small";;&
 | 
						|
 | 
						|
   --all|--small)
 | 
						|
      for g in none sRGB linear 1.8
 | 
						|
      do
 | 
						|
         for c in gray palette
 | 
						|
         do
 | 
						|
            for b in 1 2 4
 | 
						|
            do
 | 
						|
               mpg "$g" "$c" "$b"
 | 
						|
               mptrans "$g" "$c" "$b"
 | 
						|
            done
 | 
						|
         done
 | 
						|
 | 
						|
         mpg "$g" palette 8
 | 
						|
         mptrans "$g" palette 8
 | 
						|
 | 
						|
         for b in 8 16
 | 
						|
         do
 | 
						|
            for c in gray gray-alpha rgb rgb-alpha
 | 
						|
            do
 | 
						|
               mpg "$g" "$c" "$b"
 | 
						|
            done
 | 
						|
            for c in gray rgb
 | 
						|
            do
 | 
						|
               mptrans "$g" "$c" "$b"
 | 
						|
            done
 | 
						|
         done
 | 
						|
      done;;
 | 
						|
 | 
						|
   --coverage)
 | 
						|
      # Comments below indicate cases known to be required and not duplicated
 | 
						|
      # in other (required) cases; the aim is to get a minimal set that gives
 | 
						|
      # the maximum code coverage.
 | 
						|
      mpg none gray-alpha 8 # required: code coverage, sRGB opaque component
 | 
						|
      mpg none palette 8 # required: basic palette read
 | 
						|
      mpg 1.8 gray 2 # required: tests gamma threshold code
 | 
						|
      mpg 1.8 palette 2 # required: code coverage
 | 
						|
      mpg 1.8 palette 4 # required: code coverage
 | 
						|
      mpg 1.8 palette 8 # error limits only
 | 
						|
      mpg linear palette 8 # error limits only
 | 
						|
      mpg linear rgb-alpha 16 # error limits only
 | 
						|
      mpg sRGB palette 1 # required: code coverage
 | 
						|
      mpg sRGB rgb-alpha 16 # required: code coverage: pngread.c:2422 untested
 | 
						|
      :;;
 | 
						|
 | 
						|
   *)
 | 
						|
      echo "$0 $1: unknown argument, usage:" >&2
 | 
						|
      echo "  $0 [--all|--coverage|--small]" >&2
 | 
						|
      exit 1
 | 
						|
esac
 |