| Chandler Carruth | 8a62907 | 2012-06-30 10:14:27 +0000 | [diff] [blame] | 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. |
| Douglas Gregor | 0770532 | 2009-06-05 16:00:31 +0000 | [diff] [blame] | 3 | |
| NAKAMURA Takumi | 17645a4 | 2013-12-17 04:14:17 +0000 | [diff] [blame] | 4 | if (CMAKE_CFG_INTDIR STREQUAL ".") |
| 5 | set(LLVM_BUILD_MODE ".") |
| 6 | else () |
| 7 | set(LLVM_BUILD_MODE "%(build_mode)s") |
| 8 | endif () |
| 9 | |
| NAKAMURA Takumi | c28a9a2 | 2014-01-19 13:00:01 +0000 | [diff] [blame] | 10 | string(REPLACE ${CMAKE_CFG_INTDIR} ${LLVM_BUILD_MODE} CLANG_TOOLS_DIR ${LLVM_RUNTIME_OUTPUT_INTDIR}) |
| NAKAMURA Takumi | 17645a4 | 2013-12-17 04:14:17 +0000 | [diff] [blame] | 11 | |
| Michal Gorny | f77a988 | 2016-11-01 20:31:52 +0000 | [diff] [blame] | 12 | if(CLANG_BUILT_STANDALONE) |
| 13 | # Set HAVE_LIBZ according to recorded LLVM_ENABLE_ZLIB value. This |
| 14 | # value is forced to 0 if zlib was not found, so it is fine to use it |
| 15 | # instead of HAVE_LIBZ (not recorded). |
| 16 | if(LLVM_ENABLE_ZLIB) |
| 17 | set(HAVE_LIBZ 1) |
| 18 | endif() |
| 19 | endif() |
| 20 | |
| Michal Gorny | 638ac70 | 2017-01-25 13:11:45 +0000 | [diff] [blame] | 21 | llvm_canonicalize_cmake_booleans( |
| 22 | CLANG_BUILD_EXAMPLES |
| 23 | CLANG_ENABLE_ARCMT |
| 24 | CLANG_ENABLE_STATIC_ANALYZER |
| Michal Gorny | a56833b | 2017-01-25 13:31:53 +0000 | [diff] [blame] | 25 | ENABLE_BACKTRACES |
| 26 | HAVE_LIBZ) |
| Michal Gorny | 638ac70 | 2017-01-25 13:11:45 +0000 | [diff] [blame] | 27 | |
| Chandler Carruth | 8279aa7 | 2012-06-29 00:39:23 +0000 | [diff] [blame] | 28 | configure_lit_site_cfg( |
| Daniel Dunbar | 0669670 | 2009-11-07 23:53:32 +0000 | [diff] [blame] | 29 | ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in |
| Chandler Carruth | 8279aa7 | 2012-06-29 00:39:23 +0000 | [diff] [blame] | 30 | ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg |
| 31 | ) |
| Daniel Dunbar | 0669670 | 2009-11-07 23:53:32 +0000 | [diff] [blame] | 32 | |
| Chandler Carruth | 8279aa7 | 2012-06-29 00:39:23 +0000 | [diff] [blame] | 33 | configure_lit_site_cfg( |
| NAKAMURA Takumi | 22ec660 | 2011-02-03 09:01:12 +0000 | [diff] [blame] | 34 | ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.in |
| 35 | ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg |
| Chandler Carruth | 8279aa7 | 2012-06-29 00:39:23 +0000 | [diff] [blame] | 36 | ) |
| NAKAMURA Takumi | 22ec660 | 2011-02-03 09:01:12 +0000 | [diff] [blame] | 37 | |
| Chandler Carruth | 8a62907 | 2012-06-30 10:14:27 +0000 | [diff] [blame] | 38 | option(CLANG_TEST_USE_VG "Run Clang tests under Valgrind" OFF) |
| 39 | if(CLANG_TEST_USE_VG) |
| 40 | set(CLANG_TEST_EXTRA_ARGS ${CLANG_TEST_EXTRA_ARGS} "--vg") |
| 41 | endif () |
| 42 | |
| NAKAMURA Takumi | 5de6b43 | 2013-12-19 16:05:39 +0000 | [diff] [blame] | 43 | list(APPEND CLANG_TEST_DEPS |
| Jordan Rose | 08bf4fd | 2013-02-08 07:28:25 +0000 | [diff] [blame] | 44 | clang clang-headers |
| Yaron Keren | 11a7285e | 2016-06-01 13:47:26 +0000 | [diff] [blame] | 45 | clang-format |
| Alp Toker | f55a306 | 2014-07-14 22:17:16 +0000 | [diff] [blame] | 46 | c-index-test diagtool |
| NAKAMURA Takumi | 2e3166a | 2014-01-19 08:54:48 +0000 | [diff] [blame] | 47 | clang-tblgen |
| Samuel Antao | 1006ca7 | 2016-08-24 15:21:05 +0000 | [diff] [blame] | 48 | clang-offload-bundler |
| Sean Callanan | 7d98250 | 2016-12-22 20:03:14 +0000 | [diff] [blame] | 49 | clang-import-test |
| Jordan Rose | 08bf4fd | 2013-02-08 07:28:25 +0000 | [diff] [blame] | 50 | ) |
| Yaron Keren | 11a7285e | 2016-06-01 13:47:26 +0000 | [diff] [blame] | 51 | |
| 52 | if(CLANG_ENABLE_STATIC_ANALYZER) |
| 53 | list(APPEND CLANG_TEST_DEPS |
| 54 | clang-check |
| 55 | ) |
| 56 | endif() |
| Alp Toker | 1a58ff2 | 2014-06-01 02:02:23 +0000 | [diff] [blame] | 57 | |
| Alp Toker | f55a306 | 2014-07-14 22:17:16 +0000 | [diff] [blame] | 58 | if (CLANG_ENABLE_ARCMT) |
| 59 | list(APPEND CLANG_TEST_DEPS |
| 60 | arcmt-test |
| 61 | c-arcmt-test |
| 62 | ) |
| 63 | endif () |
| 64 | |
| Michal Gorny | 638ac70 | 2017-01-25 13:11:45 +0000 | [diff] [blame] | 65 | if (CLANG_BUILD_EXAMPLES) |
| Alp Toker | 1a58ff2 | 2014-06-01 02:02:23 +0000 | [diff] [blame] | 66 | list(APPEND CLANG_TEST_DEPS |
| NAKAMURA Takumi | a4a589e | 2016-03-21 11:03:39 +0000 | [diff] [blame] | 67 | AnnotateFunctions |
| Alp Toker | 1a58ff2 | 2014-06-01 02:02:23 +0000 | [diff] [blame] | 68 | clang-interpreter |
| 69 | PrintFunctionNames |
| Alp Toker | ccb9aa3 | 2014-07-14 22:17:22 +0000 | [diff] [blame] | 70 | ) |
| 71 | endif () |
| 72 | |
| Michal Gorny | 638ac70 | 2017-01-25 13:11:45 +0000 | [diff] [blame] | 73 | if (CLANG_ENABLE_STATIC_ANALYZER AND CLANG_BUILD_EXAMPLES) |
| Alp Toker | ccb9aa3 | 2014-07-14 22:17:22 +0000 | [diff] [blame] | 74 | list(APPEND CLANG_TEST_DEPS |
| Alp Toker | 1a58ff2 | 2014-06-01 02:02:23 +0000 | [diff] [blame] | 75 | SampleAnalyzerPlugin |
| 76 | ) |
| 77 | endif () |
| 78 | |
| Jordan Rose | 08bf4fd | 2013-02-08 07:28:25 +0000 | [diff] [blame] | 79 | set(CLANG_TEST_PARAMS |
| 80 | clang_site_config=${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg |
| 81 | ) |
| Chandler Carruth | 8a62907 | 2012-06-30 10:14:27 +0000 | [diff] [blame] | 82 | |
| Jordan Rose | 08bf4fd | 2013-02-08 07:28:25 +0000 | [diff] [blame] | 83 | if( NOT CLANG_BUILT_STANDALONE ) |
| 84 | list(APPEND CLANG_TEST_DEPS |
| NAKAMURA Takumi | 67eade6 | 2013-12-04 03:40:56 +0000 | [diff] [blame] | 85 | llvm-config |
| NAKAMURA Takumi | 0f1cbee | 2015-09-14 12:41:53 +0000 | [diff] [blame] | 86 | FileCheck count not |
| NAKAMURA Takumi | 55bf953 | 2015-10-16 09:38:42 +0000 | [diff] [blame] | 87 | llc |
| 88 | llvm-bcanalyzer |
| Peter Collingbourne | f5d1712 | 2017-01-26 21:09:48 +0000 | [diff] [blame] | 89 | llvm-cat |
| Peter Collingbourne | 87cdfa7 | 2017-01-19 00:04:44 +0000 | [diff] [blame] | 90 | llvm-dis |
| Peter Collingbourne | b884716 | 2017-01-26 23:51:50 +0000 | [diff] [blame] | 91 | llvm-modextract |
| Peter Collingbourne | e4755e5 | 2016-06-22 01:03:15 +0000 | [diff] [blame] | 92 | llvm-nm |
| NAKAMURA Takumi | 55bf953 | 2015-10-16 09:38:42 +0000 | [diff] [blame] | 93 | llvm-objdump |
| 94 | llvm-profdata |
| 95 | llvm-readobj |
| 96 | llvm-symbolizer |
| 97 | opt |
| Chandler Carruth | 8a62907 | 2012-06-30 10:14:27 +0000 | [diff] [blame] | 98 | ) |
| Pavel Labath | 42f9780 | 2016-06-02 16:35:24 +0000 | [diff] [blame] | 99 | |
| 100 | if(TARGET llvm-lto) |
| Pavel Labath | 1cc17a3 | 2016-06-02 18:49:42 +0000 | [diff] [blame] | 101 | list(APPEND CLANG_TEST_DEPS llvm-lto) |
| Pavel Labath | 42f9780 | 2016-06-02 16:35:24 +0000 | [diff] [blame] | 102 | endif() |
| Daniel Dunbar | a3b52d7 | 2009-11-03 07:25:53 +0000 | [diff] [blame] | 103 | endif() |
| Chandler Carruth | 8a62907 | 2012-06-30 10:14:27 +0000 | [diff] [blame] | 104 | |
| Chris Bieneman | db5294d | 2016-03-02 00:27:15 +0000 | [diff] [blame] | 105 | add_custom_target(clang-test-depends DEPENDS ${CLANG_TEST_DEPS}) |
| Aaron Ballman | 2db2677 | 2016-04-12 15:09:17 +0000 | [diff] [blame] | 106 | set_target_properties(clang-test-depends PROPERTIES FOLDER "Clang tests") |
| Chris Bieneman | db5294d | 2016-03-02 00:27:15 +0000 | [diff] [blame] | 107 | |
| NAKAMURA Takumi | e6d79ec | 2013-12-19 16:44:32 +0000 | [diff] [blame] | 108 | add_lit_testsuite(check-clang "Running the Clang regression tests" |
| 109 | ${CMAKE_CURRENT_BINARY_DIR} |
| NAKAMURA Takumi | ef4657e | 2013-12-19 17:10:30 +0000 | [diff] [blame] | 110 | #LIT ${LLVM_LIT} |
| NAKAMURA Takumi | e6d79ec | 2013-12-19 16:44:32 +0000 | [diff] [blame] | 111 | PARAMS ${CLANG_TEST_PARAMS} |
| 112 | DEPENDS ${CLANG_TEST_DEPS} |
| 113 | ARGS ${CLANG_TEST_EXTRA_ARGS} |
| 114 | ) |
| 115 | set_target_properties(check-clang PROPERTIES FOLDER "Clang tests") |
| 116 | |
| Justin Bogner | 2a15ffa | 2016-07-05 17:54:40 +0000 | [diff] [blame] | 117 | add_lit_testsuites(CLANG ${CMAKE_CURRENT_SOURCE_DIR} |
| 118 | PARAMS ${CLANG_TEST_PARAMS} |
| 119 | DEPENDS ${CLANG_TEST_DEPS} |
| 120 | ) |
| 121 | |
| Chandler Carruth | 8a62907 | 2012-06-30 10:14:27 +0000 | [diff] [blame] | 122 | # Add a legacy target spelling: clang-test |
| Chandler Carruth | dc2e4bc | 2012-07-02 21:46:03 +0000 | [diff] [blame] | 123 | add_custom_target(clang-test) |
| 124 | add_dependencies(clang-test check-clang) |
| Chandler Carruth | 8a62907 | 2012-06-30 10:14:27 +0000 | [diff] [blame] | 125 | set_target_properties(clang-test PROPERTIES FOLDER "Clang tests") |