xref: /aosp_15_r20/external/giflib/tests/makefile (revision 324bb76b8d05e2a05aa88511fff61cf3f9ca5892)
1*324bb76bSAndroid Build Coastguard Worker# Regression-test suite for the giflib library and tools
2*324bb76bSAndroid Build Coastguard Worker# All utilities have tests except gifbg, gifcolor, and gifhisto.
3*324bb76bSAndroid Build Coastguard Worker
4*324bb76bSAndroid Build Coastguard Worker.SUFFIXES: .gif .rgb
5*324bb76bSAndroid Build Coastguard Worker
6*324bb76bSAndroid Build Coastguard Worker# This is what to do by default
7*324bb76bSAndroid Build Coastguard Workertest: render-regress \
8*324bb76bSAndroid Build Coastguard Worker	gifbuild-regress \
9*324bb76bSAndroid Build Coastguard Worker	gifclrmp-regress \
10*324bb76bSAndroid Build Coastguard Worker	gifecho-regress \
11*324bb76bSAndroid Build Coastguard Worker	giffilter-regress \
12*324bb76bSAndroid Build Coastguard Worker	giffix-regress \
13*324bb76bSAndroid Build Coastguard Worker	gifsponge-regress \
14*324bb76bSAndroid Build Coastguard Worker	giftext-regress \
15*324bb76bSAndroid Build Coastguard Worker	giftool-regress \
16*324bb76bSAndroid Build Coastguard Worker	gifwedge-regress
17*324bb76bSAndroid Build Coastguard Worker	@echo "No output is good news"
18*324bb76bSAndroid Build Coastguard Worker
19*324bb76bSAndroid Build Coastguard Workerrebuild: render-rebuild \
20*324bb76bSAndroid Build Coastguard Worker		gif2rgb-rebuild \
21*324bb76bSAndroid Build Coastguard Worker		gifclrmp-rebuild \
22*324bb76bSAndroid Build Coastguard Worker		gifecho-rebuild \
23*324bb76bSAndroid Build Coastguard Worker		giffix-rebuild \
24*324bb76bSAndroid Build Coastguard Worker		giftext-rebuild \
25*324bb76bSAndroid Build Coastguard Worker		gifwedge-rebuild
26*324bb76bSAndroid Build Coastguard Worker
27*324bb76bSAndroid Build Coastguard WorkerUTILS = ..
28*324bb76bSAndroid Build Coastguard WorkerPICS = ../pic
29*324bb76bSAndroid Build Coastguard Worker
30*324bb76bSAndroid Build Coastguard WorkerGIFS := $(shell ls ../pic/*.gif)
31*324bb76bSAndroid Build Coastguard Worker
32*324bb76bSAndroid Build Coastguard Worker# Test decompression and rendering by unpacking images,
33*324bb76bSAndroid Build Coastguard Worker# converting them to RGB, and comparing that result to a check file.
34*324bb76bSAndroid Build Coastguard Workerrender-regress:
35*324bb76bSAndroid Build Coastguard Worker	@for test in $(GIFS); \
36*324bb76bSAndroid Build Coastguard Worker	do \
37*324bb76bSAndroid Build Coastguard Worker	    stem=`basename $${test} | sed -e "s/.gif$$//"`; \
38*324bb76bSAndroid Build Coastguard Worker	    if echo "Testing RGB rendering of $${test}" >&2; \
39*324bb76bSAndroid Build Coastguard Worker	    $(UTILS)/gif2rgb -1 -o $@.$${stem}.regress $${test} 2>&1; \
40*324bb76bSAndroid Build Coastguard Worker	    then cmp $${stem}.rgb $@.$${stem}.regress; \
41*324bb76bSAndroid Build Coastguard Worker	    else echo "*** Nonzero return status on $${test}!"; exit 1; fi; \
42*324bb76bSAndroid Build Coastguard Worker	done
43*324bb76bSAndroid Build Coastguard Worker	@rm -f $@.*.regress
44*324bb76bSAndroid Build Coastguard Workerrender-rebuild:
45*324bb76bSAndroid Build Coastguard Worker	@for test in $(GIFS); do \
46*324bb76bSAndroid Build Coastguard Worker		stem=`basename $${test} | sed -e "s/.gif$$//"`; \
47*324bb76bSAndroid Build Coastguard Worker		echo "Remaking $${stem}.rgb"; \
48*324bb76bSAndroid Build Coastguard Worker		$(UTILS)/gif2rgb -1 -o $${stem}.rgb $${test}; \
49*324bb76bSAndroid Build Coastguard Worker	done
50*324bb76bSAndroid Build Coastguard Worker
51*324bb76bSAndroid Build Coastguard Workergif2rgb-rebuild:
52*324bb76bSAndroid Build Coastguard Worker	@echo "Rebuilding gif2rgb checkfile."
53*324bb76bSAndroid Build Coastguard Worker	@$(UTILS)/gif2rgb -c 3 -s 100 100 <gifgrid.rgb | $(UTILS)/gifbuild -d >gifgrid.ico
54*324bb76bSAndroid Build Coastguard Workergif2rgb-regress:
55*324bb76bSAndroid Build Coastguard Worker	@echo "gif2rgb: Checking idempotency"
56*324bb76bSAndroid Build Coastguard Worker	@$(UTILS)/gif2rgb -c 3 -s 100 100 <gifgrid.rgb | $(UTILS)/gifbuild -d | diff -u gifgrid.ico -
57*324bb76bSAndroid Build Coastguard Worker
58*324bb76bSAndroid Build Coastguard Workergifbuild-regress:
59*324bb76bSAndroid Build Coastguard Worker	@echo "gifbuild: basic sanity check"
60*324bb76bSAndroid Build Coastguard Worker	@$(UTILS)/gifbuild -d <$(PICS)/treescap.gif | diff -u treescap.ico -
61*324bb76bSAndroid Build Coastguard Worker	@echo "gifbuild: Checking idempotency on an icon file."
62*324bb76bSAndroid Build Coastguard Worker	@$(UTILS)/gifbuild <$(PICS)/sample.ico | $(UTILS)/gifbuild -d > $@.sample-1.ico; $(UTILS)/gifbuild < $@.sample-1.ico | $(UTILS)/gifbuild -d > $@.sample-2.ico; diff -u $@.sample-1.ico $@.sample-2.ico; rm $@.sample-?.ico
63*324bb76bSAndroid Build Coastguard Worker	@echo "gifbuild: Checking idempotency on an animation."
64*324bb76bSAndroid Build Coastguard Worker	@$(UTILS)/gifbuild -d <$(PICS)/fire.gif > $@.fire1.ico
65*324bb76bSAndroid Build Coastguard Worker	@$(UTILS)/gifbuild < $@.fire1.ico > $@.fire2.gif
66*324bb76bSAndroid Build Coastguard Worker	@$(UTILS)/gifbuild -d < $@.fire2.gif > $@.fire2.ico
67*324bb76bSAndroid Build Coastguard Worker	@diff -u  $@.fire1.ico  $@.fire2.ico
68*324bb76bSAndroid Build Coastguard Worker	@rm -f $@.fire1.ico  $@.fire2.ico $@.fire2.gif
69*324bb76bSAndroid Build Coastguard Worker
70*324bb76bSAndroid Build Coastguard Workergifclrmp-regress:
71*324bb76bSAndroid Build Coastguard Worker	@for test in $(GIFS); \
72*324bb76bSAndroid Build Coastguard Worker	do \
73*324bb76bSAndroid Build Coastguard Worker	    stem=`basename $${test} | sed -e "s/.gif$$//"`; \
74*324bb76bSAndroid Build Coastguard Worker	    if echo "gifclrmap: Checking colormap of $${test}" >&2; \
75*324bb76bSAndroid Build Coastguard Worker	    $(UTILS)/gifclrmp <$${test} > $@.$${stem}.regress 2>&1; \
76*324bb76bSAndroid Build Coastguard Worker	    then diff -u $${stem}.map $@.$${stem}.regress; \
77*324bb76bSAndroid Build Coastguard Worker	    else echo "*** Nonzero return status on $${test}!"; exit 1; fi; \
78*324bb76bSAndroid Build Coastguard Worker	done
79*324bb76bSAndroid Build Coastguard Worker	@rm -f $@.*.regress
80*324bb76bSAndroid Build Coastguard Workergifclrmp-rebuild:
81*324bb76bSAndroid Build Coastguard Worker	@for test in $(GIFS); do \
82*324bb76bSAndroid Build Coastguard Worker		stem=`basename $${test} | sed -e "s/.gif$$//"`; \
83*324bb76bSAndroid Build Coastguard Worker		echo "Remaking $${stem}.map"; \
84*324bb76bSAndroid Build Coastguard Worker		$(UTILS)/gifclrmp <$${test} >$${stem}.map; \
85*324bb76bSAndroid Build Coastguard Worker	done
86*324bb76bSAndroid Build Coastguard Worker
87*324bb76bSAndroid Build Coastguard Workergifecho-rebuild:
88*324bb76bSAndroid Build Coastguard Worker	@echo "Rebuilding gifecho test."
89*324bb76bSAndroid Build Coastguard Worker	@$(UTILS)/gifecho -t "foobar" | $(UTILS)/gifbuild -d >foobar.ico
90*324bb76bSAndroid Build Coastguard Workergifecho-regress:
91*324bb76bSAndroid Build Coastguard Worker	@echo "gifecho: Testing gifecho behavior"
92*324bb76bSAndroid Build Coastguard Worker	@$(UTILS)/gifecho -t "foobar" | $(UTILS)/gifbuild -d | diff -u foobar.ico -
93*324bb76bSAndroid Build Coastguard Worker
94*324bb76bSAndroid Build Coastguard Workergiffilter-regress:
95*324bb76bSAndroid Build Coastguard Worker	@for test in $(GIFS); \
96*324bb76bSAndroid Build Coastguard Worker	do \
97*324bb76bSAndroid Build Coastguard Worker	    stem=`basename $${test} | sed -e "s/.gif$$//"`; \
98*324bb76bSAndroid Build Coastguard Worker	    if echo "giffiltr: Testing copy of $${test}" >&2; \
99*324bb76bSAndroid Build Coastguard Worker	    $(UTILS)/giffilter <$${test} | $(UTILS)/gif2rgb > $@.$${stem}.regress 2>&1; \
100*324bb76bSAndroid Build Coastguard Worker	    then cmp $${stem}.rgb $@.$${stem}.regress; \
101*324bb76bSAndroid Build Coastguard Worker	    else echo "*** Nonzero return status on $${test}!"; exit 1; fi; \
102*324bb76bSAndroid Build Coastguard Worker	done
103*324bb76bSAndroid Build Coastguard Worker	@rm -f  $@.*.regress
104*324bb76bSAndroid Build Coastguard Worker
105*324bb76bSAndroid Build Coastguard Workergiffix-rebuild:
106*324bb76bSAndroid Build Coastguard Worker	@echo "Rebuilding giffix test."
107*324bb76bSAndroid Build Coastguard Worker	@head --bytes=-20 <$(PICS)/treescap.gif | $(UTILS)/giffix 2>/dev/null | $(UTILS)/gifbuild -d >giffixed.ico
108*324bb76bSAndroid Build Coastguard Workergiffix-regress:
109*324bb76bSAndroid Build Coastguard Worker	@echo "giffix: Testing giffix behavior"
110*324bb76bSAndroid Build Coastguard Worker	@head --bytes=-20 <$(PICS)/treescap.gif | $(UTILS)/giffix 2>/dev/null | $(UTILS)/gifbuild -d | diff -u giffixed.ico -
111*324bb76bSAndroid Build Coastguard Worker
112*324bb76bSAndroid Build Coastguard Workergifinto-regress:
113*324bb76bSAndroid Build Coastguard Worker	@echo "gifinto: Checking behavior on short files."
114*324bb76bSAndroid Build Coastguard Worker	@rm -f $@.giflib.tmp
115*324bb76bSAndroid Build Coastguard Worker	@$(UTILS)/gifinto <$(PICS)/porsche.gif $@.giflib.tmp
116*324bb76bSAndroid Build Coastguard Worker	@if test ! -f $@.giflib.tmp; then echo "gifinto failed to create a file when it should have."; fi
117*324bb76bSAndroid Build Coastguard Worker	@rm -f $@.giflib.tmp
118*324bb76bSAndroid Build Coastguard Worker	@echo "0123456789" | $(UTILS)/gifinto $@.giflib.tmp 2>/dev/null
119*324bb76bSAndroid Build Coastguard Worker	@if test -f $@.giflib.tmp; then echo "gifinto created a file when it shouldn't have."; fi
120*324bb76bSAndroid Build Coastguard Worker	@rm -f $@.giflib.tmp
121*324bb76bSAndroid Build Coastguard Worker
122*324bb76bSAndroid Build Coastguard Workergifsponge-regress:
123*324bb76bSAndroid Build Coastguard Worker	@for test in $(GIFS); \
124*324bb76bSAndroid Build Coastguard Worker	do \
125*324bb76bSAndroid Build Coastguard Worker	    stem=`basename $${test} | sed -e "s/.gif$$//"`; \
126*324bb76bSAndroid Build Coastguard Worker	    if echo "gifsponge: Testing copy of $${test}" >&2; \
127*324bb76bSAndroid Build Coastguard Worker	    $(UTILS)/gifsponge <$${test} | $(UTILS)/gif2rgb > $@.$${stem}.regress 2>&1; \
128*324bb76bSAndroid Build Coastguard Worker	    then cmp $${stem}.rgb  $@.$${stem}.regress; \
129*324bb76bSAndroid Build Coastguard Worker	    else echo "*** Nonzero return status on $${test}!"; exit 1; fi; \
130*324bb76bSAndroid Build Coastguard Worker	done
131*324bb76bSAndroid Build Coastguard Worker	@rm -f  $@.*.regress
132*324bb76bSAndroid Build Coastguard Worker
133*324bb76bSAndroid Build Coastguard Workergiftext-regress:
134*324bb76bSAndroid Build Coastguard Worker	@for test in $(GIFS); \
135*324bb76bSAndroid Build Coastguard Worker	do \
136*324bb76bSAndroid Build Coastguard Worker	    stem=`basename $${test} | sed -e "s/.gif$$//"`; \
137*324bb76bSAndroid Build Coastguard Worker	    if echo "giftext: Checking text dump of $${test}" >&2; \
138*324bb76bSAndroid Build Coastguard Worker	    $(UTILS)/giftext <$${test} > $@.$${stem}.regress 2>&1; \
139*324bb76bSAndroid Build Coastguard Worker	    then diff -u $${stem}.dmp  $@.$${stem}.regress; \
140*324bb76bSAndroid Build Coastguard Worker	    else echo "*** Nonzero return status on $${test}!"; exit 1; fi; \
141*324bb76bSAndroid Build Coastguard Worker	done
142*324bb76bSAndroid Build Coastguard Worker	@rm -f  $@.*.regress
143*324bb76bSAndroid Build Coastguard Workergiftext-rebuild:
144*324bb76bSAndroid Build Coastguard Worker	@for test in $(GIFS); do \
145*324bb76bSAndroid Build Coastguard Worker		stem=`basename $${test} | sed -e "s/.gif$$//"`; \
146*324bb76bSAndroid Build Coastguard Worker		echo "Remaking $${stem}.dmp"; \
147*324bb76bSAndroid Build Coastguard Worker		$(UTILS)/giftext <$${test} >$${stem}.dmp; \
148*324bb76bSAndroid Build Coastguard Worker	done
149*324bb76bSAndroid Build Coastguard Worker
150*324bb76bSAndroid Build Coastguard Workergiftool-regress:
151*324bb76bSAndroid Build Coastguard Worker	@echo "giftool: Checking that expensive copy via giftool is faithful."
152*324bb76bSAndroid Build Coastguard Worker	@$(UTILS)/giftool <$(PICS)/gifgrid.gif | $(UTILS)/gif2rgb | cmp - gifgrid.rgb
153*324bb76bSAndroid Build Coastguard Worker	@echo "giftool: Checking that it de-interlaces correctly."
154*324bb76bSAndroid Build Coastguard Worker	@$(UTILS)/giftool -i on <$(PICS)/treescap-interlaced.gif | $(UTILS)/gif2rgb | cmp - treescap.rgb
155*324bb76bSAndroid Build Coastguard Worker	@echo "giftool: Checking that it interlaces correctly."
156*324bb76bSAndroid Build Coastguard Worker	@$(UTILS)/giftool -i off <$(PICS)/treescap.gif | $(UTILS)/gif2rgb | cmp - treescap-interlaced.rgb
157*324bb76bSAndroid Build Coastguard Worker
158*324bb76bSAndroid Build Coastguard Workergifwedge-rebuild:
159*324bb76bSAndroid Build Coastguard Worker	@echo "Remaking the gifwedge test."
160*324bb76bSAndroid Build Coastguard Worker	@$(UTILS)/gifwedge >wedge.gif
161*324bb76bSAndroid Build Coastguard Workergifwedge-regress:
162*324bb76bSAndroid Build Coastguard Worker	@echo "gifwedge: Checking wedge generation."
163*324bb76bSAndroid Build Coastguard Worker	@$(UTILS)/gifwedge | cmp - wedge.gif
164