xref: /aosp_15_r20/external/clang/test/CMakeLists.txt (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li# Test runner infrastructure for Clang. This configures the Clang test trees
2*67e74705SXin Li# for use by Lit, and delegates to LLVM's lit test handlers.
3*67e74705SXin Li
4*67e74705SXin Liif (CMAKE_CFG_INTDIR STREQUAL ".")
5*67e74705SXin Li  set(LLVM_BUILD_MODE ".")
6*67e74705SXin Lielse ()
7*67e74705SXin Li  set(LLVM_BUILD_MODE "%(build_mode)s")
8*67e74705SXin Liendif ()
9*67e74705SXin Li
10*67e74705SXin Listring(REPLACE ${CMAKE_CFG_INTDIR} ${LLVM_BUILD_MODE} CLANG_TOOLS_DIR ${LLVM_RUNTIME_OUTPUT_INTDIR})
11*67e74705SXin Li
12*67e74705SXin Liconfigure_lit_site_cfg(
13*67e74705SXin Li  ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
14*67e74705SXin Li  ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
15*67e74705SXin Li  )
16*67e74705SXin Li
17*67e74705SXin Liconfigure_lit_site_cfg(
18*67e74705SXin Li  ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.in
19*67e74705SXin Li  ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg
20*67e74705SXin Li  )
21*67e74705SXin Li
22*67e74705SXin Lioption(CLANG_TEST_USE_VG "Run Clang tests under Valgrind" OFF)
23*67e74705SXin Liif(CLANG_TEST_USE_VG)
24*67e74705SXin Li  set(CLANG_TEST_EXTRA_ARGS ${CLANG_TEST_EXTRA_ARGS} "--vg")
25*67e74705SXin Liendif ()
26*67e74705SXin Li
27*67e74705SXin Lilist(APPEND CLANG_TEST_DEPS
28*67e74705SXin Li  clang clang-headers
29*67e74705SXin Li  clang-format
30*67e74705SXin Li  c-index-test diagtool
31*67e74705SXin Li  clang-tblgen
32*67e74705SXin Li  )
33*67e74705SXin Li
34*67e74705SXin Liif(CLANG_ENABLE_STATIC_ANALYZER)
35*67e74705SXin Li  list(APPEND CLANG_TEST_DEPS
36*67e74705SXin Li    clang-check
37*67e74705SXin Li    )
38*67e74705SXin Liendif()
39*67e74705SXin Li
40*67e74705SXin Liif (CLANG_ENABLE_ARCMT)
41*67e74705SXin Li  list(APPEND CLANG_TEST_DEPS
42*67e74705SXin Li    arcmt-test
43*67e74705SXin Li    c-arcmt-test
44*67e74705SXin Li  )
45*67e74705SXin Liendif ()
46*67e74705SXin Li
47*67e74705SXin Liif (ENABLE_CLANG_EXAMPLES)
48*67e74705SXin Li  list(APPEND CLANG_TEST_DEPS
49*67e74705SXin Li    AnnotateFunctions
50*67e74705SXin Li    clang-interpreter
51*67e74705SXin Li    PrintFunctionNames
52*67e74705SXin Li    )
53*67e74705SXin Liendif ()
54*67e74705SXin Li
55*67e74705SXin Liif (ENABLE_CLANG_STATIC_ANALYZER AND ENABLE_CLANG_EXAMPLES)
56*67e74705SXin Li  list(APPEND CLANG_TEST_DEPS
57*67e74705SXin Li    SampleAnalyzerPlugin
58*67e74705SXin Li    )
59*67e74705SXin Liendif ()
60*67e74705SXin Li
61*67e74705SXin Liset(CLANG_TEST_PARAMS
62*67e74705SXin Li  clang_site_config=${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
63*67e74705SXin Li  )
64*67e74705SXin Li
65*67e74705SXin Liif( NOT CLANG_BUILT_STANDALONE )
66*67e74705SXin Li  list(APPEND CLANG_TEST_DEPS
67*67e74705SXin Li    llvm-config
68*67e74705SXin Li    FileCheck count not
69*67e74705SXin Li    llc
70*67e74705SXin Li    llvm-bcanalyzer
71*67e74705SXin Li    llvm-nm
72*67e74705SXin Li    llvm-objdump
73*67e74705SXin Li    llvm-profdata
74*67e74705SXin Li    llvm-readobj
75*67e74705SXin Li    llvm-symbolizer
76*67e74705SXin Li    opt
77*67e74705SXin Li    )
78*67e74705SXin Li
79*67e74705SXin Li  if(TARGET llvm-lto)
80*67e74705SXin Li    list(APPEND CLANG_TEST_DEPS llvm-lto)
81*67e74705SXin Li  endif()
82*67e74705SXin Liendif()
83*67e74705SXin Li
84*67e74705SXin Liadd_custom_target(clang-test-depends DEPENDS ${CLANG_TEST_DEPS})
85*67e74705SXin Liset_target_properties(clang-test-depends PROPERTIES FOLDER "Clang tests")
86*67e74705SXin Li
87*67e74705SXin Liadd_lit_testsuite(check-clang "Running the Clang regression tests"
88*67e74705SXin Li  ${CMAKE_CURRENT_BINARY_DIR}
89*67e74705SXin Li  #LIT ${LLVM_LIT}
90*67e74705SXin Li  PARAMS ${CLANG_TEST_PARAMS}
91*67e74705SXin Li  DEPENDS ${CLANG_TEST_DEPS}
92*67e74705SXin Li  ARGS ${CLANG_TEST_EXTRA_ARGS}
93*67e74705SXin Li  )
94*67e74705SXin Liset_target_properties(check-clang PROPERTIES FOLDER "Clang tests")
95*67e74705SXin Li
96*67e74705SXin Liadd_lit_testsuites(CLANG ${CMAKE_CURRENT_SOURCE_DIR}
97*67e74705SXin Li  PARAMS ${CLANG_TEST_PARAMS}
98*67e74705SXin Li  DEPENDS ${CLANG_TEST_DEPS}
99*67e74705SXin Li)
100*67e74705SXin Li
101*67e74705SXin Li# Add a legacy target spelling: clang-test
102*67e74705SXin Liadd_custom_target(clang-test)
103*67e74705SXin Liadd_dependencies(clang-test check-clang)
104*67e74705SXin Liset_target_properties(clang-test PROPERTIES FOLDER "Clang tests")
105