diff options
| author | Kostya Serebryany <kcc@google.com> | 2016-02-12 02:32:03 +0000 |
|---|---|---|
| committer | Kostya Serebryany <kcc@google.com> | 2016-02-12 02:32:03 +0000 |
| commit | 9d14e4bb1523f9d29ea1f26af7d0294013682cea (patch) | |
| tree | 52b0cd362b8385ac0705ecc0a31886f17e2927e5 /llvm/lib/Fuzzer/test | |
| parent | 39a84d0b9bd4865ea01e8c6d6c99d8f9d294da81 (diff) | |
| download | bcm5719-llvm-9d14e4bb1523f9d29ea1f26af7d0294013682cea.tar.gz bcm5719-llvm-9d14e4bb1523f9d29ea1f26af7d0294013682cea.zip | |
[libFuzzer] make -runs=N flag also affect the simple runner (will execute every input N times)
llvm-svn: 260649
Diffstat (limited to 'llvm/lib/Fuzzer/test')
| -rw-r--r-- | llvm/lib/Fuzzer/test/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | llvm/lib/Fuzzer/test/NthRunCrashTest.cpp | 15 | ||||
| -rw-r--r-- | llvm/lib/Fuzzer/test/fuzzer.test | 8 |
3 files changed, 23 insertions, 1 deletions
diff --git a/llvm/lib/Fuzzer/test/CMakeLists.txt b/llvm/lib/Fuzzer/test/CMakeLists.txt index c9ccf9b565e..1443dc58eef 100644 --- a/llvm/lib/Fuzzer/test/CMakeLists.txt +++ b/llvm/lib/Fuzzer/test/CMakeLists.txt @@ -22,6 +22,7 @@ set(Tests MemcmpTest LeakTest NullDerefTest + NthRunCrashTest RepeatedMemcmp SimpleCmpTest SimpleDictionaryTest diff --git a/llvm/lib/Fuzzer/test/NthRunCrashTest.cpp b/llvm/lib/Fuzzer/test/NthRunCrashTest.cpp new file mode 100644 index 00000000000..03d03d00db6 --- /dev/null +++ b/llvm/lib/Fuzzer/test/NthRunCrashTest.cpp @@ -0,0 +1,15 @@ +// Crash on the N-th execution. +#include <cstdint> +#include <cstddef> +#include <iostream> + +static int Counter; + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { + if (Counter++ == 1000) { + std::cout << "BINGO; Found the target, exiting\n"; + exit(1); + } + return 0; +} + diff --git a/llvm/lib/Fuzzer/test/fuzzer.test b/llvm/lib/Fuzzer/test/fuzzer.test index a38e6a208ec..aadff795ed4 100644 --- a/llvm/lib/Fuzzer/test/fuzzer.test +++ b/llvm/lib/Fuzzer/test/fuzzer.test @@ -53,10 +53,16 @@ RUN: echo aaa > %tmp/SINGLE_INPUTS/aaa RUN: echo bbb > %tmp/SINGLE_INPUTS/bbb RUN: LLVMFuzzer-SimpleTest %tmp/SINGLE_INPUTS/aaa %tmp/SINGLE_INPUTS/bbb 2>&1 | FileCheck %s --check-prefix=SINGLE_INPUTS RUN: rm -rf %tmp/SINGLE_INPUTS -SINGLE_INPUTS: LLVMFuzzer-SimpleTest: Running 2 inputs. +SINGLE_INPUTS: LLVMFuzzer-SimpleTest: Running 2 inputs 1 time(s) each. SINGLE_INPUTS: aaa: SINGLE_INPUTS: bbb: RUN: not LLVMFuzzer-LeakTest -runs=10 2>&1 | FileCheck %s --check-prefix=LEAK LEAK: ERROR: LeakSanitizer: detected memory leaks LEAK-NOT: DEATH: + +RUN: echo abcd > %t/NthRunCrashTest.in +RUN: LLVMFuzzer-NthRunCrashTest %t/NthRunCrashTest.in +RUN: LLVMFuzzer-NthRunCrashTest %t/NthRunCrashTest.in -runs=10 +RUN: not LLVMFuzzer-NthRunCrashTest %t/NthRunCrashTest.in -runs=10000 2>&1 | FileCheck %s +RUN: rm %t/NthRunCrashTest.in |

