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