diff options
author | Jay Berkenbilt <ejb@ql.org> | 2019-06-21 23:35:37 +0200 |
---|---|---|
committer | Jay Berkenbilt <ejb@ql.org> | 2019-06-21 23:39:53 +0200 |
commit | 2320714339b572a4d5bceadfcfc94356aa782ada (patch) | |
tree | 72d5c6b9f9a12686201a6dcea175e2a06cf9c146 | |
parent | ed7f2a6c76cf41956861c7a43f5cd22876230e86 (diff) | |
download | qpdf-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
-rw-r--r-- | fuzz/build.mk | 16 | ||||
-rw-r--r-- | fuzz/qpdf_fuzzer.options (renamed from fuzz/options) | 0 | ||||
-rw-r--r-- | fuzz/qtest/fuzz.test | 4 |
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; |