]> git.tdb.fi Git - ext/libpng.git/blob - contrib/testpngs/makepngs.sh
Import libpng 1.6.39
[ext/libpng.git] / contrib / testpngs / makepngs.sh
1 #!/bin/sh
2
3 # Make a set of test PNG files, MAKEPNG is the name of the makepng executable
4 # built from contrib/libtests/makepng.c
5
6 # Copyright (c) 2015 John Cunningham Bowler
7
8 # This code is released under the libpng license.
9 # For conditions of distribution and use, see the disclaimer
10 # and license in png.h
11
12 # The arguments say whether to build all the files or whether just to build the
13 # ones that extend the code-coverage of libpng from the existing test files in
14 # contrib/pngsuite.
15 test -n "$MAKEPNG" || MAKEPNG=./makepng
16 opts=
17
18 mp(){
19    ${MAKEPNG} $opts $1 "$3" "$4" "$3-$4$2.png"
20 }
21
22 mpg(){
23    if test "$1" = "none"
24    then
25       mp "" "" "$2" "$3"
26    else
27       mp "--$1" "-$1" "$2" "$3"
28    fi
29 }
30
31 mptrans(){
32    if test "$1" = "none"
33    then
34       mp "--tRNS" "-tRNS" "$2" "$3"
35    else
36       mp "--tRNS --$1" "-$1-tRNS" "$2" "$3"
37    fi
38 }
39
40 case "$1" in
41    --small)
42       opts="--small";;&
43
44    --all|--small)
45       for g in none sRGB linear 1.8
46       do
47          for c in gray palette
48          do
49             for b in 1 2 4
50             do
51                mpg "$g" "$c" "$b"
52                mptrans "$g" "$c" "$b"
53             done
54          done
55
56          mpg "$g" palette 8
57          mptrans "$g" palette 8
58
59          for b in 8 16
60          do
61             for c in gray gray-alpha rgb rgb-alpha
62             do
63                mpg "$g" "$c" "$b"
64             done
65             for c in gray rgb
66             do
67                mptrans "$g" "$c" "$b"
68             done
69          done
70       done;;
71
72    --coverage)
73       # Comments below indicate cases known to be required and not duplicated
74       # in other (required) cases; the aim is to get a minimal set that gives
75       # the maximum code coverage.
76       mpg none gray-alpha 8 # required: code coverage, sRGB opaque component
77       mpg none palette 8 # required: basic palette read
78       mpg 1.8 gray 2 # required: tests gamma threshold code
79       mpg 1.8 palette 2 # required: code coverage
80       mpg 1.8 palette 4 # required: code coverage
81       mpg 1.8 palette 8 # error limits only
82       mpg linear palette 8 # error limits only
83       mpg linear rgb-alpha 16 # error limits only
84       mpg sRGB palette 1 # required: code coverage
85       mpg sRGB rgb-alpha 16 # required: code coverage: pngread.c:2422 untested
86       :;;
87
88    *)
89       echo "$0 $1: unknown argument, usage:" >&2
90       echo "  $0 [--all|--coverage|--small]" >&2
91       exit 1
92 esac