[libFuzzer] remove the deprecated 'tokens' feature
[oota-llvm.git] / lib / Fuzzer / test / CMakeLists.txt
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
4 # for the Fuzzer lib)
5 set(CMAKE_CXX_FLAGS_RELEASE "${LIBFUZZER_FLAGS_BASE} -O0 -fsanitize-coverage=edge,indirect-calls")
6
7 set(DFSanTests
8   MemcmpTest
9   SimpleCmpTest
10   StrcmpTest
11   StrncmpTest
12   SwitchTest
13   )
14
15 set(Tests
16   CounterTest
17   FourIndependentBranchesTest
18   FullCoverageSetTest
19   InfiniteTest
20   MemcmpTest
21   NullDerefTest
22   SimpleCmpTest
23   SimpleDictionaryTest
24   SimpleHashTest
25   SimpleTest
26   StrcmpTest
27   StrncmpTest
28   SwitchTest
29   TimeoutTest
30   )
31
32 set(CustomMainTests
33   UserSuppliedFuzzerTest
34   )
35
36
37 set(TestBinaries)
38
39 foreach(Test ${Tests})
40   add_executable(LLVMFuzzer-${Test}
41     ${Test}.cpp
42     )
43   target_link_libraries(LLVMFuzzer-${Test}
44     LLVMFuzzer
45     )
46   set(TestBinaries ${TestBinaries} LLVMFuzzer-${Test})
47 endforeach()
48
49 foreach(Test ${CustomMainTests})
50   add_executable(LLVMFuzzer-${Test}
51     ${Test}.cpp
52     )
53   target_link_libraries(LLVMFuzzer-${Test}
54     LLVMFuzzerNoMain
55     )
56   set(TestBinaries ${TestBinaries} LLVMFuzzer-${Test})
57 endforeach()
58
59
60 configure_lit_site_cfg(
61   ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
62   ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
63   )
64
65 configure_lit_site_cfg(
66   ${CMAKE_CURRENT_SOURCE_DIR}/unit/lit.site.cfg.in
67   ${CMAKE_CURRENT_BINARY_DIR}/unit/lit.site.cfg
68   )
69
70 include_directories(..)
71 include_directories(${LLVM_MAIN_SRC_DIR}/utils/unittest/googletest/include)
72
73 add_executable(LLVMFuzzer-Unittest
74   FuzzerUnittest.cpp
75   $<TARGET_OBJECTS:LLVMFuzzerNoMainObjects>
76   )
77
78 target_link_libraries(LLVMFuzzer-Unittest
79   gtest
80   gtest_main
81   )
82
83 set(TestBinaries ${TestBinaries} LLVMFuzzer-Unittest)
84
85 add_subdirectory(dfsan)
86
87 foreach(Test ${DFSanTests})
88   set(TestBinaries ${TestBinaries} LLVMFuzzer-${Test}-DFSan)
89 endforeach()
90
91
92 set_target_properties(${TestBinaries}
93   PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
94   )
95
96 add_lit_testsuite(check-fuzzer "Running Fuzzer tests"
97     ${CMAKE_CURRENT_BINARY_DIR}
98     DEPENDS ${TestBinaries} FileCheck not
99     )