# Seed Corpus

The `seed_corpus` directory was created using test data from the libxml2 repo by
running the following commands:

```bash
# Minimize the test data using xml_parser_fuzzer.
$ xml_parser_fuzzer -use_value_profile=1 -max_len=65536 -rss_limit_mb=8192 -merge=1 xml_min1 ~/Projects/libxml2/test

# Minimize the test data using libxml_xml_read_memory_fuzzer.
$ libxml_xml_read_memory_fuzzer -use_value_profile=1 -max_len=65536 -rss_limit_mb=8192 -merge=1 xml_min2 ~/Projects/libxml2/test

# Merge the two minimized versions (the majority of the files are the same).
$ cp xml_min1/* xml_min2/* seed_corpus/
```

This corpus gives a good code coverage for the existing XML fuzzers in Chromium.
See //testing/libfuzzer/README.md for more information about fuzzing.

# Dictionary

The `xml.dict` was taken from AFL fuzzer with a few minor additions being made.
