• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.
3
4if (CMAKE_CFG_INTDIR STREQUAL ".")
5  set(LLVM_BUILD_MODE ".")
6else ()
7  set(LLVM_BUILD_MODE "%(build_mode)s")
8endif ()
9
10string(REPLACE ${CMAKE_CFG_INTDIR} ${LLVM_BUILD_MODE} CLANG_TOOLS_DIR ${LLVM_RUNTIME_OUTPUT_INTDIR})
11
12configure_lit_site_cfg(
13  ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
14  ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
15  )
16
17configure_lit_site_cfg(
18  ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.in
19  ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg
20  )
21
22option(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
27list(APPEND CLANG_TEST_DEPS
28  clang clang-headers
29  clang-format
30  c-index-test diagtool
31  clang-tblgen
32  )
33
34if(CLANG_ENABLE_STATIC_ANALYZER)
35  list(APPEND CLANG_TEST_DEPS
36    clang-check
37    )
38endif()
39
40if (CLANG_ENABLE_ARCMT)
41  list(APPEND CLANG_TEST_DEPS
42    arcmt-test
43    c-arcmt-test
44  )
45endif ()
46
47if (ENABLE_CLANG_EXAMPLES)
48  list(APPEND CLANG_TEST_DEPS
49    AnnotateFunctions
50    clang-interpreter
51    PrintFunctionNames
52    )
53endif ()
54
55if (ENABLE_CLANG_STATIC_ANALYZER AND ENABLE_CLANG_EXAMPLES)
56  list(APPEND CLANG_TEST_DEPS
57    SampleAnalyzerPlugin
58    )
59endif ()
60
61set(CLANG_TEST_PARAMS
62  clang_site_config=${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
63  )
64
65if( NOT CLANG_BUILT_STANDALONE )
66  list(APPEND CLANG_TEST_DEPS
67    llvm-config
68    FileCheck count not
69    llc
70    llvm-bcanalyzer
71    llvm-nm
72    llvm-objdump
73    llvm-profdata
74    llvm-readobj
75    llvm-symbolizer
76    opt
77    )
78
79  if(TARGET llvm-lto)
80    list(APPEND CLANG_TEST_DEPS llvm-lto)
81  endif()
82endif()
83
84add_custom_target(clang-test-depends DEPENDS ${CLANG_TEST_DEPS})
85set_target_properties(clang-test-depends PROPERTIES FOLDER "Clang tests")
86
87add_lit_testsuite(check-clang "Running the Clang regression tests"
88  ${CMAKE_CURRENT_BINARY_DIR}
89  #LIT ${LLVM_LIT}
90  PARAMS ${CLANG_TEST_PARAMS}
91  DEPENDS ${CLANG_TEST_DEPS}
92  ARGS ${CLANG_TEST_EXTRA_ARGS}
93  )
94set_target_properties(check-clang PROPERTIES FOLDER "Clang tests")
95
96add_lit_testsuites(CLANG ${CMAKE_CURRENT_SOURCE_DIR}
97  PARAMS ${CLANG_TEST_PARAMS}
98  DEPENDS ${CLANG_TEST_DEPS}
99)
100
101# Add a legacy target spelling: clang-test
102add_custom_target(clang-test)
103add_dependencies(clang-test check-clang)
104set_target_properties(clang-test PROPERTIES FOLDER "Clang tests")
105