mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-26 05:25:47 +00:00
[lib/Fuzzer] when -sync_command=<CMD> is given, periodically execute 'CMD CORPUS' to synchronize with other processes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237617 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -324,6 +324,7 @@ void Fuzzer::MutateAndTestOne(Unit *U) {
|
||||
void Fuzzer::Loop(size_t NumIterations) {
|
||||
for (size_t i = 1; i <= NumIterations; i++) {
|
||||
for (size_t J1 = 0; J1 < Corpus.size(); J1++) {
|
||||
SyncCorpus();
|
||||
RereadOutputCorpus();
|
||||
if (TotalNumberOfRuns >= Options.MaxNumberOfRuns)
|
||||
return;
|
||||
@@ -342,4 +343,14 @@ void Fuzzer::Loop(size_t NumIterations) {
|
||||
}
|
||||
}
|
||||
|
||||
void Fuzzer::SyncCorpus() {
|
||||
if (Options.SyncCommand.empty() || Options.OutputCorpus.empty()) return;
|
||||
auto Now = system_clock::now();
|
||||
if (duration_cast<seconds>(Now - LastExternalSync).count() <
|
||||
Options.SyncTimeout)
|
||||
return;
|
||||
LastExternalSync = Now;
|
||||
ExecuteCommand(Options.SyncCommand + " " + Options.OutputCorpus);
|
||||
}
|
||||
|
||||
} // namespace fuzzer
|
||||
|
Reference in New Issue
Block a user