| // | |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. | |
| // See https://llvm.org/LICENSE.txt for license information. | |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | |
| // | |
| //===----------------------------------------------------------------------===// | |
| // fuzzer::FuzzingOptions | |
| //===----------------------------------------------------------------------===// | |
| #ifndef LLVM_FUZZER_OPTIONS_H | |
| #define LLVM_FUZZER_OPTIONS_H | |
| #include "FuzzerDefs.h" | |
| namespace fuzzer { | |
| struct FuzzingOptions { | |
| int Verbosity = 1; | |
| size_t MaxLen = 0; | |
| size_t LenControl = 1000; | |
| bool KeepSeed = false; | |
| int UnitTimeoutSec = 300; | |
| int TimeoutExitCode = 70; | |
| int OOMExitCode = 71; | |
| int InterruptExitCode = 72; | |
| int ErrorExitCode = 77; | |
| bool IgnoreTimeouts = true; | |
| bool IgnoreOOMs = true; | |
| bool IgnoreCrashes = false; | |
| int MaxTotalTimeSec = 0; | |
| int StaleCorpusTimeoutSec = 0; | |
| int RssLimitMb = 0; | |
| int MallocLimitMb = 0; | |
| bool DoCrossOver = true; | |
| bool CrossOverUniformDist = false; | |
| int MutateDepth = 5; | |
| bool ReduceDepth = false; | |
| bool UseCounters = false; | |
| bool UseMemmem = true; | |
| bool UseCmp = false; | |
| int UseValueProfile = false; | |
| bool Shrink = false; | |
| bool ReduceInputs = false; | |
| int ReloadIntervalSec = 1; | |
| bool ShuffleAtStartUp = true; | |
| bool PreferSmall = true; | |
| size_t MaxNumberOfRuns = -1L; | |
| int ReportSlowUnits = 10; | |
| bool OnlyASCII = false; | |
| bool Entropic = true; | |
| bool ForkCorpusGroups = false; | |
| size_t EntropicFeatureFrequencyThreshold = 0xFF; | |
| size_t EntropicNumberOfRarestFeatures = 100; | |
| bool EntropicScalePerExecTime = false; | |
| std::string OutputCorpus; | |
| std::string ArtifactPrefix = "./"; | |
| std::string ExactArtifactPath; | |
| std::string ExitOnSrcPos; | |
| std::string ExitOnItem; | |
| std::string FocusFunction; | |
| std::string DataFlowTrace; | |
| std::string CollectDataFlow; | |
| std::string FeaturesDir; | |
| std::string MutationGraphFile; | |
| std::string StopFile; | |
| bool SaveArtifacts = true; | |
| bool PrintNEW = true; // Print a status line when new units are found; | |
| bool PrintNewCovPcs = false; | |
| int PrintNewCovFuncs = 0; | |
| bool PrintFinalStats = false; | |
| bool PrintCorpusStats = false; | |
| bool PrintCoverage = false; | |
| bool PrintFullCoverage = false; | |
| bool DumpCoverage = false; | |
| bool DetectLeaks = true; | |
| int PurgeAllocatorIntervalSec = 1; | |
| int TraceMalloc = 0; | |
| bool HandleAbrt = false; | |
| bool HandleAlrm = false; | |
| bool HandleBus = false; | |
| bool HandleFpe = false; | |
| bool HandleIll = false; | |
| bool HandleInt = false; | |
| bool HandleSegv = false; | |
| bool HandleTerm = false; | |
| bool HandleTrap = false; | |
| bool HandleXfsz = false; | |
| bool HandleUsr1 = false; | |
| bool HandleUsr2 = false; | |
| bool HandleWinExcept = false; | |
| }; | |
| } // namespace fuzzer | |
| #endif // LLVM_FUZZER_OPTIONS_H |