mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-25 00:24:26 +00:00
Add lit-style tests for the Fuzzer library
Summary: Add test targets and the lit-style runner. Test Plan: Run the tests on bot. Reviewers: samsonov Reviewed By: samsonov Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D7217 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227389 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -7,3 +7,7 @@ add_library(LLVMFuzzer STATIC
|
|||||||
FuzzerMutate.cpp
|
FuzzerMutate.cpp
|
||||||
FuzzerUtil.cpp
|
FuzzerUtil.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if( LLVM_INCLUDE_TESTS )
|
||||||
|
add_subdirectory(test)
|
||||||
|
endif()
|
||||||
|
@ -41,12 +41,12 @@ void Fuzzer::AlarmCallback() {
|
|||||||
duration_cast<seconds>(system_clock::now() - UnitStartTime).count();
|
duration_cast<seconds>(system_clock::now() - UnitStartTime).count();
|
||||||
std::cerr << "ALARM: working on the last Unit for " << Seconds << " seconds"
|
std::cerr << "ALARM: working on the last Unit for " << Seconds << " seconds"
|
||||||
<< std::endl;
|
<< std::endl;
|
||||||
if (Seconds > 60) {
|
if (Seconds >= 3) {
|
||||||
Print(CurrentUnit, "\n");
|
Print(CurrentUnit, "\n");
|
||||||
PrintASCII(CurrentUnit, "\n");
|
PrintASCII(CurrentUnit, "\n");
|
||||||
WriteToCrash(CurrentUnit, "timeout-");
|
WriteToCrash(CurrentUnit, "timeout-");
|
||||||
}
|
}
|
||||||
abort();
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Fuzzer::ShuffleAndMinimize() {
|
void Fuzzer::ShuffleAndMinimize() {
|
||||||
|
37
lib/Fuzzer/test/CMakeLists.txt
Normal file
37
lib/Fuzzer/test/CMakeLists.txt
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
set(Tests
|
||||||
|
ExactTest
|
||||||
|
InfiniteTest
|
||||||
|
NullDerefTest
|
||||||
|
SimpleTest
|
||||||
|
TimeoutTest
|
||||||
|
)
|
||||||
|
|
||||||
|
set(TestBinaries)
|
||||||
|
|
||||||
|
foreach(Test ${Tests})
|
||||||
|
add_executable(LLVMFuzzer-${Test}
|
||||||
|
EXCLUDE_FROM_ALL
|
||||||
|
${Test}.cpp
|
||||||
|
)
|
||||||
|
target_link_libraries(LLVMFuzzer-${Test}
|
||||||
|
LLVMFuzzer
|
||||||
|
)
|
||||||
|
set(TestBinaries ${TestBinaries} LLVMFuzzer-${Test})
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
set_target_properties(${TestBinaries}
|
||||||
|
PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||||
|
)
|
||||||
|
|
||||||
|
set(EXCLUDE_FROM_ALL TRUE)
|
||||||
|
add_lit_testsuite(check-fuzzer "Running Fuzzer tests"
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}
|
||||||
|
DEPENDS ${TestBinaries}
|
||||||
|
)
|
||||||
|
set(EXCLUDE_FROM_ALL FALSE)
|
||||||
|
|
||||||
|
configure_lit_site_cfg(
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
|
||||||
|
)
|
||||||
|
|
13
lib/Fuzzer/test/fuzzer.test
Normal file
13
lib/Fuzzer/test/fuzzer.test
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
RUN: ./LLVMFuzzer-SimpleTest 2>&1 | FileCheck %s --check-prefix=SimpleTest
|
||||||
|
SimpleTest: Found the target, exiting
|
||||||
|
|
||||||
|
RUN: not ./LLVMFuzzer-InfiniteTest -timeout=2 2>&1 | FileCheck %s --check-prefix=InfiniteTest
|
||||||
|
InfiniteTest: ALARM: working on the last Unit for
|
||||||
|
InfiniteTest-NOT: CRASHED; file written to timeout
|
||||||
|
|
||||||
|
RUN: not ./LLVMFuzzer-TimeoutTest -timeout=5 2>&1 | FileCheck %s --check-prefix=TimeoutTest
|
||||||
|
TimeoutTest: ALARM: working on the last Unit for
|
||||||
|
TimeoutTest: CRASHED; file written to timeout
|
||||||
|
|
||||||
|
RUN: not ./LLVMFuzzer-NullDerefTest 2>&1 | FileCheck %s --check-prefix=NullDerefTest
|
||||||
|
NullDerefTest: CRASHED; file written to crash-
|
6
lib/Fuzzer/test/lit.cfg
Normal file
6
lib/Fuzzer/test/lit.cfg
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
import lit.formats
|
||||||
|
|
||||||
|
config.name = "LLVMFuzzer"
|
||||||
|
config.test_format = lit.formats.ShTest(True)
|
||||||
|
config.suffixes = ['.test']
|
||||||
|
config.test_source_root = os.path.dirname(__file__)
|
2
lib/Fuzzer/test/lit.site.cfg.in
Normal file
2
lib/Fuzzer/test/lit.site.cfg.in
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
config.test_exec_root = "@CMAKE_CURRENT_BINARY_DIR@"
|
||||||
|
lit_config.load_config(config, "@CMAKE_CURRENT_SOURCE_DIR@/lit.cfg")
|
Reference in New Issue
Block a user