- if (!inputs.empty())
- Options.OutputCorpus = inputs[0];
- Fuzzer F(Callback, Options);
-
- unsigned seed = Flags.seed;
- // Initialize seed.
- if (seed == 0)
- seed = time(0) * 10000 + getpid();
- if (Flags.verbosity)
- std::cerr << "Seed: " << seed << "\n";
- srand(seed);
+ if (!Inputs->empty())
+ Options.OutputCorpus = (*Inputs)[0];
+ if (Flags.sync_command)
+ Options.SyncCommand = Flags.sync_command;
+ Options.SyncTimeout = Flags.sync_timeout;
+ Options.ReportSlowUnits = Flags.report_slow_units;
+ if (Flags.artifact_prefix)
+ Options.ArtifactPrefix = Flags.artifact_prefix;
+ if (Flags.exact_artifact_path)
+ Options.ExactArtifactPath = Flags.exact_artifact_path;
+ std::vector<Unit> Dictionary;
+ if (Flags.dict)
+ if (!ParseDictionaryFile(FileToString(Flags.dict), &Dictionary))
+ return 1;
+ if (Flags.verbosity > 0 && !Dictionary.empty())
+ Printf("Dictionary: %zd entries\n", Dictionary.size());
+ Options.SaveArtifacts = !Flags.test_single_input;
+
+ Fuzzer F(USF, Options);
+
+ for (auto &U: Dictionary)
+ USF.GetMD().AddWordToDictionary(U.data(), U.size());