summaryrefslogtreecommitdiffstats
path: root/fuzz/build.mk
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2019-06-23 20:31:35 +0200
committerJay Berkenbilt <ejb@ql.org>2019-06-23 21:37:21 +0200
commit0ae344d002755d1f218fe4fbd818a814bc3ebdbc (patch)
treea4a9205045c43caaf51e7ceccd5edb222c8af657 /fuzz/build.mk
parent43ff34b49c55f03d8613e3cefd405d3c64dc354a (diff)
downloadqpdf-0ae344d002755d1f218fe4fbd818a814bc3ebdbc.tar.zst
Add fuzzers to exercise specific pipeline classes
Diffstat (limited to 'fuzz/build.mk')
-rw-r--r--fuzz/build.mk16
1 files changed, 14 insertions, 2 deletions
diff --git a/fuzz/build.mk b/fuzz/build.mk
index 43b65906..44db5326 100644
--- a/fuzz/build.mk
+++ b/fuzz/build.mk
@@ -1,7 +1,16 @@
# This directory contains support for Google's oss-fuzz project. See
# https://github.com/google/oss-fuzz/tree/master/projects/qpdf
-FUZZERS = qpdf_fuzzer
+FUZZERS = \
+ qpdf_fuzzer \
+ ascii85_fuzzer \
+ dct_fuzzer \
+ flate_fuzzer \
+ hex_fuzzer \
+ lzw_fuzzer \
+ pngpredictor_fuzzer \
+ runlength_fuzzer \
+ tiffpredictor_fuzzer
DEFAULT_FUZZ_RUNNER := standalone_fuzz_target_runner
OBJ_DEFAULT_FUZZ := fuzz/$(OUTPUT_DIR)/$(DEFAULT_FUZZ_RUNNER).$(OBJ)
@@ -9,7 +18,8 @@ OBJ_DEFAULT_FUZZ := fuzz/$(OUTPUT_DIR)/$(DEFAULT_FUZZ_RUNNER).$(OBJ)
BINS_fuzz = $(foreach B,$(FUZZERS),fuzz/$(OUTPUT_DIR)/$(call binname,$(B)))
TARGETS_fuzz = $(OBJ_DEFAULT_FUZZ) $(BINS_fuzz) fuzz_corpus
-INCLUDES_fuzz = include
+# Fuzzers test private classes too, so we need libqpdf in the include path
+INCLUDES_fuzz = include libqpdf
# LIB_FUZZING_ENGINE is overridden by oss-fuzz
LIB_FUZZING_ENGINE ?= $(OBJ_DEFAULT_FUZZ)
@@ -129,6 +139,8 @@ install_fuzz: $(STATIC_BINS_fuzz)
fi; \
if test -d fuzz/$(OUTPUT_DIR)/$${B}_seed_corpus; then \
(cd fuzz/$(OUTPUT_DIR)/$${B}_seed_corpus; zip -q -r $(OUT)/$${B}_seed_corpus.zip .); \
+ elif test -d fuzz/$${B}_seed_corpus; then \
+ (cd fuzz/$${B}_seed_corpus; zip -q -r $(OUT)/$${B}_seed_corpus.zip .); \
fi; \
done