From 95e82d5b482e71286168eb0cab709d627ea9a06f Mon Sep 17 00:00:00 2001 From: Ivan Krasin Date: Thu, 1 Oct 2015 23:23:06 +0000 Subject: [LibFuzzer] test_single_input option to run a single test case. -test_single_input flag specifies a file name with test data. Review URL: http://reviews.llvm.org/D13359 Patch by Mike Aizatsky! llvm-svn: 249096 --- llvm/lib/Fuzzer/FuzzerDriver.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'llvm/lib/Fuzzer/FuzzerDriver.cpp') diff --git a/llvm/lib/Fuzzer/FuzzerDriver.cpp b/llvm/lib/Fuzzer/FuzzerDriver.cpp index e79c21e8bdb..9c4406e219c 100644 --- a/llvm/lib/Fuzzer/FuzzerDriver.cpp +++ b/llvm/lib/Fuzzer/FuzzerDriver.cpp @@ -202,6 +202,12 @@ int ApplyTokens(const Fuzzer &F, const char *InputFilePath) { return 0; } +int RunOneTest(Fuzzer *F, const char *InputFilePath) { + Unit U = FileToVector(InputFilePath); + F->ExecuteCallback(U); + return 0; +} + int FuzzerDriver(int argc, char **argv, UserCallback Callback) { FuzzerRandomLibc Rand(0); SimpleUserSuppliedFuzzer SUSF(&Rand, Callback); @@ -275,6 +281,9 @@ int FuzzerDriver(const std::vector &Args, if (Flags.apply_tokens) return ApplyTokens(F, Flags.apply_tokens); + if (Flags.test_single_input) + return RunOneTest(&F, Flags.test_single_input); + unsigned Seed = Flags.seed; // Initialize Seed. if (Seed == 0) -- cgit v1.2.3