13cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III#!/bin/sh 23cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III# 33cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III# Make a set of test PNG files, MAKEPNG is the name of the makepng executable 43cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III# built from contrib/libtests/makepng.c 53cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III 63cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III# Copyright (c) 2015 John Cunningham Bowler 73cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III 83cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III# Last changed in libpng 1.6.20 [December 3, 2015] 93cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III 103cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III# This code is released under the libpng license. 113cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III# For conditions of distribution and use, see the disclaimer 123cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III# and license in png.h 133cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III 143cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III# The arguments say whether to build all the files or whether just to build the 153cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III# ones that extend the code-coverage of libpng from the existing test files in 163cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III# contrib/pngsuite. 173cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins IIItest -n "$MAKEPNG" || MAKEPNG=./makepng 183cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins IIIopts= 193cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III 203cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins IIImp(){ 213cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III ${MAKEPNG} $opts $1 "$3" "$4" "$3-$4$2.png" 223cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III} 233cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III 243cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins IIImpg(){ 253cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III if test "$1" = "none" 263cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III then 273cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III mp "" "" "$2" "$3" 283cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III else 293cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III mp "--$1" "-$1" "$2" "$3" 303cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III fi 313cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III} 323cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III 333cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins IIImptrans(){ 343cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III if test "$1" = "none" 353cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III then 363cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III mp "--tRNS" "-tRNS" "$2" "$3" 373cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III else 383cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III mp "--tRNS --$1" "-$1-tRNS" "$2" "$3" 393cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III fi 403cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III} 413cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III 423cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins IIIcase "$1" in 433cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III --small) 443cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III opts="--small";;& 453cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III 463cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III --all|--small) 473cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III for g in none sRGB linear 1.8 483cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III do 493cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III for c in gray palette 503cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III do 513cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III for b in 1 2 4 523cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III do 533cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III mpg "$g" "$c" "$b" 543cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III mptrans "$g" "$c" "$b" 553cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III done 563cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III done 573cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III 583cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III mpg "$g" palette 8 593cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III mptrans "$g" palette 8 603cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III 613cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III for b in 8 16 623cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III do 633cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III for c in gray gray-alpha rgb rgb-alpha 643cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III do 653cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III mpg "$g" "$c" "$b" 663cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III done 673cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III for c in gray rgb 683cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III do 693cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III mptrans "$g" "$c" "$b" 703cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III done 713cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III done 723cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III done;; 733cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III 743cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III --coverage) 753cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III # Comments below indicate cases known to be required and not duplicated 763cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III # in other (required) cases; the aim is to get a minimal set that gives 773cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III # the maxium code coverage. 783cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III mpg none gray-alpha 8 # required: code coverage, sRGB opaque component 793cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III mpg none palette 8 # required: basic palette read 803cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III mpg 1.8 gray 2 # required: tests gamma threshold code 813cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III mpg 1.8 palette 2 # required: code coverage 823cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III mpg 1.8 palette 4 # required: code coverage 833cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III mpg 1.8 palette 8 # error limits only 843cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III mpg linear palette 8 # error limits only 853cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III mpg linear rgb-alpha 16 # error limits only 863cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III mpg sRGB palette 1 # required: code coverage 873cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III mpg sRGB rgb-alpha 16 # required: code coverage: pngread.c:2422 untested 883cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III :;; 893cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III 903cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III *) 913cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III echo "$0 $1: unknown argument, usage:" >&2 923cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III echo " $0 [--all|--coverage|--small]" >&2 933cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins III exit 1 943cc83ac4b563ffa7a1bae9572f5fc3c1ee5f8a10Leon Scroggins IIIesac 95