diff options
| author | Kostya Serebryany <kcc@google.com> | 2019-02-08 01:20:54 +0000 |
|---|---|---|
| committer | Kostya Serebryany <kcc@google.com> | 2019-02-08 01:20:54 +0000 |
| commit | 89ce99374691983d64bdbd008b151e7d356cee8d (patch) | |
| tree | 250ba30e82eba11ff92f81a6d1706224dffbc275 /lib/fuzzer/FuzzerDriver.cpp | |
| parent | 197fec084caa22558ffaf317a0b8e6135ab82df3 (diff) | |
| download | compiler-rt-89ce99374691983d64bdbd008b151e7d356cee8d.tar.gz | |
[libFuzzer] refactor the way we choose the element to cross-over with, NFC (expected1); add a flag -seed_inputs= to pass extra seed inputs as file paths, not dirs
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@353494 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/fuzzer/FuzzerDriver.cpp')
| -rw-r--r-- | lib/fuzzer/FuzzerDriver.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/lib/fuzzer/FuzzerDriver.cpp b/lib/fuzzer/FuzzerDriver.cpp index 0f8389cb3..2bc895d00 100644 --- a/lib/fuzzer/FuzzerDriver.cpp +++ b/lib/fuzzer/FuzzerDriver.cpp @@ -732,7 +732,19 @@ int FuzzerDriver(int *argc, char ***argv, UserCallback Callback) { exit(0); } - F->Loop(*Inputs); + // Parse -seed_inputs=file1,file2,... + Vector<std::string> ExtraSeedFiles; + if (Flags.seed_inputs) { + std::string s = Flags.seed_inputs; + size_t comma_pos; + while ((comma_pos = s.find_last_of(',')) != std::string::npos) { + ExtraSeedFiles.push_back(s.substr(comma_pos + 1)); + s = s.substr(0, comma_pos); + } + ExtraSeedFiles.push_back(s); + } + + F->Loop(*Inputs, ExtraSeedFiles); if (Flags.verbosity) Printf("Done %zd runs in %zd second(s)\n", F->getTotalNumberOfRuns(), |
