tree: 35b3ee92ebdcf2d750a8c9fa65798b507470297c [path history] [tgz]
  1. fonts/
  2. sets/
  3. hb-draw-fuzzer.cc
  4. hb-fuzzer.hh
  5. hb-set-fuzzer.cc
  6. hb-shape-fuzzer.cc
  7. hb-subset-fuzzer.cc
  8. main.cc
  9. Makefile.am
  10. meson.build
  11. README.md
  12. run-draw-fuzzer-tests.py
  13. run-shape-fuzzer-tests.py
  14. run-subset-fuzzer-tests.py
test/fuzzing/README.md

To build the fuzzers with libFuzzer to perform actual fuzzing, build with:

CXX=clang++ CXXFLAGS="-fsanitize=address,fuzzer-no-link" meson fuzzbuild --default-library=static -Dfuzzer_ldflags="-fsanitize=address,fuzzer"

ninja -Cfuzzbuild

Then, run the fuzzer like this:

fuzzbuild/test/fuzzing/hb-{shape,draw,subset,set}-fuzzer [-max_len=2048] [CORPUS_DIR]

Where max_len specifies the maximal length of font files to handle. The smaller the faster.

For more details consult the following locations: