Lines Matching +full:fuzz +full:- +full:seconds

1 //===- FuzzerFork.cpp - run fuzzing in separate subprocesses --------------===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
9 //===----------------------------------------------------------------------===//
115 return std::chrono::duration_cast<std::chrono::seconds>( in secondsSinceProcessStartUp()
116 std::chrono::system_clock::now() - ProcessStartTime) in secondsSinceProcessStartUp()
144 size_t StartIndex = ((JobId - 1) % NumCorpuses) * AverageCorpusSize; in CreateNewJob()
149 : Rand->SkewTowardsLast(Files.size()); in CreateNewJob()
156 auto &SF = Files[Rand->SkewTowardsLast(Files.size())]; in CreateNewJob()
162 auto DftTimeInSeconds = duration_cast<seconds>(Time2 - Time1).count(); in CreateNewJob()
164 Job->DftTimeInSeconds = static_cast<int>(DftTimeInSeconds); in CreateNewJob()
167 Job->SeedListPath = in CreateNewJob()
169 WriteToFile(Seeds, Job->SeedListPath); in CreateNewJob()
170 Cmd.addFlag("seed_inputs", "@" + Job->SeedListPath); in CreateNewJob()
172 Job->LogPath = DirPlusFile(TempDir, std::to_string(JobId) + ".log"); in CreateNewJob()
173 Job->CorpusDir = DirPlusFile(TempDir, "C" + std::to_string(JobId)); in CreateNewJob()
174 Job->FeaturesDir = DirPlusFile(TempDir, "F" + std::to_string(JobId)); in CreateNewJob()
175 Job->CFPath = DirPlusFile(TempDir, std::to_string(JobId) + ".merge"); in CreateNewJob()
176 Job->JobId = JobId; in CreateNewJob()
179 Cmd.addArgument(Job->CorpusDir); in CreateNewJob()
180 Cmd.addFlag("features_dir", Job->FeaturesDir); in CreateNewJob()
182 for (auto &D : {Job->CorpusDir, Job->FeaturesDir}) { in CreateNewJob()
187 Cmd.setOutputFile(Job->LogPath); in CreateNewJob()
190 Job->Cmd = Cmd; in CreateNewJob()
194 Job->Cmd.toString().c_str()); in CreateNewJob()
200 auto Stats = ParseFinalStatsFromLog(Job->LogPath); in RunOneMergeJob()
206 GetSizedFilesFromDir(Job->CorpusDir, &TempFiles); in RunOneMergeJob()
210 FeatureFile.replace(0, Job->CorpusDir.size(), Job->FeaturesDir); in RunOneMergeJob()
222 // if (!FilesToAdd.empty() || Job->ExitCode != 0) in RunOneMergeJob()
227 secondsSinceProcessStartUp(), Job->JobId, Job->DftTimeInSeconds); in RunOneMergeJob()
234 !Job->Cmd.getFlagValue("set_cover_merge").compare("1"); in RunOneMergeJob()
236 &NewFeatures, Cov, &NewCov, Job->CFPath, false, in RunOneMergeJob()
245 std::upper_bound(FilesSizes.begin(), FilesSizes.end(), UnitSize) - in RunOneMergeJob()
259 TPC.GetNextInstructionPc(TE->PC)); in RunOneMergeJob()
304 while (auto Job = FuzzQ->Pop()) { in WorkerThread()
306 Job->ExitCode = ExecuteCommand(Job->Cmd); in WorkerThread()
307 MergeQ->Push(Job); in WorkerThread()
311 // This is just a skeleton of an experimental -fork=1 feature.
315 Printf("INFO: -fork=%d: fuzzing in separate process(s)\n", NumJobs); in FuzzWithFork()
361 Printf("INFO: -fork=%d: %zd seed inputs, starting to fuzz in %s\n", NumJobs, in FuzzWithFork()
388 ExitCode = Job->ExitCode; in FuzzWithFork()
445 std::ifstream In(Job->LogPath); in FuzzWithFork()
454 FileToString(Job->LogPath).c_str()); in FuzzWithFork()
466 Printf("INFO: fuzzed for %zd seconds, wrapping up soon\n", in FuzzWithFork()