aboutsummaryrefslogtreecommitdiffstats
path: root/fuzz
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2019-06-21 23:35:37 +0200
committerJay Berkenbilt <ejb@ql.org>2019-06-21 23:39:53 +0200
commit2320714339b572a4d5bceadfcfc94356aa782ada (patch)
tree72d5c6b9f9a12686201a6dcea175e2a06cf9c146 /fuzz
parented7f2a6c76cf41956861c7a43f5cd22876230e86 (diff)
downloadqpdf-2320714339b572a4d5bceadfcfc94356aa782ada.tar.zst
Clean up fuzzer installation and add test files
* Create the seed corpus in the build directory * Don't assume all fuzzers share an options file
Diffstat (limited to 'fuzz')
-rw-r--r--fuzz/build.mk16
-rw-r--r--fuzz/qpdf_fuzzer.options (renamed from fuzz/options)0
-rw-r--r--fuzz/qtest/fuzz.test4
3 files changed, 12 insertions, 8 deletions
diff --git a/fuzz/build.mk b/fuzz/build.mk
index 4c9cabef..43b65906 100644
--- a/fuzz/build.mk
+++ b/fuzz/build.mk
@@ -22,8 +22,10 @@ $(BINS_fuzz): $(TARGETS_libqpdf) $(OBJ_DEFAULT_FUZZ)
# Files from the test suite that are good for seeding the fuzzer.
# Update $n_test_files in qtest/fuzz.test if you change this list.
SEED_CORPUS_FILES = \
+ stream-data.pdf \
+ lin5.pdf \
field-types.pdf \
- image-streams.pdf \
+ image-streams-small.pdf \
need-appearances.pdf \
outlines-with-actions.pdf \
outlines-with-old-root-dests.pdf \
@@ -53,7 +55,7 @@ SEED_CORPUS_FILES = \
# -----
CORPUS_FROM_TEST := $(foreach F,$(SEED_CORPUS_FILES),qpdf/qtest/qpdf/$F)
-CORPUS_DIR := fuzz/qpdf_fuzzer_seed_corpus
+CORPUS_DIR := fuzz/$(OUTPUT_DIR)/qpdf_fuzzer_seed_corpus
.PHONY: fuzz_corpus
fuzz_corpus:: fuzz/$(OUTPUT_DIR)/fuzz_corpus.stamp
@@ -68,7 +70,7 @@ $(foreach F,$(CORPUS_FROM_TEST),$(eval \
fuzz/$(OUTPUT_DIR)/fuzz_corpus.stamp: fuzz/original-corpus.tar.gz $(CORPUS_FROM_TEST)
mkdir -p $(CORPUS_DIR)
- (cd $(CORPUS_DIR); tar xzf ../original-corpus.tar.gz)
+ (cd $(CORPUS_DIR); tar xzf ../../original-corpus.tar.gz)
touch $@
$(foreach B,$(FUZZERS),$(eval \
@@ -122,9 +124,11 @@ install_fuzz: $(STATIC_BINS_fuzz)
mkdir -p $(OUT)
cp fuzz/pdf.dict $(STATIC_BINS_fuzz) $(OUT)/
for B in $(FUZZERS); do \
- cp fuzz/options $(OUT)/$${B}.options; \
- if test -d fuzz/$${B}_seed_corpus; then \
- (cd fuzz/$${B}_seed_corpus; zip -q -r $(OUT)/$${B}_seed_corpus.zip .); \
+ if test -f fuzz/$${B}.options; then \
+ cp fuzz/$${B}.options $(OUT)/$${B}.options; \
+ 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 .); \
fi; \
done
diff --git a/fuzz/options b/fuzz/qpdf_fuzzer.options
index a15a7745..a15a7745 100644
--- a/fuzz/options
+++ b/fuzz/qpdf_fuzzer.options
diff --git a/fuzz/qtest/fuzz.test b/fuzz/qtest/fuzz.test
index d033fcef..9b824306 100644
--- a/fuzz/qtest/fuzz.test
+++ b/fuzz/qtest/fuzz.test
@@ -9,8 +9,8 @@ require TestDriver;
my $td = new TestDriver('fuzz');
-my @files = glob("../qpdf_fuzzer_seed_corpus/*");
-my $n_test_files = 27;
+my @files = glob("../build/qpdf_fuzzer_seed_corpus/*");
+my $n_test_files = 29;
my $n_orig_files = 2559;
my $n_files = $n_test_files + $n_orig_files;