Taints the non-acquire RMW's store address with the load part
[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   CallerCalleeTest
17   CounterTest
18   FourIndependentBranchesTest
19   FullCoverageSetTest
20   MemcmpTest
21   NullDerefTest
22   SimpleCmpTest
23   SimpleDictionaryTest
24   SimpleHashTest
25   SimpleTest
26   StrcmpTest
27   StrncmpTest
28   SwitchTest
29   ThreadedTest
30   TimeoutTest
31   )
32
33 set(CustomMainTests
34   UserSuppliedFuzzerTest
35   )
36
37 set(UninstrumentedTests
38   UninstrumentedTest
39   )
40
41 set(TraceBBTests
42   SimpleTest
43   )
44
45 set(TestBinaries)
46
47 foreach(Test ${Tests})
48   add_executable(LLVMFuzzer-${Test}
49     ${Test}.cpp
50     )
51   target_link_libraries(LLVMFuzzer-${Test}
52     LLVMFuzzer
53     )
54   set(TestBinaries ${TestBinaries} LLVMFuzzer-${Test})
55 endforeach()
56
57 foreach(Test ${CustomMainTests})
58   add_executable(LLVMFuzzer-${Test}
59     ${Test}.cpp
60     )
61   target_link_libraries(LLVMFuzzer-${Test}
62     LLVMFuzzerNoMain
63     )
64   set(TestBinaries ${TestBinaries} LLVMFuzzer-${Test})
65 endforeach()
66
67
68 configure_lit_site_cfg(
69   ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
70   ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
71   )
72
73 configure_lit_site_cfg(
74   ${CMAKE_CURRENT_SOURCE_DIR}/unit/lit.site.cfg.in
75   ${CMAKE_CURRENT_BINARY_DIR}/unit/lit.site.cfg
76   )
77
78 include_directories(..)
79 include_directories(${LLVM_MAIN_SRC_DIR}/utils/unittest/googletest/include)
80
81 add_executable(LLVMFuzzer-Unittest
82   FuzzerUnittest.cpp
83   $<TARGET_OBJECTS:LLVMFuzzerNoMainObjects>
84   )
85
86 target_link_libraries(LLVMFuzzer-Unittest
87   gtest
88   gtest_main
89   )
90
91 set(TestBinaries ${TestBinaries} LLVMFuzzer-Unittest)
92
93 add_subdirectory(dfsan)
94
95 foreach(Test ${DFSanTests})
96   set(TestBinaries ${TestBinaries} LLVMFuzzer-${Test}-DFSan)
97 endforeach()
98
99 add_subdirectory(uninstrumented)
100
101 foreach(Test ${UninstrumentedTests})
102   set(TestBinaries ${TestBinaries} LLVMFuzzer-${Test}-Uninstrumented)
103 endforeach()
104
105 add_subdirectory(trace-bb)
106
107 foreach(Test ${TraceBBTests})
108   set(TestBinaries ${TestBinaries} LLVMFuzzer-${Test}-TraceBB)
109 endforeach()
110
111 set_target_properties(${TestBinaries}
112   PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
113   )
114
115 add_lit_testsuite(check-fuzzer "Running Fuzzer tests"
116     ${CMAKE_CURRENT_BINARY_DIR}
117     DEPENDS ${TestBinaries} FileCheck not
118     )