blob: 00f5e5a82b69473aa3c1ae50c7cebadd5eca6481 [file] [log] [blame]
Chandler Carruth8a629072012-06-30 10:14:27 +00001# Test runner infrastructure for Clang. This configures the Clang test trees
2# for use by Lit, and delegates to LLVM's lit test handlers.
Douglas Gregor07705322009-06-05 16:00:31 +00003
NAKAMURA Takumi17645a42013-12-17 04:14:17 +00004if (CMAKE_CFG_INTDIR STREQUAL ".")
5 set(LLVM_BUILD_MODE ".")
6else ()
7 set(LLVM_BUILD_MODE "%(build_mode)s")
8endif ()
9
NAKAMURA Takumic28a9a22014-01-19 13:00:01 +000010string(REPLACE ${CMAKE_CFG_INTDIR} ${LLVM_BUILD_MODE} CLANG_TOOLS_DIR ${LLVM_RUNTIME_OUTPUT_INTDIR})
NAKAMURA Takumi17645a42013-12-17 04:14:17 +000011
Chandler Carruth8279aa72012-06-29 00:39:23 +000012configure_lit_site_cfg(
Daniel Dunbar06696702009-11-07 23:53:32 +000013 ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
Chandler Carruth8279aa72012-06-29 00:39:23 +000014 ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
15 )
Daniel Dunbar06696702009-11-07 23:53:32 +000016
Chandler Carruth8279aa72012-06-29 00:39:23 +000017configure_lit_site_cfg(
NAKAMURA Takumi22ec6602011-02-03 09:01:12 +000018 ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.in
19 ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg
Chandler Carruth8279aa72012-06-29 00:39:23 +000020 )
NAKAMURA Takumi22ec6602011-02-03 09:01:12 +000021
Chandler Carruth8a629072012-06-30 10:14:27 +000022option(CLANG_TEST_USE_VG "Run Clang tests under Valgrind" OFF)
23if(CLANG_TEST_USE_VG)
24 set(CLANG_TEST_EXTRA_ARGS ${CLANG_TEST_EXTRA_ARGS} "--vg")
25endif ()
26
NAKAMURA Takumi5de6b432013-12-19 16:05:39 +000027list(APPEND CLANG_TEST_DEPS
Jordan Rose08bf4fd2013-02-08 07:28:25 +000028 clang clang-headers
Alp Toker0621cb22014-07-16 16:48:33 +000029 clang-check clang-format
Alp Tokerf55a3062014-07-14 22:17:16 +000030 c-index-test diagtool
NAKAMURA Takumi2e3166a2014-01-19 08:54:48 +000031 clang-tblgen
Jordan Rose08bf4fd2013-02-08 07:28:25 +000032 )
Alp Toker1a58ff22014-06-01 02:02:23 +000033
Alp Tokerf55a3062014-07-14 22:17:16 +000034if (CLANG_ENABLE_ARCMT)
35 list(APPEND CLANG_TEST_DEPS
36 arcmt-test
37 c-arcmt-test
38 )
39endif ()
40
Alp Toker1a58ff22014-06-01 02:02:23 +000041if (ENABLE_CLANG_EXAMPLES)
42 list(APPEND CLANG_TEST_DEPS
NAKAMURA Takumia4a589e2016-03-21 11:03:39 +000043 AnnotateFunctions
Alp Toker1a58ff22014-06-01 02:02:23 +000044 clang-interpreter
45 PrintFunctionNames
Alp Tokerccb9aa32014-07-14 22:17:22 +000046 )
47endif ()
48
49if (ENABLE_CLANG_STATIC_ANALYZER AND ENABLE_CLANG_EXAMPLES)
50 list(APPEND CLANG_TEST_DEPS
Alp Toker1a58ff22014-06-01 02:02:23 +000051 SampleAnalyzerPlugin
52 )
53endif ()
54
Jordan Rose08bf4fd2013-02-08 07:28:25 +000055set(CLANG_TEST_PARAMS
56 clang_site_config=${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
57 )
Chandler Carruth8a629072012-06-30 10:14:27 +000058
Jordan Rose08bf4fd2013-02-08 07:28:25 +000059if( NOT CLANG_BUILT_STANDALONE )
60 list(APPEND CLANG_TEST_DEPS
NAKAMURA Takumi67eade62013-12-04 03:40:56 +000061 llvm-config
NAKAMURA Takumi0f1cbee2015-09-14 12:41:53 +000062 FileCheck count not
NAKAMURA Takumi55bf9532015-10-16 09:38:42 +000063 llc
64 llvm-bcanalyzer
Teresa Johnsonaff22322015-12-07 19:21:34 +000065 llvm-lto
NAKAMURA Takumi55bf9532015-10-16 09:38:42 +000066 llvm-objdump
67 llvm-profdata
68 llvm-readobj
69 llvm-symbolizer
Nico Weberae920832015-12-03 15:40:23 +000070 LTO
NAKAMURA Takumi55bf9532015-10-16 09:38:42 +000071 opt
Chandler Carruth8a629072012-06-30 10:14:27 +000072 )
Daniel Dunbara3b52d72009-11-03 07:25:53 +000073endif()
Chandler Carruth8a629072012-06-30 10:14:27 +000074
Chris Bienemandb5294d2016-03-02 00:27:15 +000075add_custom_target(clang-test-depends DEPENDS ${CLANG_TEST_DEPS})
76
NAKAMURA Takumie6d79ec2013-12-19 16:44:32 +000077add_lit_testsuite(check-clang "Running the Clang regression tests"
78 ${CMAKE_CURRENT_BINARY_DIR}
NAKAMURA Takumief4657e2013-12-19 17:10:30 +000079 #LIT ${LLVM_LIT}
NAKAMURA Takumie6d79ec2013-12-19 16:44:32 +000080 PARAMS ${CLANG_TEST_PARAMS}
81 DEPENDS ${CLANG_TEST_DEPS}
82 ARGS ${CLANG_TEST_EXTRA_ARGS}
83 )
84set_target_properties(check-clang PROPERTIES FOLDER "Clang tests")
85
Chandler Carruth8a629072012-06-30 10:14:27 +000086# Add a legacy target spelling: clang-test
Chandler Carruthdc2e4bc2012-07-02 21:46:03 +000087add_custom_target(clang-test)
88add_dependencies(clang-test check-clang)
Chandler Carruth8a629072012-06-30 10:14:27 +000089set_target_properties(clang-test PROPERTIES FOLDER "Clang tests")