diff options
author | Kostya Serebryany <kcc@google.com> | 2016-09-17 05:04:47 +0000 |
---|---|---|
committer | Kostya Serebryany <kcc@google.com> | 2016-09-17 05:04:47 +0000 |
commit | 3e36ec1d18188810b19bb7d2153039ae2cc8c0db (patch) | |
tree | c6b6a188e57ec99534ee410782dbd6f878f0e747 /llvm/lib/Fuzzer/test | |
parent | 8ad415574543c5ee4de98678fbe7452f60a086e3 (diff) | |
download | bcm5719-llvm-3e36ec1d18188810b19bb7d2153039ae2cc8c0db.tar.gz bcm5719-llvm-3e36ec1d18188810b19bb7d2153039ae2cc8c0db.zip |
[libFuzzer] change trace-pc to use 8-byte guards
llvm-svn: 281810
Diffstat (limited to 'llvm/lib/Fuzzer/test')
-rw-r--r-- | llvm/lib/Fuzzer/test/DSO1.cpp | 11 | ||||
-rw-r--r-- | llvm/lib/Fuzzer/test/DSO2.cpp | 11 | ||||
-rw-r--r-- | llvm/lib/Fuzzer/test/DSOTestExtra.cpp | 11 | ||||
-rw-r--r-- | llvm/lib/Fuzzer/test/DSOTestMain.cpp | 27 | ||||
-rw-r--r-- | llvm/lib/Fuzzer/test/fuzzer-jobs.test | 2 | ||||
-rw-r--r-- | llvm/lib/Fuzzer/test/fuzzer.test | 4 | ||||
-rw-r--r-- | llvm/lib/Fuzzer/test/trace-pc/CMakeLists.txt | 22 |
7 files changed, 87 insertions, 1 deletions
diff --git a/llvm/lib/Fuzzer/test/DSO1.cpp b/llvm/lib/Fuzzer/test/DSO1.cpp new file mode 100644 index 00000000000..c362593f779 --- /dev/null +++ b/llvm/lib/Fuzzer/test/DSO1.cpp @@ -0,0 +1,11 @@ +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. + +// Source code for a simple DSO. + +int DSO1(int a) { + if (a < 123456) + return 0; + return 1; +} + diff --git a/llvm/lib/Fuzzer/test/DSO2.cpp b/llvm/lib/Fuzzer/test/DSO2.cpp new file mode 100644 index 00000000000..46c80e4b6fe --- /dev/null +++ b/llvm/lib/Fuzzer/test/DSO2.cpp @@ -0,0 +1,11 @@ +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. + +// Source code for a simple DSO. + +int DSO2(int a) { + if (a < 3598235) + return 0; + return 1; +} + diff --git a/llvm/lib/Fuzzer/test/DSOTestExtra.cpp b/llvm/lib/Fuzzer/test/DSOTestExtra.cpp new file mode 100644 index 00000000000..a2274d070eb --- /dev/null +++ b/llvm/lib/Fuzzer/test/DSOTestExtra.cpp @@ -0,0 +1,11 @@ +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. + +// Source code for a simple DSO. + +int DSOTestExtra(int a) { + if (a < 452345) + return 0; + return 1; +} + diff --git a/llvm/lib/Fuzzer/test/DSOTestMain.cpp b/llvm/lib/Fuzzer/test/DSOTestMain.cpp new file mode 100644 index 00000000000..49cd185e97d --- /dev/null +++ b/llvm/lib/Fuzzer/test/DSOTestMain.cpp @@ -0,0 +1,27 @@ +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. + +// Source code for a simple DSO. + +#include <cstdint> +#include <cstdlib> +#include <cstring> +#include <cstdio> +extern int DSO1(int a); +extern int DSO2(int a); +extern int DSOTestExtra(int a); + + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { + if (Size < sizeof(int) * 3) return 0; + int x, y, z; + memcpy(&x, Data + 0 * sizeof(int), sizeof(int)); + memcpy(&y, Data + 1 * sizeof(int), sizeof(int)); + memcpy(&z, Data + 2 * sizeof(int), sizeof(int)); + int sum = DSO1(x) + DSO2(y) + DSOTestExtra(z); + if (sum == 3) { + fprintf(stderr, "BINGO %d %d %d\n", x, y, z); + exit(1); + } + return 0; +} diff --git a/llvm/lib/Fuzzer/test/fuzzer-jobs.test b/llvm/lib/Fuzzer/test/fuzzer-jobs.test index cd71bc07972..5bf8cfadfb7 100644 --- a/llvm/lib/Fuzzer/test/fuzzer-jobs.test +++ b/llvm/lib/Fuzzer/test/fuzzer-jobs.test @@ -9,7 +9,7 @@ RUN: rm -f fuzz-{0,1}.log RUN: LLVMFuzzer-EmptyTest -max_total_time=4 -jobs=2 -workers=2 FuzzerJobsTestCORPUS > %t-fuzzer-jobs-test.log 2>&1 & export FUZZER_PID=$! # Wait a short while to give time for the child processes # to start fuzzing -RUN: sleep 1 +RUN: sleep 2 # If the instances are running in parallel they should have created their log # files by now. RUN: ls fuzz-0.log diff --git a/llvm/lib/Fuzzer/test/fuzzer.test b/llvm/lib/Fuzzer/test/fuzzer.test index 0e7b26ec726..ce207855e52 100644 --- a/llvm/lib/Fuzzer/test/fuzzer.test +++ b/llvm/lib/Fuzzer/test/fuzzer.test @@ -49,3 +49,7 @@ OOB: is located 0 bytes to the right of 3-byte region RUN: not LLVMFuzzer-InitializeTest 2>&1 | FileCheck %s +RUN: not LLVMFuzzer-DSOTest 2>&1 | FileCheck %s --check-prefix=DSO +DSO: INFO: Loaded 3 modules +DSO: BINGO + diff --git a/llvm/lib/Fuzzer/test/trace-pc/CMakeLists.txt b/llvm/lib/Fuzzer/test/trace-pc/CMakeLists.txt index 4ecf80163a0..c4e4e9c29d4 100644 --- a/llvm/lib/Fuzzer/test/trace-pc/CMakeLists.txt +++ b/llvm/lib/Fuzzer/test/trace-pc/CMakeLists.txt @@ -15,3 +15,25 @@ endforeach() # Propagate value into parent directory set(TestBinaries ${TestBinaries} PARENT_SCOPE) + +add_library(LLVMFuzzer-DSO1 SHARED ../DSO1.cpp) +add_library(LLVMFuzzer-DSO2 SHARED ../DSO2.cpp) + +add_executable(LLVMFuzzer-DSOTest + ../DSOTestMain.cpp + ../DSOTestExtra.cpp) + +target_link_libraries(LLVMFuzzer-DSOTest + LLVMFuzzer-DSO1 + LLVMFuzzer-DSO2 + LLVMFuzzer + ) + +set_target_properties(LLVMFuzzer-DSOTest PROPERTIES RUNTIME_OUTPUT_DIRECTORY + "${CMAKE_BINARY_DIR}/lib/Fuzzer/test") +set_target_properties(LLVMFuzzer-DSO1 PROPERTIES LIBRARY_OUTPUT_DIRECTORY + "${CMAKE_BINARY_DIR}/lib/Fuzzer/lib") +set_target_properties(LLVMFuzzer-DSO2 PROPERTIES LIBRARY_OUTPUT_DIRECTORY + "${CMAKE_BINARY_DIR}/lib/Fuzzer/lib") + +set(TestBinaries ${TestBinaries} LLVMFuzzer-DSOTest) |