Add cc_fuzz targets for existing fuzzers

libxml2 already has its own fuzzers. Adding
targets for them to allow them to be run.

The corpus files are generated using the genSeed tool
included in libxml2/fuzz.

Note that the html fuzzer is not being enabled. It was
not building successfully.

Bug: 170243740
Test: Fuzzers build and run
Change-Id: Ie4e2638a980a5a1d2a1bc311ecf3adfe44009742
diff --git a/Android.bp b/Android.bp
index ec753a6..85bb547 100644
--- a/Android.bp
+++ b/Android.bp
@@ -155,3 +155,926 @@
     ],
     shared_libs: ["libxml2"],
 }
+
+cc_binary_host {
+    name: "libxml2_genseed",
+    srcs: [
+        "fuzz/genSeed.c",
+        "fuzz/fuzz.c",
+    ],
+    cflags: [
+        "-Wno-unused-variable",
+    ],
+    shared_libs: ["libxml2"],
+}
+
+cc_defaults {
+    name: "libxml2-fuzz-defaults",
+    host_supported: true,
+    shared_libs: [
+        "libxml2",
+    ],
+    srcs: [
+      "fuzz/fuzz.c",
+    ],
+    fuzz_config: {
+        componentid: 87896,
+    },
+}
+
+cc_fuzz {
+    name: "libxml2_regexp_fuzzer",
+    defaults: ["libxml2-fuzz-defaults"],
+    srcs: [
+        "fuzz/regexp.c",
+    ],
+    dictionary: "fuzz/regexp.dict",
+}
+
+genrule {
+    name: "libxml2_schema_fuzz_corpus",
+    tools: ["libxml2_genseed"],
+    srcs: [
+        "test/schemas",
+    ],
+    // The genseed tool only writes under its current directory.
+    // Soong does not run the tool from within the jail, so
+    // the shell must first 'cd' to the right path. However,
+    // then the location of the tool is lost, as $(location) gives
+    // a relative path.
+    cmd: "mkdir -p $(genDir)/fuzz/seed/schema && " +
+         "TOP_DIR=$$(pwd) && " +
+         "cd $(genDir)/fuzz && " +
+         "$${TOP_DIR}/$(location libxml2_genseed) schema " +
+           "$${TOP_DIR}/$(location test/schemas)/*.xsd",
+    out: [
+        "fuzz/seed/schema/570702_0.xsd",
+        "fuzz/seed/schema/579746_0.xsd",
+        "fuzz/seed/schema/579746_1.xsd",
+        "fuzz/seed/schema/582887_0.xsd",
+        "fuzz/seed/schema/582887-attribute.xsd",
+        "fuzz/seed/schema/582887-common.xsd",
+        "fuzz/seed/schema/582887-element.xsd",
+        "fuzz/seed/schema/582906-1_0.xsd",
+        "fuzz/seed/schema/582906-1-common.xsd",
+        "fuzz/seed/schema/582906-1-prog1.xsd",
+        "fuzz/seed/schema/582906-1-prog2-include.xsd",
+        "fuzz/seed/schema/582906-1-prog2.xsd",
+        "fuzz/seed/schema/582906-2_0.xsd",
+        "fuzz/seed/schema/582906-2-common.xsd",
+        "fuzz/seed/schema/582906-2-prog1.xsd",
+        "fuzz/seed/schema/582906-2-prog2-include.xsd",
+        "fuzz/seed/schema/582906-2-prog2.xsd",
+        "fuzz/seed/schema/all_0.xsd",
+        "fuzz/seed/schema/all1_0.xsd",
+        "fuzz/seed/schema/all_1.xsd",
+        "fuzz/seed/schema/all_2.xsd",
+        "fuzz/seed/schema/allsg_0.xsd",
+        "fuzz/seed/schema/all.xsd",
+        "fuzz/seed/schema/annot-err_0.xsd",
+        "fuzz/seed/schema/any1_0.xsd",
+        "fuzz/seed/schema/any2_0.xsd",
+        "fuzz/seed/schema/any3_0.xsd",
+        "fuzz/seed/schema/any4_0.xsd",
+        "fuzz/seed/schema/any5_0.xsd",
+        "fuzz/seed/schema/any5_1.xsd",
+        "fuzz/seed/schema/any6_1.xsd",
+        "fuzz/seed/schema/any6_2.xsd",
+        "fuzz/seed/schema/any7_1.xsd",
+        "fuzz/seed/schema/any7_2.xsd",
+        "fuzz/seed/schema/any8_1.xsd",
+        "fuzz/seed/schema/anyAttr1_0.xsd",
+        "fuzz/seed/schema/anyAttr-derive1_0.xsd",
+        "fuzz/seed/schema/anyAttr-derive2_0.xsd",
+        "fuzz/seed/schema/anyAttr-derive-errors1_0.xsd",
+        "fuzz/seed/schema/anyAttr.importA.1_0.xsd",
+        "fuzz/seed/schema/anyAttr.importB.1_0.xsd",
+        "fuzz/seed/schema/anyAttr-processContents1_0.xsd",
+        "fuzz/seed/schema/anyAttr-processContents-err1_0.xsd",
+        "fuzz/seed/schema/attr0_0.xsd",
+        "fuzz/seed/schema/attruse_0_0.xsd",
+        "fuzz/seed/schema/bug141312_0.xsd",
+        "fuzz/seed/schema/bug141333_0.xsd",
+        "fuzz/seed/schema/bug141333.xsd",
+        "fuzz/seed/schema/bug143951_0.xsd",
+        "fuzz/seed/schema/bug145246_0.xsd",
+        "fuzz/seed/schema/bug152470_1.xsd",
+        "fuzz/seed/schema/bug167754_0.xsd",
+        "fuzz/seed/schema/bug303566_1.xsd",
+        "fuzz/seed/schema/bug306806_1.xsd",
+        "fuzz/seed/schema/bug309338_1.xsd",
+        "fuzz/seed/schema/bug310264_0.xsd",
+        "fuzz/seed/schema/bug312957_1.xsd",
+        "fuzz/seed/schema/bug313982_0.xsd",
+        "fuzz/seed/schema/bug321475_1.xsd",
+        "fuzz/seed/schema/bug322411_1.xsd",
+        "fuzz/seed/schema/bug323510_1.xsd",
+        "fuzz/seed/schema/bug455953_0.xsd",
+        "fuzz/seed/schema/changelog093_1.xsd",
+        "fuzz/seed/schema/choice_0.xsd",
+        "fuzz/seed/schema/choice_1.xsd",
+        "fuzz/seed/schema/choice_2.xsd",
+        "fuzz/seed/schema/complex-type-extension_0.xsd",
+        "fuzz/seed/schema/cos-ct-extends-1-3_0.xsd",
+        "fuzz/seed/schema/cos-st-restricts-1-2-err_0.xsd",
+        "fuzz/seed/schema/ct-sc-nobase_0.xsd",
+        "fuzz/seed/schema/date_0.xsd",
+        "fuzz/seed/schema/decimal-1_1.xsd",
+        "fuzz/seed/schema/decimal-1.xsd",
+        "fuzz/seed/schema/decimal-2_1.xsd",
+        "fuzz/seed/schema/decimal-3_1.xsd",
+        "fuzz/seed/schema/derivation-ok-extension_0.xsd",
+        "fuzz/seed/schema/derivation-ok-extension-err_0.xsd",
+        "fuzz/seed/schema/derivation-ok-restriction-2-1-1_0.xsd",
+        "fuzz/seed/schema/derivation-ok-restriction-4-1-err_0.xsd",
+        "fuzz/seed/schema/derivation-restriction-anyAttr_0.xsd",
+        "fuzz/seed/schema/derivation-restriction-anyType.xsd",
+        "fuzz/seed/schema/deter0_0.xsd",
+        "fuzz/seed/schema/dur_0.xsd",
+        "fuzz/seed/schema/elem0_0.xsd",
+        "fuzz/seed/schema/element-err_0.xsd",
+        "fuzz/seed/schema/element-minmax-err_0.xsd",
+        "fuzz/seed/schema/empty_0.xsd",
+        "fuzz/seed/schema/empty_1.xsd",
+        "fuzz/seed/schema/empty-value_1.xsd",
+        "fuzz/seed/schema/extension0_0.xsd",
+        "fuzz/seed/schema/extension1_0.xsd",
+        "fuzz/seed/schema/extension2_1.xsd",
+        "fuzz/seed/schema/facet-unionST-err1_0.xsd",
+        "fuzz/seed/schema/facet-whiteSpace_0.xsd",
+        "fuzz/seed/schema/group0_0.xsd",
+        "fuzz/seed/schema/hexbinary_0.xsd",
+        "fuzz/seed/schema/idc-keyref-err1_1.xsd",
+        "fuzz/seed/schema/import0_0.xsd",
+        "fuzz/seed/schema/import1_0.xsd",
+        "fuzz/seed/schema/import2_0.xsd",
+        "fuzz/seed/schema/import-455953.xsd",
+        "fuzz/seed/schema/include1_0.xsd",
+        "fuzz/seed/schema/include2_0.xsd",
+        "fuzz/seed/schema/include3_0.xsd",
+        "fuzz/seed/schema/issue40_0.xsd",
+        "fuzz/seed/schema/item_0.xsd",
+        "fuzz/seed/schema/item_1.xsd",
+        "fuzz/seed/schema/length1_0.xsd",
+        "fuzz/seed/schema/length2_0.xsd",
+        "fuzz/seed/schema/length3_0.xsd",
+        "fuzz/seed/schema/list0_0.xsd",
+        "fuzz/seed/schema/list0_1.xsd",
+        "fuzz/seed/schema/mixed0_0.xsd",
+        "fuzz/seed/schema/mixed1_0.xsd",
+        "fuzz/seed/schema/ns0_0.xsd",
+        "fuzz/seed/schema/ns0_1.xsd",
+        "fuzz/seed/schema/ns1_0.xsd",
+        "fuzz/seed/schema/ns2_0.xsd",
+        "fuzz/seed/schema/nvdcve_0.xsd",
+        "fuzz/seed/schema/po0_0.xsd",
+        "fuzz/seed/schema/po1_0.xsd",
+        "fuzz/seed/schema/poschargrp0_0.xsd",
+        "fuzz/seed/schema/regexp-char-ref_0.xsd",
+        "fuzz/seed/schema/regexp-char-ref_1.xsd",
+        "fuzz/seed/schema/restrict-CT-attr-ref_0.xsd",
+        "fuzz/seed/schema/restriction0_0.xsd",
+        "fuzz/seed/schema/restriction-attr1_0.xsd",
+        "fuzz/seed/schema/restriction-enum-1_1.xsd",
+        "fuzz/seed/schema/scc-no-xmlns_0.xsd",
+        "fuzz/seed/schema/scc-no-xsi_0.xsd",
+        "fuzz/seed/schema/seq0_0.xsd",
+        "fuzz/seed/schema/seq-dubl-elem1_0.xsd",
+        "fuzz/seed/schema/src-attribute1_0.xsd",
+        "fuzz/seed/schema/src-attribute2_0.xsd",
+        "fuzz/seed/schema/src-attribute3-1_0.xsd",
+        "fuzz/seed/schema/src-attribute3-2-form_0.xsd",
+        "fuzz/seed/schema/src-attribute3-2-st_0.xsd",
+        "fuzz/seed/schema/src-attribute3-2-type_0.xsd",
+        "fuzz/seed/schema/src-attribute4_0.xsd",
+        "fuzz/seed/schema/src-element1_0.xsd",
+        "fuzz/seed/schema/src-element2-1_0.xsd",
+        "fuzz/seed/schema/src-element2-2_0.xsd",
+        "fuzz/seed/schema/src-element3_0.xsd",
+        "fuzz/seed/schema/subst-group-1_0.xsd",
+        "fuzz/seed/schema/union_0_0.xsd",
+        "fuzz/seed/schema/union2_1.xsd",
+        "fuzz/seed/schema/vdv-complexTypes.xsd",
+        "fuzz/seed/schema/vdv-first0_0.xsd",
+        "fuzz/seed/schema/vdv-first1_0.xsd",
+        "fuzz/seed/schema/vdv-first2_0.xsd",
+        "fuzz/seed/schema/vdv-first3_0.xsd",
+        "fuzz/seed/schema/vdv-first4_0.xsd",
+        "fuzz/seed/schema/vdv-first5_0.xsd",
+        "fuzz/seed/schema/vdv-simpleTypes.xsd",
+        "fuzz/seed/schema/xml.xsd",
+        "fuzz/seed/schema/xsd-list-itemType_0.xsd",
+        "fuzz/seed/schema/xsd-simpleType-varieties_0.xsd",
+    ],
+}
+
+cc_fuzz {
+    name: "libxml2_schema_fuzzer",
+    defaults: ["libxml2-fuzz-defaults"],
+    srcs: [
+        "fuzz/schema.c",
+    ],
+    dictionary: "fuzz/schema.dict",
+    corpus: [":libxml2_schema_fuzz_corpus"],
+}
+
+cc_fuzz {
+    name: "libxml2_uri_fuzzer",
+    defaults: ["libxml2-fuzz-defaults"],
+    srcs: [
+        "fuzz/uri.c",
+    ],
+}
+
+genrule {
+    name: "libxml2_xml_fuzz_corpus",
+    tools: ["libxml2_genseed"],
+    srcs: [
+        "test",
+        "test/errors",
+        "test/errors10",
+        "test/namespaces",
+        "test/valid",
+        "test/VC",
+        "test/VCM",
+        "test/XInclude/docs",
+        "test/xmlid",
+    ],
+    // The genseed tool only writes under its current directory.
+    // Soong does not run the tool from within the jail, so
+    // the shell must first 'cd' to the right path. However,
+    // then the location of the tool is lost, as $(location) gives
+    // a relative path.
+    cmd: "mkdir -p $(genDir)/fuzz/seed/xml && " +
+         "TOP_DIR=$$(pwd) && " +
+         "cd $(genDir)/fuzz && " +
+         "$${TOP_DIR}/$(location libxml2_genseed) xml " +
+           "$${TOP_DIR}/$(location test)/* " +
+           "$${TOP_DIR}/$(location test/errors)/*.xml " +
+           "$${TOP_DIR}/$(location test/errors10)/*.xml " +
+           "$${TOP_DIR}/$(location test/namespaces)/* " +
+           "$${TOP_DIR}/$(location test/valid)/*.xml " +
+           "$${TOP_DIR}/$(location test/VC)/* " +
+           "$${TOP_DIR}/$(location test/VCM)/* " +
+           "$${TOP_DIR}/$(location test/XInclude/docs)/* " +
+           "$${TOP_DIR}/$(location test/xmlid)/*",
+    out: [
+        "fuzz/seed/xml/127772.xml",
+        "fuzz/seed/xml/21.xml",
+        "fuzz/seed/xml/694228.xml",
+        "fuzz/seed/xml/737840.xml",
+        "fuzz/seed/xml/754946.xml",
+        "fuzz/seed/xml/754947.xml",
+        "fuzz/seed/xml/758588.xml",
+        "fuzz/seed/xml/759020.xml",
+        "fuzz/seed/xml/759398.xml",
+        "fuzz/seed/xml/759573-2.xml",
+        "fuzz/seed/xml/759573.xml",
+        "fuzz/seed/xml/759579.xml",
+        "fuzz/seed/xml/766956.xml",
+        "fuzz/seed/xml/781205.xml",
+        "fuzz/seed/xml/781333.xml",
+        "fuzz/seed/xml/781361.xml",
+        "fuzz/seed/xml/att1",
+        "fuzz/seed/xml/att10",
+        "fuzz/seed/xml/att11",
+        "fuzz/seed/xml/att2",
+        "fuzz/seed/xml/att3",
+        "fuzz/seed/xml/att4",
+        "fuzz/seed/xml/att5",
+        "fuzz/seed/xml/att6",
+        "fuzz/seed/xml/att7",
+        "fuzz/seed/xml/att8",
+        "fuzz/seed/xml/att9",
+        "fuzz/seed/xml/attr1.xml",
+        "fuzz/seed/xml/attr2.xml",
+        "fuzz/seed/xml/attr3.xml",
+        "fuzz/seed/xml/attr4.xml",
+        "fuzz/seed/xml/AttributeDefaultLegal",
+        "fuzz/seed/xml/AttributeNmtokens",
+        "fuzz/seed/xml/AttributeNmtokens.xml",
+        "fuzz/seed/xml/attrib.xml",
+        "fuzz/seed/xml/badcomment.xml",
+        "fuzz/seed/xml/bigentname.xml",
+        "fuzz/seed/xml/bigname2.xml",
+        "fuzz/seed/xml/bigname.xml",
+        "fuzz/seed/xml/cdata",
+        "fuzz/seed/xml/cdata2",
+        "fuzz/seed/xml/cdata-2-byte-UTF-8.xml",
+        "fuzz/seed/xml/cdata-3-byte-UTF-8.xml",
+        "fuzz/seed/xml/cdata-4-byte-UTF-8.xml",
+        "fuzz/seed/xml/cdata.xml",
+        "fuzz/seed/xml/charref1.xml",
+        "fuzz/seed/xml/comment1.xml",
+        "fuzz/seed/xml/comment2.xml",
+        "fuzz/seed/xml/comment3.xml",
+        "fuzz/seed/xml/comment4.xml",
+        "fuzz/seed/xml/comment5.xml",
+        "fuzz/seed/xml/comment6.xml",
+        "fuzz/seed/xml/comment.xml",
+        "fuzz/seed/xml/cond_sect1.xml",
+        "fuzz/seed/xml/cond_sect2.xml",
+        "fuzz/seed/xml/content1.xml",
+        "fuzz/seed/xml/dav1",
+        "fuzz/seed/xml/dav10",
+        "fuzz/seed/xml/dav11",
+        "fuzz/seed/xml/dav12",
+        "fuzz/seed/xml/dav13",
+        "fuzz/seed/xml/dav15",
+        "fuzz/seed/xml/dav16",
+        "fuzz/seed/xml/dav17",
+        "fuzz/seed/xml/dav18",
+        "fuzz/seed/xml/dav19",
+        "fuzz/seed/xml/dav2",
+        "fuzz/seed/xml/dav3",
+        "fuzz/seed/xml/dav4",
+        "fuzz/seed/xml/dav5",
+        "fuzz/seed/xml/dav6",
+        "fuzz/seed/xml/dav7",
+        "fuzz/seed/xml/dav8",
+        "fuzz/seed/xml/dav9",
+        "fuzz/seed/xml/defattr2.xml",
+        "fuzz/seed/xml/defattr.xml",
+        "fuzz/seed/xml/dia1",
+        "fuzz/seed/xml/dia2",
+        "fuzz/seed/xml/dia.xml",
+        "fuzz/seed/xml/docids.xml",
+        "fuzz/seed/xml/dtd1",
+        "fuzz/seed/xml/dtd10",
+        "fuzz/seed/xml/dtd11",
+        "fuzz/seed/xml/dtd12",
+        "fuzz/seed/xml/dtd13",
+        "fuzz/seed/xml/dtd2",
+        "fuzz/seed/xml/dtd3",
+        "fuzz/seed/xml/dtd4",
+        "fuzz/seed/xml/dtd5",
+        "fuzz/seed/xml/dtd6",
+        "fuzz/seed/xml/dtd7",
+        "fuzz/seed/xml/dtd8",
+        "fuzz/seed/xml/dtd9",
+        "fuzz/seed/xml/DuplicateType",
+        "fuzz/seed/xml/ebcdic_566012.xml",
+        "fuzz/seed/xml/ElementValid",
+        "fuzz/seed/xml/ElementValid2",
+        "fuzz/seed/xml/ElementValid3",
+        "fuzz/seed/xml/ElementValid4",
+        "fuzz/seed/xml/ElementValid5",
+        "fuzz/seed/xml/ElementValid6",
+        "fuzz/seed/xml/ElementValid7",
+        "fuzz/seed/xml/ElementValid8",
+        "fuzz/seed/xml/emptycdata.xml",
+        "fuzz/seed/xml/ent1",
+        "fuzz/seed/xml/ent10",
+        "fuzz/seed/xml/ent11",
+        "fuzz/seed/xml/ent12",
+        "fuzz/seed/xml/ent13",
+        "fuzz/seed/xml/ent2",
+        "fuzz/seed/xml/ent3",
+        "fuzz/seed/xml/ent4",
+        "fuzz/seed/xml/ent5",
+        "fuzz/seed/xml/ent6",
+        "fuzz/seed/xml/ent7",
+        "fuzz/seed/xml/ent_738805.xml",
+        "fuzz/seed/xml/ent8",
+        "fuzz/seed/xml/ent9",
+        "fuzz/seed/xml/Enumeration",
+        "fuzz/seed/xml/err_0.xml",
+        "fuzz/seed/xml/err_10.xml",
+        "fuzz/seed/xml/err_11.xml",
+        "fuzz/seed/xml/err_1.xml",
+        "fuzz/seed/xml/err_2.xml",
+        "fuzz/seed/xml/err_3.xml",
+        "fuzz/seed/xml/err_4.xml",
+        "fuzz/seed/xml/err_5.xml",
+        "fuzz/seed/xml/err_6.xml",
+        "fuzz/seed/xml/err_7.xml",
+        "fuzz/seed/xml/err_8.xml",
+        "fuzz/seed/xml/err_9.xml",
+        "fuzz/seed/xml/eve.xml",
+        "fuzz/seed/xml/extparsedent.xml",
+        "fuzz/seed/xml/fallback2.xml",
+        "fuzz/seed/xml/fallback3.xml",
+        "fuzz/seed/xml/fallback4.xml",
+        "fuzz/seed/xml/fallback5.xml",
+        "fuzz/seed/xml/fallback6.xml",
+        "fuzz/seed/xml/fallback.xml",
+        "fuzz/seed/xml/icu_parse_test.xml",
+        "fuzz/seed/xml/id1.xml",
+        "fuzz/seed/xml/id2.xml",
+        "fuzz/seed/xml/id3.xml",
+        "fuzz/seed/xml/id_err1.xml",
+        "fuzz/seed/xml/id_err2.xml",
+        "fuzz/seed/xml/id_tst1.xml",
+        "fuzz/seed/xml/id_tst2.xml",
+        "fuzz/seed/xml/id_tst3.xml",
+        "fuzz/seed/xml/id_tst4.xml",
+        "fuzz/seed/xml/include.xml",
+        "fuzz/seed/xml/index.xml",
+        "fuzz/seed/xml/intsubset2.xml",
+        "fuzz/seed/xml/intsubset.xml",
+        "fuzz/seed/xml/isolat1",
+        "fuzz/seed/xml/isolat2",
+        "fuzz/seed/xml/isolat3",
+        "fuzz/seed/xml/japancrlf.xml",
+        "fuzz/seed/xml/mixed_ns.xml",
+        "fuzz/seed/xml/name2.xml",
+        "fuzz/seed/xml/name.xml",
+        "fuzz/seed/xml/nodes2.xml",
+        "fuzz/seed/xml/nodes3.xml",
+        "fuzz/seed/xml/nodes.xml",
+        "fuzz/seed/xml/notes.xml",
+        "fuzz/seed/xml/ns",
+        "fuzz/seed/xml/NS1",
+        "fuzz/seed/xml/ns1.xml",
+        "fuzz/seed/xml/ns2",
+        "fuzz/seed/xml/NS2",
+        "fuzz/seed/xml/ns2.xml",
+        "fuzz/seed/xml/ns3",
+        "fuzz/seed/xml/NS3",
+        "fuzz/seed/xml/ns4",
+        "fuzz/seed/xml/ns5",
+        "fuzz/seed/xml/ns6",
+        "fuzz/seed/xml/ns7",
+        "fuzz/seed/xml/nsclean.xml",
+        "fuzz/seed/xml/ns.xml",
+        "fuzz/seed/xml/objednavka.xml",
+        "fuzz/seed/xml/OneID",
+        "fuzz/seed/xml/OneID2",
+        "fuzz/seed/xml/OneID3",
+        "fuzz/seed/xml/p3p",
+        "fuzz/seed/xml/PENesting",
+        "fuzz/seed/xml/PENesting2",
+        "fuzz/seed/xml/pi2.xml",
+        "fuzz/seed/xml/pi.xml",
+        "fuzz/seed/xml/rdf1",
+        "fuzz/seed/xml/rdf2",
+        "fuzz/seed/xml/rec_ext_ent.xml",
+        "fuzz/seed/xml/recursive.xml",
+        "fuzz/seed/xml/REC-xml-19980210.xml",
+        "fuzz/seed/xml/rss.xml",
+        "fuzz/seed/xml/slashdot16.xml",
+        "fuzz/seed/xml/slashdot.rdf",
+        "fuzz/seed/xml/slashdot.xml",
+        "fuzz/seed/xml/svg1",
+        "fuzz/seed/xml/svg2",
+        "fuzz/seed/xml/svg3",
+        "fuzz/seed/xml/t10.xml",
+        "fuzz/seed/xml/t11.xml",
+        "fuzz/seed/xml/t4a.xml",
+        "fuzz/seed/xml/t4.xml",
+        "fuzz/seed/xml/t6.xml",
+        "fuzz/seed/xml/t8a.xml",
+        "fuzz/seed/xml/t8.xml",
+        "fuzz/seed/xml/t9a.xml",
+        "fuzz/seed/xml/t9.xml",
+        "fuzz/seed/xml/title.xml",
+        "fuzz/seed/xml/tstblanks.xml",
+        "fuzz/seed/xml/tstencoding.xml",
+        "fuzz/seed/xml/txtinclude.xml",
+        "fuzz/seed/xml/UniqueElementTypeDeclaration",
+        "fuzz/seed/xml/UniqueElementTypeDeclaration2",
+        "fuzz/seed/xml/utf16bebom.xml",
+        "fuzz/seed/xml/utf16bom.xml",
+        "fuzz/seed/xml/UTF16Entity.xml",
+        "fuzz/seed/xml/utf16lebom.xml",
+        "fuzz/seed/xml/utf8bom.xml",
+        "fuzz/seed/xml/v10.xml",
+        "fuzz/seed/xml/v11.xml",
+        "fuzz/seed/xml/v12.xml",
+        "fuzz/seed/xml/v13.xml",
+        "fuzz/seed/xml/v14.xml",
+        "fuzz/seed/xml/v15.xml",
+        "fuzz/seed/xml/v16.xml",
+        "fuzz/seed/xml/v17.xml",
+        "fuzz/seed/xml/v18.xml",
+        "fuzz/seed/xml/v19.xml",
+        "fuzz/seed/xml/v1.xml",
+        "fuzz/seed/xml/v20.xml",
+        "fuzz/seed/xml/v21.xml",
+        "fuzz/seed/xml/v22.xml",
+        "fuzz/seed/xml/v23.xml",
+        "fuzz/seed/xml/v24.xml",
+        "fuzz/seed/xml/v2.xml",
+        "fuzz/seed/xml/v3.xml",
+        "fuzz/seed/xml/v4.xml",
+        "fuzz/seed/xml/v5.xml",
+        "fuzz/seed/xml/v6.xml",
+        "fuzz/seed/xml/v7.xml",
+        "fuzz/seed/xml/v8.xml",
+        "fuzz/seed/xml/v9.xml",
+        "fuzz/seed/xml/wap.xml",
+        "fuzz/seed/xml/winblanks.xml",
+        "fuzz/seed/xml/wml.xml",
+        "fuzz/seed/xml/xhtml1",
+        "fuzz/seed/xml/xhtmlcomp",
+        "fuzz/seed/xml/xlink.xml",
+        "fuzz/seed/xml/xml1",
+        "fuzz/seed/xml/xml2",
+    ],
+}
+
+cc_fuzz {
+    name: "libxml2_xml_fuzzer",
+    defaults: ["libxml2-fuzz-defaults"],
+    srcs: [
+        "fuzz/xml.c",
+    ],
+    dictionary: "fuzz/xml.dict",
+    corpus: [":libxml2_xml_fuzz_corpus"],
+}
+
+genrule {
+    name: "libxml2_xpath_fuzz_corpus",
+    tools: ["libxml2_genseed"],
+    srcs: [
+        "test/XPath",
+    ],
+    // The genseed tool only writes under its current directory.
+    // Soong does not run the tool from within the jail, so
+    // the shell must first 'cd' to the right path. However,
+    // then the location of the tool is lost, as $(location) gives
+    // a relative path.
+    cmd: "mkdir -p $(genDir)/fuzz/seed/xpath && " +
+         "TOP_DIR=$$(pwd) && " +
+         "cd $(genDir)/fuzz && " +
+         "$${TOP_DIR}/$(location libxml2_genseed) xpath " +
+           "$${TOP_DIR}/$(location test/XPath)",
+    out: [
+        "fuzz/seed/xpath/chapters-1",
+        "fuzz/seed/xpath/chapters-10",
+        "fuzz/seed/xpath/chapters-11",
+        "fuzz/seed/xpath/chapters-12",
+        "fuzz/seed/xpath/chapters-13",
+        "fuzz/seed/xpath/chapters-14",
+        "fuzz/seed/xpath/chapters-15",
+        "fuzz/seed/xpath/chapters-16",
+        "fuzz/seed/xpath/chapters-17",
+        "fuzz/seed/xpath/chapters-18",
+        "fuzz/seed/xpath/chapters-19",
+        "fuzz/seed/xpath/chapters-2",
+        "fuzz/seed/xpath/chapters-20",
+        "fuzz/seed/xpath/chapters-21",
+        "fuzz/seed/xpath/chapters-22",
+        "fuzz/seed/xpath/chapters-23",
+        "fuzz/seed/xpath/chapters-24",
+        "fuzz/seed/xpath/chapters-25",
+        "fuzz/seed/xpath/chapters-26",
+        "fuzz/seed/xpath/chapters-27",
+        "fuzz/seed/xpath/chapters-28",
+        "fuzz/seed/xpath/chapters-29",
+        "fuzz/seed/xpath/chapters-3",
+        "fuzz/seed/xpath/chapters-30",
+        "fuzz/seed/xpath/chapters-31",
+        "fuzz/seed/xpath/chapters-32",
+        "fuzz/seed/xpath/chapters-33",
+        "fuzz/seed/xpath/chapters-34",
+        "fuzz/seed/xpath/chapters-35",
+        "fuzz/seed/xpath/chapters-36",
+        "fuzz/seed/xpath/chapters-37",
+        "fuzz/seed/xpath/chapters-38",
+        "fuzz/seed/xpath/chapters-39",
+        "fuzz/seed/xpath/chapters-4",
+        "fuzz/seed/xpath/chapters-40",
+        "fuzz/seed/xpath/chapters-41",
+        "fuzz/seed/xpath/chapters-42",
+        "fuzz/seed/xpath/chapters-43",
+        "fuzz/seed/xpath/chapters-5",
+        "fuzz/seed/xpath/chapters-6",
+        "fuzz/seed/xpath/chapters-7",
+        "fuzz/seed/xpath/chapters-8",
+        "fuzz/seed/xpath/chapters-9",
+        "fuzz/seed/xpath/expr-1",
+        "fuzz/seed/xpath/expr-10",
+        "fuzz/seed/xpath/expr-100",
+        "fuzz/seed/xpath/expr-101",
+        "fuzz/seed/xpath/expr-102",
+        "fuzz/seed/xpath/expr-103",
+        "fuzz/seed/xpath/expr-104",
+        "fuzz/seed/xpath/expr-105",
+        "fuzz/seed/xpath/expr-106",
+        "fuzz/seed/xpath/expr-107",
+        "fuzz/seed/xpath/expr-108",
+        "fuzz/seed/xpath/expr-109",
+        "fuzz/seed/xpath/expr-11",
+        "fuzz/seed/xpath/expr-110",
+        "fuzz/seed/xpath/expr-111",
+        "fuzz/seed/xpath/expr-112",
+        "fuzz/seed/xpath/expr-113",
+        "fuzz/seed/xpath/expr-114",
+        "fuzz/seed/xpath/expr-115",
+        "fuzz/seed/xpath/expr-116",
+        "fuzz/seed/xpath/expr-117",
+        "fuzz/seed/xpath/expr-118",
+        "fuzz/seed/xpath/expr-119",
+        "fuzz/seed/xpath/expr-12",
+        "fuzz/seed/xpath/expr-120",
+        "fuzz/seed/xpath/expr-121",
+        "fuzz/seed/xpath/expr-122",
+        "fuzz/seed/xpath/expr-123",
+        "fuzz/seed/xpath/expr-124",
+        "fuzz/seed/xpath/expr-125",
+        "fuzz/seed/xpath/expr-126",
+        "fuzz/seed/xpath/expr-127",
+        "fuzz/seed/xpath/expr-128",
+        "fuzz/seed/xpath/expr-129",
+        "fuzz/seed/xpath/expr-13",
+        "fuzz/seed/xpath/expr-130",
+        "fuzz/seed/xpath/expr-131",
+        "fuzz/seed/xpath/expr-132",
+        "fuzz/seed/xpath/expr-133",
+        "fuzz/seed/xpath/expr-134",
+        "fuzz/seed/xpath/expr-135",
+        "fuzz/seed/xpath/expr-136",
+        "fuzz/seed/xpath/expr-137",
+        "fuzz/seed/xpath/expr-138",
+        "fuzz/seed/xpath/expr-139",
+        "fuzz/seed/xpath/expr-14",
+        "fuzz/seed/xpath/expr-140",
+        "fuzz/seed/xpath/expr-141",
+        "fuzz/seed/xpath/expr-142",
+        "fuzz/seed/xpath/expr-143",
+        "fuzz/seed/xpath/expr-144",
+        "fuzz/seed/xpath/expr-145",
+        "fuzz/seed/xpath/expr-146",
+        "fuzz/seed/xpath/expr-147",
+        "fuzz/seed/xpath/expr-148",
+        "fuzz/seed/xpath/expr-149",
+        "fuzz/seed/xpath/expr-15",
+        "fuzz/seed/xpath/expr-150",
+        "fuzz/seed/xpath/expr-151",
+        "fuzz/seed/xpath/expr-152",
+        "fuzz/seed/xpath/expr-153",
+        "fuzz/seed/xpath/expr-154",
+        "fuzz/seed/xpath/expr-155",
+        "fuzz/seed/xpath/expr-156",
+        "fuzz/seed/xpath/expr-157",
+        "fuzz/seed/xpath/expr-158",
+        "fuzz/seed/xpath/expr-159",
+        "fuzz/seed/xpath/expr-16",
+        "fuzz/seed/xpath/expr-160",
+        "fuzz/seed/xpath/expr-161",
+        "fuzz/seed/xpath/expr-162",
+        "fuzz/seed/xpath/expr-163",
+        "fuzz/seed/xpath/expr-164",
+        "fuzz/seed/xpath/expr-165",
+        "fuzz/seed/xpath/expr-166",
+        "fuzz/seed/xpath/expr-167",
+        "fuzz/seed/xpath/expr-168",
+        "fuzz/seed/xpath/expr-169",
+        "fuzz/seed/xpath/expr-17",
+        "fuzz/seed/xpath/expr-170",
+        "fuzz/seed/xpath/expr-171",
+        "fuzz/seed/xpath/expr-172",
+        "fuzz/seed/xpath/expr-173",
+        "fuzz/seed/xpath/expr-174",
+        "fuzz/seed/xpath/expr-175",
+        "fuzz/seed/xpath/expr-176",
+        "fuzz/seed/xpath/expr-177",
+        "fuzz/seed/xpath/expr-178",
+        "fuzz/seed/xpath/expr-179",
+        "fuzz/seed/xpath/expr-18",
+        "fuzz/seed/xpath/expr-180",
+        "fuzz/seed/xpath/expr-181",
+        "fuzz/seed/xpath/expr-182",
+        "fuzz/seed/xpath/expr-183",
+        "fuzz/seed/xpath/expr-184",
+        "fuzz/seed/xpath/expr-185",
+        "fuzz/seed/xpath/expr-186",
+        "fuzz/seed/xpath/expr-187",
+        "fuzz/seed/xpath/expr-188",
+        "fuzz/seed/xpath/expr-189",
+        "fuzz/seed/xpath/expr-19",
+        "fuzz/seed/xpath/expr-190",
+        "fuzz/seed/xpath/expr-191",
+        "fuzz/seed/xpath/expr-192",
+        "fuzz/seed/xpath/expr-193",
+        "fuzz/seed/xpath/expr-194",
+        "fuzz/seed/xpath/expr-195",
+        "fuzz/seed/xpath/expr-196",
+        "fuzz/seed/xpath/expr-197",
+        "fuzz/seed/xpath/expr-198",
+        "fuzz/seed/xpath/expr-199",
+        "fuzz/seed/xpath/expr-2",
+        "fuzz/seed/xpath/expr-20",
+        "fuzz/seed/xpath/expr-200",
+        "fuzz/seed/xpath/expr-201",
+        "fuzz/seed/xpath/expr-202",
+        "fuzz/seed/xpath/expr-203",
+        "fuzz/seed/xpath/expr-204",
+        "fuzz/seed/xpath/expr-205",
+        "fuzz/seed/xpath/expr-206",
+        "fuzz/seed/xpath/expr-207",
+        "fuzz/seed/xpath/expr-208",
+        "fuzz/seed/xpath/expr-209",
+        "fuzz/seed/xpath/expr-21",
+        "fuzz/seed/xpath/expr-210",
+        "fuzz/seed/xpath/expr-211",
+        "fuzz/seed/xpath/expr-212",
+        "fuzz/seed/xpath/expr-213",
+        "fuzz/seed/xpath/expr-214",
+        "fuzz/seed/xpath/expr-215",
+        "fuzz/seed/xpath/expr-216",
+        "fuzz/seed/xpath/expr-217",
+        "fuzz/seed/xpath/expr-218",
+        "fuzz/seed/xpath/expr-219",
+        "fuzz/seed/xpath/expr-22",
+        "fuzz/seed/xpath/expr-220",
+        "fuzz/seed/xpath/expr-221",
+        "fuzz/seed/xpath/expr-222",
+        "fuzz/seed/xpath/expr-223",
+        "fuzz/seed/xpath/expr-224",
+        "fuzz/seed/xpath/expr-225",
+        "fuzz/seed/xpath/expr-226",
+        "fuzz/seed/xpath/expr-227",
+        "fuzz/seed/xpath/expr-228",
+        "fuzz/seed/xpath/expr-229",
+        "fuzz/seed/xpath/expr-23",
+        "fuzz/seed/xpath/expr-230",
+        "fuzz/seed/xpath/expr-231",
+        "fuzz/seed/xpath/expr-232",
+        "fuzz/seed/xpath/expr-24",
+        "fuzz/seed/xpath/expr-25",
+        "fuzz/seed/xpath/expr-26",
+        "fuzz/seed/xpath/expr-27",
+        "fuzz/seed/xpath/expr-28",
+        "fuzz/seed/xpath/expr-29",
+        "fuzz/seed/xpath/expr-3",
+        "fuzz/seed/xpath/expr-30",
+        "fuzz/seed/xpath/expr-31",
+        "fuzz/seed/xpath/expr-32",
+        "fuzz/seed/xpath/expr-33",
+        "fuzz/seed/xpath/expr-34",
+        "fuzz/seed/xpath/expr-35",
+        "fuzz/seed/xpath/expr-36",
+        "fuzz/seed/xpath/expr-37",
+        "fuzz/seed/xpath/expr-38",
+        "fuzz/seed/xpath/expr-39",
+        "fuzz/seed/xpath/expr-4",
+        "fuzz/seed/xpath/expr-40",
+        "fuzz/seed/xpath/expr-41",
+        "fuzz/seed/xpath/expr-42",
+        "fuzz/seed/xpath/expr-43",
+        "fuzz/seed/xpath/expr-44",
+        "fuzz/seed/xpath/expr-45",
+        "fuzz/seed/xpath/expr-46",
+        "fuzz/seed/xpath/expr-47",
+        "fuzz/seed/xpath/expr-48",
+        "fuzz/seed/xpath/expr-49",
+        "fuzz/seed/xpath/expr-5",
+        "fuzz/seed/xpath/expr-50",
+        "fuzz/seed/xpath/expr-51",
+        "fuzz/seed/xpath/expr-52",
+        "fuzz/seed/xpath/expr-53",
+        "fuzz/seed/xpath/expr-54",
+        "fuzz/seed/xpath/expr-55",
+        "fuzz/seed/xpath/expr-56",
+        "fuzz/seed/xpath/expr-57",
+        "fuzz/seed/xpath/expr-58",
+        "fuzz/seed/xpath/expr-59",
+        "fuzz/seed/xpath/expr-6",
+        "fuzz/seed/xpath/expr-60",
+        "fuzz/seed/xpath/expr-61",
+        "fuzz/seed/xpath/expr-62",
+        "fuzz/seed/xpath/expr-63",
+        "fuzz/seed/xpath/expr-64",
+        "fuzz/seed/xpath/expr-65",
+        "fuzz/seed/xpath/expr-66",
+        "fuzz/seed/xpath/expr-67",
+        "fuzz/seed/xpath/expr-68",
+        "fuzz/seed/xpath/expr-69",
+        "fuzz/seed/xpath/expr-7",
+        "fuzz/seed/xpath/expr-70",
+        "fuzz/seed/xpath/expr-71",
+        "fuzz/seed/xpath/expr-72",
+        "fuzz/seed/xpath/expr-73",
+        "fuzz/seed/xpath/expr-74",
+        "fuzz/seed/xpath/expr-75",
+        "fuzz/seed/xpath/expr-76",
+        "fuzz/seed/xpath/expr-77",
+        "fuzz/seed/xpath/expr-78",
+        "fuzz/seed/xpath/expr-79",
+        "fuzz/seed/xpath/expr-8",
+        "fuzz/seed/xpath/expr-80",
+        "fuzz/seed/xpath/expr-81",
+        "fuzz/seed/xpath/expr-82",
+        "fuzz/seed/xpath/expr-83",
+        "fuzz/seed/xpath/expr-84",
+        "fuzz/seed/xpath/expr-85",
+        "fuzz/seed/xpath/expr-86",
+        "fuzz/seed/xpath/expr-87",
+        "fuzz/seed/xpath/expr-88",
+        "fuzz/seed/xpath/expr-89",
+        "fuzz/seed/xpath/expr-9",
+        "fuzz/seed/xpath/expr-90",
+        "fuzz/seed/xpath/expr-91",
+        "fuzz/seed/xpath/expr-92",
+        "fuzz/seed/xpath/expr-93",
+        "fuzz/seed/xpath/expr-94",
+        "fuzz/seed/xpath/expr-95",
+        "fuzz/seed/xpath/expr-96",
+        "fuzz/seed/xpath/expr-97",
+        "fuzz/seed/xpath/expr-98",
+        "fuzz/seed/xpath/expr-99",
+        "fuzz/seed/xpath/id-1",
+        "fuzz/seed/xpath/id-2",
+        "fuzz/seed/xpath/id-3",
+        "fuzz/seed/xpath/lang-1",
+        "fuzz/seed/xpath/lang-2",
+        "fuzz/seed/xpath/lang-3",
+        "fuzz/seed/xpath/lang-4",
+        "fuzz/seed/xpath/lang-5",
+        "fuzz/seed/xpath/mixed-1",
+        "fuzz/seed/xpath/mixed-2",
+        "fuzz/seed/xpath/mixed-3",
+        "fuzz/seed/xpath/mixed-4",
+        "fuzz/seed/xpath/mixed-5",
+        "fuzz/seed/xpath/mixed-6",
+        "fuzz/seed/xpath/mixed-7",
+        "fuzz/seed/xpath/nodes-1",
+        "fuzz/seed/xpath/nodes-2",
+        "fuzz/seed/xpath/nodes-3",
+        "fuzz/seed/xpath/nodes-4",
+        "fuzz/seed/xpath/nodes-5",
+        "fuzz/seed/xpath/ns-1",
+        "fuzz/seed/xpath/ns-2",
+        "fuzz/seed/xpath/ns-3",
+        "fuzz/seed/xpath/ns-4",
+        "fuzz/seed/xpath/ns-5",
+        "fuzz/seed/xpath/simple-1",
+        "fuzz/seed/xpath/simple-10",
+        "fuzz/seed/xpath/simple-11",
+        "fuzz/seed/xpath/simple-12",
+        "fuzz/seed/xpath/simple-13",
+        "fuzz/seed/xpath/simple-14",
+        "fuzz/seed/xpath/simple-15",
+        "fuzz/seed/xpath/simple-16",
+        "fuzz/seed/xpath/simple-17",
+        "fuzz/seed/xpath/simple-18",
+        "fuzz/seed/xpath/simple-19",
+        "fuzz/seed/xpath/simple-2",
+        "fuzz/seed/xpath/simple-20",
+        "fuzz/seed/xpath/simple-21",
+        "fuzz/seed/xpath/simple-22",
+        "fuzz/seed/xpath/simple-23",
+        "fuzz/seed/xpath/simple-24",
+        "fuzz/seed/xpath/simple-25",
+        "fuzz/seed/xpath/simple-26",
+        "fuzz/seed/xpath/simple-3",
+        "fuzz/seed/xpath/simple-4",
+        "fuzz/seed/xpath/simple-5",
+        "fuzz/seed/xpath/simple-6",
+        "fuzz/seed/xpath/simple-7",
+        "fuzz/seed/xpath/simple-8",
+        "fuzz/seed/xpath/simple-9",
+        "fuzz/seed/xpath/str-1",
+        "fuzz/seed/xpath/str-10",
+        "fuzz/seed/xpath/str-11",
+        "fuzz/seed/xpath/str-12",
+        "fuzz/seed/xpath/str-13",
+        "fuzz/seed/xpath/str-14",
+        "fuzz/seed/xpath/str-15",
+        "fuzz/seed/xpath/str-16",
+        "fuzz/seed/xpath/str-17",
+        "fuzz/seed/xpath/str-18",
+        "fuzz/seed/xpath/str-19",
+        "fuzz/seed/xpath/str-2",
+        "fuzz/seed/xpath/str-20",
+        "fuzz/seed/xpath/str-21",
+        "fuzz/seed/xpath/str-22",
+        "fuzz/seed/xpath/str-23",
+        "fuzz/seed/xpath/str-3",
+        "fuzz/seed/xpath/str-4",
+        "fuzz/seed/xpath/str-5",
+        "fuzz/seed/xpath/str-6",
+        "fuzz/seed/xpath/str-7",
+        "fuzz/seed/xpath/str-8",
+        "fuzz/seed/xpath/str-9",
+        "fuzz/seed/xpath/usr1-1",
+        "fuzz/seed/xpath/vid-1",
+        "fuzz/seed/xpath/vid-10",
+        "fuzz/seed/xpath/vid-11",
+        "fuzz/seed/xpath/vid-12",
+        "fuzz/seed/xpath/vid-13",
+        "fuzz/seed/xpath/vid-14",
+        "fuzz/seed/xpath/vid-15",
+        "fuzz/seed/xpath/vid-16",
+        "fuzz/seed/xpath/vid-2",
+        "fuzz/seed/xpath/vid-3",
+        "fuzz/seed/xpath/vid-4",
+        "fuzz/seed/xpath/vid-5",
+        "fuzz/seed/xpath/vid-6",
+        "fuzz/seed/xpath/vid-7",
+        "fuzz/seed/xpath/vid-8",
+        "fuzz/seed/xpath/vid-9",
+    ],
+}
+
+cc_fuzz {
+    name: "libxml2_xpath_fuzzer",
+    defaults: ["libxml2-fuzz-defaults"],
+    srcs: [
+        "fuzz/xpath.c",
+    ],
+    dictionary: "fuzz/xpath.dict",
+    corpus: [":libxml2_xpath_fuzz_corpus"],
+}