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