diff options
| author | Kostya Serebryany <kcc@google.com> | 2015-07-24 01:06:40 +0000 |
|---|---|---|
| committer | Kostya Serebryany <kcc@google.com> | 2015-07-24 01:06:40 +0000 |
| commit | 404c69f2c8c7f7d4993f80fb1f7390571ffe56b6 (patch) | |
| tree | 6396616273d6126f80ca341473538f9720740094 /llvm/lib/Fuzzer/test | |
| parent | 636cd262d6ae996e76faba51e24eccb603e7e42f (diff) | |
| download | bcm5719-llvm-404c69f2c8c7f7d4993f80fb1f7390571ffe56b6.tar.gz bcm5719-llvm-404c69f2c8c7f7d4993f80fb1f7390571ffe56b6.zip | |
[libFuzzer] allow users to supply their own implementation of rand
llvm-svn: 243078
Diffstat (limited to 'llvm/lib/Fuzzer/test')
| -rw-r--r-- | llvm/lib/Fuzzer/test/FuzzerUnittest.cpp | 3 | ||||
| -rw-r--r-- | llvm/lib/Fuzzer/test/UserSuppliedFuzzerTest.cpp | 5 |
2 files changed, 6 insertions, 2 deletions
diff --git a/llvm/lib/Fuzzer/test/FuzzerUnittest.cpp b/llvm/lib/Fuzzer/test/FuzzerUnittest.cpp index 50f2f99760e..ed52a55a507 100644 --- a/llvm/lib/Fuzzer/test/FuzzerUnittest.cpp +++ b/llvm/lib/Fuzzer/test/FuzzerUnittest.cpp @@ -10,6 +10,7 @@ extern "C" void LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { TEST(Fuzzer, CrossOver) { using namespace fuzzer; + FuzzerRandomLibc Rand(0); Unit A({0, 1, 2}), B({5, 6, 7}); Unit C; Unit Expected[] = { @@ -53,7 +54,7 @@ TEST(Fuzzer, CrossOver) { for (int Iter = 0; Iter < 3000; Iter++) { C.resize(Len); size_t NewSize = CrossOver(A.data(), A.size(), B.data(), B.size(), - C.data(), C.size()); + C.data(), C.size(), Rand); C.resize(NewSize); FoundUnits.insert(C); } diff --git a/llvm/lib/Fuzzer/test/UserSuppliedFuzzerTest.cpp b/llvm/lib/Fuzzer/test/UserSuppliedFuzzerTest.cpp index b46313dbafb..8ebe1575ad0 100644 --- a/llvm/lib/Fuzzer/test/UserSuppliedFuzzerTest.cpp +++ b/llvm/lib/Fuzzer/test/UserSuppliedFuzzerTest.cpp @@ -14,6 +14,8 @@ static const uint64_t kMagic = 8860221463604ULL; class MyFuzzer : public fuzzer::UserSuppliedFuzzer { public: + MyFuzzer(fuzzer::FuzzerRandomBase *Rand) + : fuzzer::UserSuppliedFuzzer(Rand) {} void TargetFunction(const uint8_t *Data, size_t Size) { if (Size <= 10) return; if (memcmp(Data, &kMagic, sizeof(kMagic))) return; @@ -42,6 +44,7 @@ class MyFuzzer : public fuzzer::UserSuppliedFuzzer { }; int main(int argc, char **argv) { - MyFuzzer F; + fuzzer::FuzzerRandomLibc Rand(0); + MyFuzzer F(&Rand); fuzzer::FuzzerDriver(argc, argv, F); } |

