From 9c9ad214af43685b00f6d8493b7807d6607d4e2d Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Thu, 5 Nov 2015 22:50:52 -0800 Subject: [PATCH] [fuzzer] Add README https://github.com/behdad/harfbuzz/issues/139#issuecomment-154202645 --- test/fuzzing/README | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 test/fuzzing/README diff --git a/test/fuzzing/README b/test/fuzzing/README new file mode 100644 index 000000000..2e537f637 --- /dev/null +++ b/test/fuzzing/README @@ -0,0 +1,21 @@ +In order to build the fuzzer one needs to build HarfBuzz and +harfbuzz/test/fuzzing/hb-fuzzer.cc with: + - Using the most recent Clang + - With -fsanitize=address (or =undefined, or a combination) + - With -fsanitize-coverage=edge[,8bit-counters,trace-cmp] + - With various defines that limit worst case exponential behavior: + * -DHB_MAX_NESTING_LEVEL=3 + - link against libFuzzer + +To run the fuzzer one needs to first obtain a test corpus as a directory +containing interesting fonts. A good starting point is inside +harfbuzz/test/shaping/fonts/fonts/. +Then, run the fuzzer like this: + ./hb-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: + - http://llvm.org/docs/LibFuzzer.html or + - https://github.com/google/libfuzzer-bot/tree/master/harfbuzz + - https://github.com/behdad/harfbuzz/issues/139