1*5ba6b03cSchristosCFLAGS=-O
2*5ba6b03cSchristos
3*5ba6b03cSchristospuff: puff.o pufftest.o
4*5ba6b03cSchristos
5*5ba6b03cSchristospuff.o: puff.h
6*5ba6b03cSchristos
7*5ba6b03cSchristospufftest.o: puff.h
8*5ba6b03cSchristos
9*5ba6b03cSchristostest: puff
10*5ba6b03cSchristos	puff zeros.raw
11*5ba6b03cSchristos
12*5ba6b03cSchristospuft: puff.c puff.h pufftest.o
13*5ba6b03cSchristos	cc -fprofile-arcs -ftest-coverage -o puft puff.c pufftest.o
14*5ba6b03cSchristos
15*5ba6b03cSchristos# puff full coverage test (should say 100%)
16*5ba6b03cSchristoscov: puft
17*5ba6b03cSchristos	@rm -f *.gcov *.gcda
18*5ba6b03cSchristos	@puft -w zeros.raw 2>&1 | cat > /dev/null
19*5ba6b03cSchristos	@echo '04' | xxd -r -p | puft 2> /dev/null || test $$? -eq 2
20*5ba6b03cSchristos	@echo '00' | xxd -r -p | puft 2> /dev/null || test $$? -eq 2
21*5ba6b03cSchristos	@echo '00 00 00 00 00' | xxd -r -p | puft 2> /dev/null || test $$? -eq 254
22*5ba6b03cSchristos	@echo '00 01 00 fe ff' | xxd -r -p | puft 2> /dev/null || test $$? -eq 2
23*5ba6b03cSchristos	@echo '01 01 00 fe ff 0a' | xxd -r -p | puft -f 2>&1 | cat > /dev/null
24*5ba6b03cSchristos	@echo '02 7e ff ff' | xxd -r -p | puft 2> /dev/null || test $$? -eq 246
25*5ba6b03cSchristos	@echo '02' | xxd -r -p | puft 2> /dev/null || test $$? -eq 2
26*5ba6b03cSchristos	@echo '04 80 49 92 24 49 92 24 0f b4 ff ff c3 04' | xxd -r -p | puft 2> /dev/null || test $$? -eq 2
27*5ba6b03cSchristos	@echo '04 80 49 92 24 49 92 24 71 ff ff 93 11 00' | xxd -r -p | puft 2> /dev/null || test $$? -eq 249
28*5ba6b03cSchristos	@echo '04 c0 81 08 00 00 00 00 20 7f eb 0b 00 00' | xxd -r -p | puft 2> /dev/null || test $$? -eq 246
29*5ba6b03cSchristos	@echo '0b 00 00' | xxd -r -p | puft -f 2>&1 | cat > /dev/null
30*5ba6b03cSchristos	@echo '1a 07' | xxd -r -p | puft 2> /dev/null || test $$? -eq 246
31*5ba6b03cSchristos	@echo '0c c0 81 00 00 00 00 00 90 ff 6b 04' | xxd -r -p | puft 2> /dev/null || test $$? -eq 245
32*5ba6b03cSchristos	@puft -f zeros.raw 2>&1 | cat > /dev/null
33*5ba6b03cSchristos	@echo 'fc 00 00' | xxd -r -p | puft 2> /dev/null || test $$? -eq 253
34*5ba6b03cSchristos	@echo '04 00 fe ff' | xxd -r -p | puft 2> /dev/null || test $$? -eq 252
35*5ba6b03cSchristos	@echo '04 00 24 49' | xxd -r -p | puft 2> /dev/null || test $$? -eq 251
36*5ba6b03cSchristos	@echo '04 80 49 92 24 49 92 24 0f b4 ff ff c3 84' | xxd -r -p | puft 2> /dev/null || test $$? -eq 248
37*5ba6b03cSchristos	@echo '04 00 24 e9 ff ff' | xxd -r -p | puft 2> /dev/null || test $$? -eq 250
38*5ba6b03cSchristos	@echo '04 00 24 e9 ff 6d' | xxd -r -p | puft 2> /dev/null || test $$? -eq 247
39*5ba6b03cSchristos	@gcov -n puff.c
40*5ba6b03cSchristos
41*5ba6b03cSchristosclean:
42*5ba6b03cSchristos	rm -f puff puft *.o *.gc*
43