1 # Test runner infrastructure for Clang. This configures the Clang test trees
2 # for use by Lit, and delegates to LLVM's lit test handlers.
4 llvm_canonicalize_cmake_booleans(
7 CLANG_DEFAULT_PIE_ON_LINUX
8 CLANG_ENABLE_STATIC_ANALYZER
14 LLVM_BYE_LINK_INTO_TOOLS
18 LLVM_ENABLE_PER_TARGET_RUNTIME_DIR
20 LLVM_ENABLE_REVERSE_ITERATION
22 PPC_LINUX_DEFAULT_IEEELONGDOUBLE
23 LLVM_TOOL_LLVM_DRIVER_BUILD
26 configure_lit_site_cfg(
27 ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
28 ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg.py
30 ${CMAKE_CURRENT_SOURCE_DIR}/lit.cfg.py
42 "CMAKE_LIBRARY_OUTPUT_DIRECTORY"
45 configure_lit_site_cfg(
46 ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.py.in
47 ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg.py
49 ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.cfg.py
59 option(CLANG_TEST_USE_VG "Run Clang tests under Valgrind" OFF)
61 set(CLANG_TEST_EXTRA_ARGS ${CLANG_TEST_EXTRA_ARGS} "--vg")
64 list(APPEND CLANG_TEST_DEPS
68 clang-fuzzer-dictionary
69 clang-resource-headers
81 clang-offload-packager
87 if(CLANG_ENABLE_STATIC_ANALYZER)
88 list(APPEND CLANG_TEST_DEPS
94 if(CLANG_BUILD_EXAMPLES AND CLANG_PLUGIN_SUPPORT)
95 list(APPEND CLANG_TEST_DEPS
101 LLVMPrintFunctionNames
105 set(CLANG_TEST_PARAMS
109 if( NOT CLANG_BUILT_STANDALONE )
110 list(APPEND CLANG_TEST_DEPS
144 list(APPEND CLANG_TEST_DEPS llvm-lto)
148 if(CLANG_ENABLE_STATIC_ANALYZER)
149 if(CLANG_PLUGIN_SUPPORT AND LLVM_ENABLE_PLUGINS) # Determine if we built them
150 list(APPEND CLANG_TEST_DEPS
152 CheckerDependencyHandlingAnalyzerPlugin
153 CheckerOptionHandlingAnalyzerPlugin
158 if (HAVE_CLANG_REPL_SUPPORT)
159 list(APPEND CLANG_TEST_DEPS
164 # Copy gen_ast_dump_json_test.py to the clang build dir. This allows invoking
165 # it without having to pass the --clang= argument
166 configure_file(AST/gen_ast_dump_json_test.py
167 ${CLANG_BINARY_DIR}/bin/gen_ast_dump_json_test.py COPYONLY)
169 add_custom_target(clang-test-depends DEPENDS ${CLANG_TEST_DEPS})
170 set_target_properties(clang-test-depends PROPERTIES FOLDER "Clang/Tests")
172 add_lit_testsuite(check-clang "Running the Clang regression tests"
173 ${CMAKE_CURRENT_BINARY_DIR}
175 PARAMS ${CLANG_TEST_PARAMS}
176 DEPENDS ${CLANG_TEST_DEPS}
177 ARGS ${CLANG_TEST_EXTRA_ARGS}
180 add_lit_testsuites(CLANG ${CMAKE_CURRENT_SOURCE_DIR}
181 PARAMS ${CLANG_TEST_PARAMS}
182 DEPENDS ${CLANG_TEST_DEPS}
183 FOLDER "Clang tests/Suites"
186 # Add a legacy target spelling: clang-test
187 add_custom_target(clang-test)
188 add_dependencies(clang-test check-clang)
189 set_target_properties(clang-test PROPERTIES FOLDER "Clang/Tests")
191 # FIXME: This logic can be removed once all buildbots have moved
192 # debuginfo-test from clang/test to llvm/projects or monorepo.
193 if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/debuginfo-tests)
194 message(WARNING "Including debuginfo-tests in clang/test is deprecated. Move to llvm/projects or use monorepo.")
195 if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/debuginfo-tests/CMakeLists.txt)
196 add_subdirectory(debuginfo-tests)