1 # Build all these tests with -O0, otherwise optimizations may merge some
2 # basic blocks and we'll fail to discover the targets.
3 # Also enable the coverage instrumentation back (it is disabled
5 set(CMAKE_CXX_FLAGS_RELEASE "${LIBFUZZER_FLAGS_BASE} -O0 -fsanitize-coverage=edge,indirect-calls")
18 FourIndependentBranchesTest
34 UserSuppliedFuzzerTest
37 set(UninstrumentedTests
47 foreach(Test ${Tests})
48 add_executable(LLVMFuzzer-${Test}
51 target_link_libraries(LLVMFuzzer-${Test}
54 set(TestBinaries ${TestBinaries} LLVMFuzzer-${Test})
57 foreach(Test ${CustomMainTests})
58 add_executable(LLVMFuzzer-${Test}
61 target_link_libraries(LLVMFuzzer-${Test}
64 set(TestBinaries ${TestBinaries} LLVMFuzzer-${Test})
68 configure_lit_site_cfg(
69 ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
70 ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
73 configure_lit_site_cfg(
74 ${CMAKE_CURRENT_SOURCE_DIR}/unit/lit.site.cfg.in
75 ${CMAKE_CURRENT_BINARY_DIR}/unit/lit.site.cfg
78 include_directories(..)
79 include_directories(${LLVM_MAIN_SRC_DIR}/utils/unittest/googletest/include)
81 add_executable(LLVMFuzzer-Unittest
83 $<TARGET_OBJECTS:LLVMFuzzerNoMainObjects>
86 target_link_libraries(LLVMFuzzer-Unittest
91 set(TestBinaries ${TestBinaries} LLVMFuzzer-Unittest)
93 add_subdirectory(dfsan)
95 foreach(Test ${DFSanTests})
96 set(TestBinaries ${TestBinaries} LLVMFuzzer-${Test}-DFSan)
99 add_subdirectory(uninstrumented)
101 foreach(Test ${UninstrumentedTests})
102 set(TestBinaries ${TestBinaries} LLVMFuzzer-${Test}-Uninstrumented)
105 add_subdirectory(trace-bb)
107 foreach(Test ${TraceBBTests})
108 set(TestBinaries ${TestBinaries} LLVMFuzzer-${Test}-TraceBB)
111 set_target_properties(${TestBinaries}
112 PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
115 add_lit_testsuite(check-fuzzer "Running Fuzzer tests"
116 ${CMAKE_CURRENT_BINARY_DIR}
117 DEPENDS ${TestBinaries} FileCheck not