Chandler Carruth | f71b73d | 2012-08-07 08:33:04 | [diff] [blame] | 1 | # Test runner infrastructure for Clang-based tools. This configures the Clang |
| 2 | # test trees for use by Lit, and delegates to LLVM's lit test handlers. |
Chandler Carruth | 5f8cfa7 | 2012-08-07 07:09:14 | [diff] [blame] | 3 | # |
Chandler Carruth | f71b73d | 2012-08-07 08:33:04 | [diff] [blame] | 4 | # Note that currently we don't support stand-alone builds of Clang, you must |
| 5 | # be building Clang from within a combined LLVM+Clang checkout.. |
Chandler Carruth | 5f8cfa7 | 2012-08-07 07:09:14 | [diff] [blame] | 6 | |
Chandler Carruth | f71b73d | 2012-08-07 08:33:04 | [diff] [blame] | 7 | set(CLANG_TOOLS_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/..") |
| 8 | set(CLANG_TOOLS_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/..") |
Chandler Carruth | 5f8cfa7 | 2012-08-07 07:09:14 | [diff] [blame] | 9 | |
NAKAMURA Takumi | c3b3e5e | 2014-01-19 11:19:07 | [diff] [blame] | 10 | if (CMAKE_CFG_INTDIR STREQUAL ".") |
| 11 | set(LLVM_BUILD_MODE ".") |
| 12 | else () |
| 13 | set(LLVM_BUILD_MODE "%(build_mode)s") |
| 14 | endif () |
| 15 | |
NAKAMURA Takumi | 49007da | 2014-01-19 13:00:01 | [diff] [blame] | 16 | string(REPLACE ${CMAKE_CFG_INTDIR} ${LLVM_BUILD_MODE} CLANG_TOOLS_DIR ${LLVM_RUNTIME_OUTPUT_INTDIR}) |
NAKAMURA Takumi | c3b3e5e | 2014-01-19 11:19:07 | [diff] [blame] | 17 | |
Michal Gorny | 24952e5 | 2017-08-29 05:58:08 | [diff] [blame] | 18 | llvm_canonicalize_cmake_booleans( |
Jan Korous | d05fd41 | 2019-01-16 00:24:22 | [diff] [blame] | 19 | CLANG_ENABLE_STATIC_ANALYZER |
| 20 | CLANGD_BUILD_XPC_SUPPORT) |
Michal Gorny | 24952e5 | 2017-08-29 05:58:08 | [diff] [blame] | 21 | |
Edwin Vane | 08085af | 2013-02-19 19:08:10 | [diff] [blame] | 22 | configure_lit_site_cfg( |
| 23 | ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in |
| 24 | ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg |
| 25 | ) |
| 26 | |
Edwin Vane | d22180f | 2013-04-03 15:11:08 | [diff] [blame] | 27 | configure_lit_site_cfg( |
| 28 | ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.in |
| 29 | ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg |
| 30 | ) |
| 31 | |
Chandler Carruth | e79882e | 2013-03-07 10:09:47 | [diff] [blame] | 32 | option(CLANG_TOOLS_TEST_USE_VG "Run Clang tools' tests under Valgrind" OFF) |
| 33 | if(CLANG_TOOLS_TEST_USE_VG) |
| 34 | set(CLANG_TOOLS_TEST_EXTRA_ARGS ${CLANG_TEST_EXTRA_ARGS} "--vg") |
| 35 | endif() |
| 36 | |
Chandler Carruth | f71b73d | 2012-08-07 08:33:04 | [diff] [blame] | 37 | set(CLANG_TOOLS_TEST_DEPS |
Alex Lorenz | 8401b95 | 2017-06-30 16:58:36 | [diff] [blame] | 38 | # For the clang-apply-replacements test that uses clang-rename. |
| 39 | clang-rename |
Benjamin Kramer | d99fffa | 2016-03-03 08:58:12 | [diff] [blame] | 40 | |
Julie Hockett | 395afb1 | 2018-03-22 23:34:46 | [diff] [blame] | 41 | # For the clang-doc tests that emit bitcode files. |
| 42 | llvm-bcanalyzer |
| 43 | |
Chandler Carruth | e79882e | 2013-03-07 10:09:47 | [diff] [blame] | 44 | # Individual tools we test. |
NAKAMURA Takumi | 50fcf15 | 2013-10-31 12:46:10 | [diff] [blame] | 45 | clang-apply-replacements |
Eric Liu | f68f0cd | 2016-09-19 17:40:32 | [diff] [blame] | 46 | clang-change-namespace |
Julie Hockett | 395afb1 | 2018-03-22 23:34:46 | [diff] [blame] | 47 | clang-doc |
Benjamin Kramer | 7e310d1 | 2016-04-27 14:32:36 | [diff] [blame] | 48 | clang-include-fixer |
Haojian Wu | 53bdceb | 2016-10-04 09:05:31 | [diff] [blame] | 49 | clang-move |
Peter Collingbourne | da776c0 | 2014-02-18 19:46:01 | [diff] [blame] | 50 | clang-query |
Alexander Shaposhnikov | 3951c8f | 2016-09-02 02:56:07 | [diff] [blame] | 51 | clang-reorder-fields |
Benjamin Kramer | fa0a0e8 | 2016-05-31 12:12:19 | [diff] [blame] | 52 | find-all-symbols |
NAKAMURA Takumi | 50fcf15 | 2013-10-31 12:46:10 | [diff] [blame] | 53 | modularize |
NAKAMURA Takumi | 2ab631e | 2013-10-31 12:46:16 | [diff] [blame] | 54 | pp-trace |
Edwin Vane | d22180f | 2013-04-03 15:11:08 | [diff] [blame] | 55 | |
Edwin Vane | d22180f | 2013-04-03 15:11:08 | [diff] [blame] | 56 | # Unit tests |
| 57 | ExtraToolsUnitTests |
Stephen Kelly | 5351cf6 | 2018-10-01 20:24:22 | [diff] [blame] | 58 | |
| 59 | # For the clang-tidy libclang integration test. |
| 60 | c-index-test |
| 61 | # clang-tidy tests require it. |
Shoaib Meenai | b8e003b | 2019-03-04 21:19:53 | [diff] [blame^] | 62 | clang-resource-headers |
Stephen Kelly | 5351cf6 | 2018-10-01 20:24:22 | [diff] [blame] | 63 | |
| 64 | clang-tidy |
Jan Korous | d05fd41 | 2019-01-16 00:24:22 | [diff] [blame] | 65 | ) |
| 66 | |
| 67 | if(CLANGD_BUILD_XPC_SUPPORT) |
| 68 | list(APPEND CLANG_TOOLS_TEST_DEPS clangd-xpc-test-client) |
| 69 | endif() |
Chandler Carruth | 5f8cfa7 | 2012-08-07 07:09:14 | [diff] [blame] | 70 | |
Haojian Wu | 318537b | 2018-10-02 17:22:11 | [diff] [blame] | 71 | set(CLANGD_TEST_DEPS |
| 72 | clangd |
| 73 | ClangdTests |
| 74 | # clangd-related tools which don't have tests, add them to the test to make |
| 75 | # sure we don't introduce new changes that break their compilations. |
| 76 | clangd-indexer |
| 77 | dexp |
| 78 | ) |
Haojian Wu | 8808550 | 2018-11-22 10:14:55 | [diff] [blame] | 79 | |
Haojian Wu | 8808550 | 2018-11-22 10:14:55 | [diff] [blame] | 80 | # Add lit test dependencies. |
| 81 | set(LLVM_UTILS_DEPS |
| 82 | FileCheck count not |
| 83 | ) |
| 84 | foreach(dep ${LLVM_UTILS_DEPS}) |
| 85 | if(TARGET ${dep}) |
| 86 | list(APPEND CLANGD_TEST_DEPS ${dep}) |
| 87 | endif() |
| 88 | endforeach() |
| 89 | |
Haojian Wu | 318537b | 2018-10-02 17:22:11 | [diff] [blame] | 90 | foreach(clangd_dep ${CLANGD_TEST_DEPS}) |
| 91 | list(APPEND CLANG_TOOLS_TEST_DEPS |
| 92 | ${clangd_dep}) |
| 93 | endforeach() |
| 94 | |
Chandler Carruth | e79882e | 2013-03-07 10:09:47 | [diff] [blame] | 95 | add_lit_testsuite(check-clang-tools "Running the Clang extra tools' regression tests" |
Chandler Carruth | f71b73d | 2012-08-07 08:33:04 | [diff] [blame] | 96 | ${CMAKE_CURRENT_BINARY_DIR} |
| 97 | DEPENDS ${CLANG_TOOLS_TEST_DEPS} |
| 98 | ARGS ${CLANG_TOOLS_TEST_EXTRA_ARGS} |
| 99 | ) |
Chandler Carruth | e79882e | 2013-03-07 10:09:47 | [diff] [blame] | 100 | |
Kirill Bobyrev | cb0c6c5 | 2017-06-28 20:57:28 | [diff] [blame] | 101 | set_target_properties(check-clang-tools PROPERTIES FOLDER "Clang extra tools' tests") |
Haojian Wu | 518e089 | 2018-10-01 14:02:02 | [diff] [blame] | 102 | |
| 103 | # Setup an individual test for building and testing clangd-only stuff. |
Haojian Wu | 318537b | 2018-10-02 17:22:11 | [diff] [blame] | 104 | # Note: all clangd tests have been covered in check-clang-tools, this is a |
| 105 | # convenient target for clangd developers. |
| 106 | # Exclude check-clangd from check-all. |
Haojian Wu | 7dff09c | 2018-10-01 20:21:41 | [diff] [blame] | 107 | set(EXCLUDE_FROM_ALL ON) |
Haojian Wu | 518e089 | 2018-10-01 14:02:02 | [diff] [blame] | 108 | add_lit_testsuite(check-clangd "Running the Clangd regression tests" |
| 109 | ${CMAKE_CURRENT_BINARY_DIR}/Unit/clangd;${CMAKE_CURRENT_BINARY_DIR}/clangd |
| 110 | DEPENDS ${CLANGD_TEST_DEPS} |
| 111 | ) |
| 112 | set_target_properties(check-clangd PROPERTIES FOLDER "Clangd tests") |
Haojian Wu | 7dff09c | 2018-10-01 20:21:41 | [diff] [blame] | 113 | set(EXCLUDE_FROM_ALL OFF) |