xref: /aosp_15_r20/external/libxml2/fuzz/Makefile.am (revision 7c5688314b92172186c154356a6374bf7684c3ca)
1*7c568831SAndroid Build Coastguard WorkerAUTOMAKE_OPTIONS = -Wno-syntax
2*7c568831SAndroid Build Coastguard WorkerEXTRA_PROGRAMS = genSeed \
3*7c568831SAndroid Build Coastguard Worker		 api html lint reader regexp schema uri valid xinclude \
4*7c568831SAndroid Build Coastguard Worker		 xml xpath
5*7c568831SAndroid Build Coastguard Workercheck_PROGRAMS = testFuzzer
6*7c568831SAndroid Build Coastguard WorkerEXTRA_DIST = html.dict regexp.dict schema.dict xml.dict xpath.dict \
7*7c568831SAndroid Build Coastguard Worker	     static_seed/uri static_seed/regexp fuzz.h
8*7c568831SAndroid Build Coastguard WorkerCLEANFILES = $(EXTRA_PROGRAMS)
9*7c568831SAndroid Build Coastguard WorkerAM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include
10*7c568831SAndroid Build Coastguard WorkerDEPENDENCIES = $(top_builddir)/libxml2.la
11*7c568831SAndroid Build Coastguard WorkerLDADD = $(top_builddir)/libxml2.la
12*7c568831SAndroid Build Coastguard Worker
13*7c568831SAndroid Build Coastguard WorkerXML_MAX_LEN = 80000
14*7c568831SAndroid Build Coastguard Worker# Single quotes to avoid wildcard expansion by the shell
15*7c568831SAndroid Build Coastguard WorkerXML_SEED_CORPUS_SRC = \
16*7c568831SAndroid Build Coastguard Worker    '$(top_srcdir)/test/*' \
17*7c568831SAndroid Build Coastguard Worker    '$(top_srcdir)/test/errors/*.xml' \
18*7c568831SAndroid Build Coastguard Worker    '$(top_srcdir)/test/errors10/*.xml' \
19*7c568831SAndroid Build Coastguard Worker    '$(top_srcdir)/test/namespaces/*' \
20*7c568831SAndroid Build Coastguard Worker    '$(top_srcdir)/test/recurse/*.xml' \
21*7c568831SAndroid Build Coastguard Worker    '$(top_srcdir)/test/SVG/*.xml' \
22*7c568831SAndroid Build Coastguard Worker    '$(top_srcdir)/test/valid/*.xml' \
23*7c568831SAndroid Build Coastguard Worker    '$(top_srcdir)/test/VC/*' \
24*7c568831SAndroid Build Coastguard Worker    '$(top_srcdir)/test/VCM/*' \
25*7c568831SAndroid Build Coastguard Worker    '$(top_srcdir)/test/XInclude/docs/*' \
26*7c568831SAndroid Build Coastguard Worker    '$(top_srcdir)/test/XInclude/without-reader/*' \
27*7c568831SAndroid Build Coastguard Worker    '$(top_srcdir)/test/xmlid/*'
28*7c568831SAndroid Build Coastguard Worker
29*7c568831SAndroid Build Coastguard WorkertestFuzzer_SOURCES = testFuzzer.c fuzz.c
30*7c568831SAndroid Build Coastguard Worker
31*7c568831SAndroid Build Coastguard Worker.PHONY: corpus clean-corpus
32*7c568831SAndroid Build Coastguard Worker
33*7c568831SAndroid Build Coastguard Workercorpus: seed/html.stamp seed/lint.stamp seed/reader.stamp seed/regexp.stamp \
34*7c568831SAndroid Build Coastguard Worker    seed/schema.stamp seed/uri.stamp seed/valid.stamp seed/xinclude.stamp \
35*7c568831SAndroid Build Coastguard Worker    seed/xml.stamp seed/xpath.stamp
36*7c568831SAndroid Build Coastguard Worker
37*7c568831SAndroid Build Coastguard Workercheck-local: corpus
38*7c568831SAndroid Build Coastguard Worker	./testFuzzer$(EXEEXT)
39*7c568831SAndroid Build Coastguard Worker
40*7c568831SAndroid Build Coastguard Workerclean-corpus:
41*7c568831SAndroid Build Coastguard Worker	rm -rf seed
42*7c568831SAndroid Build Coastguard Worker
43*7c568831SAndroid Build Coastguard Workerclean-local: clean-corpus
44*7c568831SAndroid Build Coastguard Worker
45*7c568831SAndroid Build Coastguard Worker# Seed corpus
46*7c568831SAndroid Build Coastguard Worker
47*7c568831SAndroid Build Coastguard WorkergenSeed_SOURCES = genSeed.c fuzz.c
48*7c568831SAndroid Build Coastguard Worker
49*7c568831SAndroid Build Coastguard Worker# XML fuzzer
50*7c568831SAndroid Build Coastguard Worker
51*7c568831SAndroid Build Coastguard Workerseed/xml.stamp: genSeed$(EXEEXT)
52*7c568831SAndroid Build Coastguard Worker	@mkdir -p seed/xml
53*7c568831SAndroid Build Coastguard Worker	./genSeed$(EXEEXT) xml $(XML_SEED_CORPUS_SRC)
54*7c568831SAndroid Build Coastguard Worker	@touch seed/xml.stamp
55*7c568831SAndroid Build Coastguard Worker
56*7c568831SAndroid Build Coastguard Workerxml_SOURCES = xml.c fuzz.c
57*7c568831SAndroid Build Coastguard Workerxml_LDFLAGS = $(AM_LDFLAGS) -fsanitize=fuzzer
58*7c568831SAndroid Build Coastguard Worker
59*7c568831SAndroid Build Coastguard Workerfuzz-xml: xml$(EXEEXT) seed/xml.stamp
60*7c568831SAndroid Build Coastguard Worker	@mkdir -p corpus/xml
61*7c568831SAndroid Build Coastguard Worker	./xml$(EXEEXT) \
62*7c568831SAndroid Build Coastguard Worker	    -dict=xml.dict \
63*7c568831SAndroid Build Coastguard Worker	    -max_len=$(XML_MAX_LEN) \
64*7c568831SAndroid Build Coastguard Worker	    $$XML_FUZZ_OPTIONS \
65*7c568831SAndroid Build Coastguard Worker	    corpus/xml seed/xml
66*7c568831SAndroid Build Coastguard Worker
67*7c568831SAndroid Build Coastguard Worker# DTD validation fuzzer
68*7c568831SAndroid Build Coastguard Worker
69*7c568831SAndroid Build Coastguard Workerseed/valid.stamp: genSeed$(EXEEXT)
70*7c568831SAndroid Build Coastguard Worker	@mkdir -p seed/valid
71*7c568831SAndroid Build Coastguard Worker	./genSeed$(EXEEXT) valid $(XML_SEED_CORPUS_SRC)
72*7c568831SAndroid Build Coastguard Worker	@touch seed/valid.stamp
73*7c568831SAndroid Build Coastguard Worker
74*7c568831SAndroid Build Coastguard Workervalid_SOURCES = valid.c fuzz.c
75*7c568831SAndroid Build Coastguard Workervalid_LDFLAGS = $(AM_LDFLAGS) -fsanitize=fuzzer
76*7c568831SAndroid Build Coastguard Worker
77*7c568831SAndroid Build Coastguard Workerfuzz-valid: valid$(EXEEXT) seed/valid.stamp
78*7c568831SAndroid Build Coastguard Worker	@mkdir -p corpus/valid
79*7c568831SAndroid Build Coastguard Worker	./valid$(EXEEXT) \
80*7c568831SAndroid Build Coastguard Worker	    -dict=xml.dict \
81*7c568831SAndroid Build Coastguard Worker	    -max_len=$(XML_MAX_LEN) \
82*7c568831SAndroid Build Coastguard Worker	    $$XML_FUZZ_OPTIONS \
83*7c568831SAndroid Build Coastguard Worker	    corpus/valid seed/valid
84*7c568831SAndroid Build Coastguard Worker
85*7c568831SAndroid Build Coastguard Worker# XInclude fuzzer
86*7c568831SAndroid Build Coastguard Worker
87*7c568831SAndroid Build Coastguard Workerseed/xinclude.stamp: genSeed$(EXEEXT)
88*7c568831SAndroid Build Coastguard Worker	@mkdir -p seed/xinclude
89*7c568831SAndroid Build Coastguard Worker	./genSeed$(EXEEXT) xinclude $(XML_SEED_CORPUS_SRC)
90*7c568831SAndroid Build Coastguard Worker	@touch seed/xinclude.stamp
91*7c568831SAndroid Build Coastguard Worker
92*7c568831SAndroid Build Coastguard Workerxinclude_SOURCES = xinclude.c fuzz.c
93*7c568831SAndroid Build Coastguard Workerxinclude_LDFLAGS = $(AM_LDFLAGS) -fsanitize=fuzzer
94*7c568831SAndroid Build Coastguard Worker
95*7c568831SAndroid Build Coastguard Workerfuzz-xinclude: xinclude$(EXEEXT) seed/xinclude.stamp
96*7c568831SAndroid Build Coastguard Worker	@mkdir -p corpus/xinclude
97*7c568831SAndroid Build Coastguard Worker	./xinclude$(EXEEXT) \
98*7c568831SAndroid Build Coastguard Worker	    -dict=xml.dict \
99*7c568831SAndroid Build Coastguard Worker	    -max_len=$(XML_MAX_LEN) \
100*7c568831SAndroid Build Coastguard Worker	    $$XML_FUZZ_OPTIONS \
101*7c568831SAndroid Build Coastguard Worker	    corpus/xinclude seed/xinclude
102*7c568831SAndroid Build Coastguard Worker
103*7c568831SAndroid Build Coastguard Worker# HTML fuzzer
104*7c568831SAndroid Build Coastguard Worker
105*7c568831SAndroid Build Coastguard Workerseed/html.stamp: genSeed$(EXEEXT)
106*7c568831SAndroid Build Coastguard Worker	@mkdir -p seed/html
107*7c568831SAndroid Build Coastguard Worker	./genSeed$(EXEEXT) html '$(top_srcdir)/test/HTML/*'
108*7c568831SAndroid Build Coastguard Worker	@touch seed/html.stamp
109*7c568831SAndroid Build Coastguard Worker
110*7c568831SAndroid Build Coastguard Workerhtml_SOURCES = html.c fuzz.c
111*7c568831SAndroid Build Coastguard Workerhtml_LDFLAGS = $(AM_LDFLAGS) -fsanitize=fuzzer
112*7c568831SAndroid Build Coastguard Worker
113*7c568831SAndroid Build Coastguard Workerfuzz-html: html$(EXEEXT) seed/html.stamp
114*7c568831SAndroid Build Coastguard Worker	@mkdir -p corpus/html
115*7c568831SAndroid Build Coastguard Worker	./html$(EXEEXT) \
116*7c568831SAndroid Build Coastguard Worker	    -dict=html.dict \
117*7c568831SAndroid Build Coastguard Worker	    -max_len=1000000 \
118*7c568831SAndroid Build Coastguard Worker	    $$XML_FUZZ_OPTIONS \
119*7c568831SAndroid Build Coastguard Worker	    corpus/html seed/html
120*7c568831SAndroid Build Coastguard Worker
121*7c568831SAndroid Build Coastguard Worker# Reader fuzzer
122*7c568831SAndroid Build Coastguard Worker
123*7c568831SAndroid Build Coastguard Workerseed/reader.stamp: genSeed$(EXEEXT)
124*7c568831SAndroid Build Coastguard Worker	@mkdir -p seed/reader
125*7c568831SAndroid Build Coastguard Worker	./genSeed$(EXEEXT) reader $(XML_SEED_CORPUS_SRC)
126*7c568831SAndroid Build Coastguard Worker	@touch seed/reader.stamp
127*7c568831SAndroid Build Coastguard Worker
128*7c568831SAndroid Build Coastguard Workerreader_SOURCES = reader.c fuzz.c
129*7c568831SAndroid Build Coastguard Workerreader_LDFLAGS = $(AM_LDFLAGS) -fsanitize=fuzzer
130*7c568831SAndroid Build Coastguard Worker
131*7c568831SAndroid Build Coastguard Workerfuzz-reader: reader$(EXEEXT) seed/reader.stamp
132*7c568831SAndroid Build Coastguard Worker	@mkdir -p corpus/reader
133*7c568831SAndroid Build Coastguard Worker	./reader$(EXEEXT) \
134*7c568831SAndroid Build Coastguard Worker	    -dict=xml.dict \
135*7c568831SAndroid Build Coastguard Worker	    -max_len=$(XML_MAX_LEN) \
136*7c568831SAndroid Build Coastguard Worker	    $$XML_FUZZ_OPTIONS \
137*7c568831SAndroid Build Coastguard Worker	    corpus/reader seed/reader
138*7c568831SAndroid Build Coastguard Worker
139*7c568831SAndroid Build Coastguard Worker# xmllint fuzzer
140*7c568831SAndroid Build Coastguard Worker
141*7c568831SAndroid Build Coastguard Workerseed/lint.stamp: genSeed$(EXEEXT)
142*7c568831SAndroid Build Coastguard Worker	@mkdir -p seed/lint
143*7c568831SAndroid Build Coastguard Worker	./genSeed$(EXEEXT) lint $(XML_SEED_CORPUS_SRC)
144*7c568831SAndroid Build Coastguard Worker	@touch seed/lint.stamp
145*7c568831SAndroid Build Coastguard Worker
146*7c568831SAndroid Build Coastguard Workerlint_SOURCES = lint.c fuzz.c
147*7c568831SAndroid Build Coastguard Workerlint_LDFLAGS = -fsanitize=fuzzer
148*7c568831SAndroid Build Coastguard Worker
149*7c568831SAndroid Build Coastguard Workerfuzz-lint: lint$(EXEEXT) seed/lint.stamp
150*7c568831SAndroid Build Coastguard Worker	@mkdir -p corpus/lint
151*7c568831SAndroid Build Coastguard Worker	./lint$(EXEEXT) \
152*7c568831SAndroid Build Coastguard Worker	    -dict=xml.dict \
153*7c568831SAndroid Build Coastguard Worker	    -max_len=$(XML_MAX_LEN) \
154*7c568831SAndroid Build Coastguard Worker	    $$XML_FUZZ_OPTIONS \
155*7c568831SAndroid Build Coastguard Worker	    corpus/lint seed/lint
156*7c568831SAndroid Build Coastguard Worker
157*7c568831SAndroid Build Coastguard Worker# API fuzzer
158*7c568831SAndroid Build Coastguard Worker
159*7c568831SAndroid Build Coastguard Workerapi_SOURCES = api.c fuzz.c
160*7c568831SAndroid Build Coastguard Workerapi_LDFLAGS = -fsanitize=fuzzer
161*7c568831SAndroid Build Coastguard Worker
162*7c568831SAndroid Build Coastguard Workerfuzz-api: api$(EXEEXT)
163*7c568831SAndroid Build Coastguard Worker	@mkdir -p corpus/api
164*7c568831SAndroid Build Coastguard Worker	./api$(EXEEXT) \
165*7c568831SAndroid Build Coastguard Worker	    -max_len=100 \
166*7c568831SAndroid Build Coastguard Worker	    $$XML_FUZZ_OPTIONS \
167*7c568831SAndroid Build Coastguard Worker	    corpus/api
168*7c568831SAndroid Build Coastguard Worker
169*7c568831SAndroid Build Coastguard Worker# Regexp fuzzer
170*7c568831SAndroid Build Coastguard Worker
171*7c568831SAndroid Build Coastguard Workerseed/regexp.stamp:
172*7c568831SAndroid Build Coastguard Worker	@mkdir -p seed/regexp
173*7c568831SAndroid Build Coastguard Worker	cp -r $(srcdir)/static_seed/regexp seed
174*7c568831SAndroid Build Coastguard Worker	@touch seed/regexp.stamp
175*7c568831SAndroid Build Coastguard Worker
176*7c568831SAndroid Build Coastguard Workerregexp_SOURCES = regexp.c fuzz.c
177*7c568831SAndroid Build Coastguard Workerregexp_LDFLAGS = $(AM_LDFLAGS) -fsanitize=fuzzer
178*7c568831SAndroid Build Coastguard Worker
179*7c568831SAndroid Build Coastguard Workerfuzz-regexp: regexp$(EXEEXT) seed/regexp.stamp
180*7c568831SAndroid Build Coastguard Worker	@mkdir -p corpus/regexp
181*7c568831SAndroid Build Coastguard Worker	./regexp$(EXEEXT) \
182*7c568831SAndroid Build Coastguard Worker	    -dict=regexp.dict \
183*7c568831SAndroid Build Coastguard Worker	    -max_len=200 \
184*7c568831SAndroid Build Coastguard Worker	    $$XML_FUZZ_OPTIONS \
185*7c568831SAndroid Build Coastguard Worker	    corpus/regexp seed/regexp
186*7c568831SAndroid Build Coastguard Worker
187*7c568831SAndroid Build Coastguard Worker# URI fuzzer
188*7c568831SAndroid Build Coastguard Worker
189*7c568831SAndroid Build Coastguard Workerseed/uri.stamp:
190*7c568831SAndroid Build Coastguard Worker	@mkdir -p seed/uri
191*7c568831SAndroid Build Coastguard Worker	cp -r $(srcdir)/static_seed/uri seed
192*7c568831SAndroid Build Coastguard Worker	@touch seed/uri.stamp
193*7c568831SAndroid Build Coastguard Worker
194*7c568831SAndroid Build Coastguard Workeruri_SOURCES = uri.c fuzz.c
195*7c568831SAndroid Build Coastguard Workeruri_LDFLAGS = $(AM_LDFLAGS) -fsanitize=fuzzer
196*7c568831SAndroid Build Coastguard Worker
197*7c568831SAndroid Build Coastguard Workerfuzz-uri: uri$(EXEEXT) seed/uri.stamp
198*7c568831SAndroid Build Coastguard Worker	@mkdir -p corpus/uri
199*7c568831SAndroid Build Coastguard Worker	./uri$(EXEEXT) \
200*7c568831SAndroid Build Coastguard Worker	    -max_len=10000 \
201*7c568831SAndroid Build Coastguard Worker	    $$XML_FUZZ_OPTIONS \
202*7c568831SAndroid Build Coastguard Worker	    corpus/uri seed/uri
203*7c568831SAndroid Build Coastguard Worker
204*7c568831SAndroid Build Coastguard Worker# XML Schema fuzzer
205*7c568831SAndroid Build Coastguard Worker
206*7c568831SAndroid Build Coastguard Workerseed/schema.stamp: genSeed$(EXEEXT)
207*7c568831SAndroid Build Coastguard Worker	@mkdir -p seed/schema
208*7c568831SAndroid Build Coastguard Worker	./genSeed$(EXEEXT) schema '$(top_srcdir)/test/schemas/*.xsd'
209*7c568831SAndroid Build Coastguard Worker	@touch seed/schema.stamp
210*7c568831SAndroid Build Coastguard Worker
211*7c568831SAndroid Build Coastguard Workerschema_SOURCES = schema.c fuzz.c
212*7c568831SAndroid Build Coastguard Workerschema_LDFLAGS = $(AM_LDFLAGS) -fsanitize=fuzzer
213*7c568831SAndroid Build Coastguard Worker
214*7c568831SAndroid Build Coastguard Workerfuzz-schema: schema$(EXEEXT) seed/schema.stamp
215*7c568831SAndroid Build Coastguard Worker	@mkdir -p corpus/schema
216*7c568831SAndroid Build Coastguard Worker	./schema$(EXEEXT) \
217*7c568831SAndroid Build Coastguard Worker	    -dict=schema.dict \
218*7c568831SAndroid Build Coastguard Worker	    -max_len=$(XML_MAX_LEN) \
219*7c568831SAndroid Build Coastguard Worker	    $$XML_FUZZ_OPTIONS \
220*7c568831SAndroid Build Coastguard Worker	    corpus/schema seed/schema
221*7c568831SAndroid Build Coastguard Worker
222*7c568831SAndroid Build Coastguard Worker# XPath fuzzer
223*7c568831SAndroid Build Coastguard Worker
224*7c568831SAndroid Build Coastguard Workerseed/xpath.stamp: genSeed$(EXEEXT)
225*7c568831SAndroid Build Coastguard Worker	@mkdir -p seed/xpath
226*7c568831SAndroid Build Coastguard Worker	./genSeed$(EXEEXT) xpath '$(top_srcdir)/test/XPath'
227*7c568831SAndroid Build Coastguard Worker	@touch seed/xpath.stamp
228*7c568831SAndroid Build Coastguard Worker
229*7c568831SAndroid Build Coastguard Workerxpath_SOURCES = xpath.c fuzz.c
230*7c568831SAndroid Build Coastguard Workerxpath_LDFLAGS = $(AM_LDFLAGS) -fsanitize=fuzzer
231*7c568831SAndroid Build Coastguard Worker
232*7c568831SAndroid Build Coastguard Workerfuzz-xpath: xpath$(EXEEXT) seed/xpath.stamp
233*7c568831SAndroid Build Coastguard Worker	@mkdir -p corpus/xpath
234*7c568831SAndroid Build Coastguard Worker	./xpath$(EXEEXT) \
235*7c568831SAndroid Build Coastguard Worker	    -dict=xpath.dict \
236*7c568831SAndroid Build Coastguard Worker	    -max_len=10000 \
237*7c568831SAndroid Build Coastguard Worker	    $$XML_FUZZ_OPTIONS \
238*7c568831SAndroid Build Coastguard Worker	    corpus/xpath seed/xpath
239*7c568831SAndroid Build Coastguard Worker
240