summaryrefslogtreecommitdiffstats
path: root/compiler-rt/lib/fuzzer/FuzzerMerge.h
diff options
context:
space:
mode:
authorKostya Serebryany <kcc@google.com>2019-02-08 21:27:23 +0000
committerKostya Serebryany <kcc@google.com>2019-02-08 21:27:23 +0000
commitf762a11544b77bcb5cbb45e9726562018cd5c8fa (patch)
treed9a22b41759cdc51c01d54feeb26a7d1a5a23044 /compiler-rt/lib/fuzzer/FuzzerMerge.h
parent3bf72d7d64b8465acd4f4af1a469d68d9dc86058 (diff)
downloadbcm5719-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.h10
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
OpenPOWER on IntegriCloud