diff options
author | Kostya Serebryany <kcc@google.com> | 2019-02-08 21:27:23 +0000 |
---|---|---|
committer | Kostya Serebryany <kcc@google.com> | 2019-02-08 21:27:23 +0000 |
commit | f762a11544b77bcb5cbb45e9726562018cd5c8fa (patch) | |
tree | d9a22b41759cdc51c01d54feeb26a7d1a5a23044 /compiler-rt/lib/fuzzer/FuzzerMerge.h | |
parent | 3bf72d7d64b8465acd4f4af1a469d68d9dc86058 (diff) | |
download | bcm5719-llvm-f762a11544b77bcb5cbb45e9726562018cd5c8fa.tar.gz bcm5719-llvm-f762a11544b77bcb5cbb45e9726562018cd5c8fa.zip |
[libFuzzer] introduce an experimental mode -fork=1, where fuzzing happens in a subprocess (still running multiple inputs per process), thus making the fuzzing more resilient to timeouts and OOMs. This is just a skeleton of the code, and some associated refactoring, not a fully working feature yet.
llvm-svn: 353570
Diffstat (limited to 'compiler-rt/lib/fuzzer/FuzzerMerge.h')
-rw-r--r-- | compiler-rt/lib/fuzzer/FuzzerMerge.h | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/compiler-rt/lib/fuzzer/FuzzerMerge.h b/compiler-rt/lib/fuzzer/FuzzerMerge.h index 49031d3b408..917108e3f09 100644 --- a/compiler-rt/lib/fuzzer/FuzzerMerge.h +++ b/compiler-rt/lib/fuzzer/FuzzerMerge.h @@ -67,13 +67,17 @@ struct Merger { Set<uint32_t> ParseSummary(std::istream &IS); size_t Merge(const Set<uint32_t> &InitialFeatures, Vector<std::string> *NewFiles); - size_t Merge(Vector<std::string> *NewFiles) { - return Merge(Set<uint32_t>{}, NewFiles); - } size_t ApproximateMemoryConsumption() const; Set<uint32_t> AllFeatures() const; }; +Vector<std::string> +CrashResistantMerge(const Vector<std::string> &Args, + const Vector<std::string> &Corpora, + const std::string &CFPath, + const char *CoverageSummaryInputPathOrNull, + const char *CoverageSummaryOutputPathOrNull); + } // namespace fuzzer #endif // LLVM_FUZZER_MERGE_H |