| // |
| // 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 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 HandleXfsz = false; |
| bool HandleUsr1 = false; |
| bool HandleUsr2 = false; |
| bool HandleWinExcept = false; |
| }; |
| |
| } // namespace fuzzer |
| |
| #endif // LLVM_FUZZER_OPTIONS_H |