| 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 | 87cdfa7 | 2017-01-19 00:04:44 +0000 | [diff] [blame] | 89 | llvm-dis | 
| Peter Collingbourne | e4755e5 | 2016-06-22 01:03:15 +0000 | [diff] [blame] | 90 | llvm-nm | 
| NAKAMURA Takumi | 55bf953 | 2015-10-16 09:38:42 +0000 | [diff] [blame] | 91 | llvm-objdump | 
|  | 92 | llvm-profdata | 
|  | 93 | llvm-readobj | 
|  | 94 | llvm-symbolizer | 
|  | 95 | opt | 
| Chandler Carruth | 8a62907 | 2012-06-30 10:14:27 +0000 | [diff] [blame] | 96 | ) | 
| Pavel Labath | 42f9780 | 2016-06-02 16:35:24 +0000 | [diff] [blame] | 97 |  | 
|  | 98 | if(TARGET llvm-lto) | 
| Pavel Labath | 1cc17a3 | 2016-06-02 18:49:42 +0000 | [diff] [blame] | 99 | list(APPEND CLANG_TEST_DEPS llvm-lto) | 
| Pavel Labath | 42f9780 | 2016-06-02 16:35:24 +0000 | [diff] [blame] | 100 | endif() | 
| Daniel Dunbar | a3b52d7 | 2009-11-03 07:25:53 +0000 | [diff] [blame] | 101 | endif() | 
| Chandler Carruth | 8a62907 | 2012-06-30 10:14:27 +0000 | [diff] [blame] | 102 |  | 
| Chris Bieneman | db5294d | 2016-03-02 00:27:15 +0000 | [diff] [blame] | 103 | add_custom_target(clang-test-depends DEPENDS ${CLANG_TEST_DEPS}) | 
| Aaron Ballman | 2db2677 | 2016-04-12 15:09:17 +0000 | [diff] [blame] | 104 | set_target_properties(clang-test-depends PROPERTIES FOLDER "Clang tests") | 
| Chris Bieneman | db5294d | 2016-03-02 00:27:15 +0000 | [diff] [blame] | 105 |  | 
| NAKAMURA Takumi | e6d79ec | 2013-12-19 16:44:32 +0000 | [diff] [blame] | 106 | add_lit_testsuite(check-clang "Running the Clang regression tests" | 
|  | 107 | ${CMAKE_CURRENT_BINARY_DIR} | 
| NAKAMURA Takumi | ef4657e | 2013-12-19 17:10:30 +0000 | [diff] [blame] | 108 | #LIT ${LLVM_LIT} | 
| NAKAMURA Takumi | e6d79ec | 2013-12-19 16:44:32 +0000 | [diff] [blame] | 109 | PARAMS ${CLANG_TEST_PARAMS} | 
|  | 110 | DEPENDS ${CLANG_TEST_DEPS} | 
|  | 111 | ARGS ${CLANG_TEST_EXTRA_ARGS} | 
|  | 112 | ) | 
|  | 113 | set_target_properties(check-clang PROPERTIES FOLDER "Clang tests") | 
|  | 114 |  | 
| Justin Bogner | 2a15ffa | 2016-07-05 17:54:40 +0000 | [diff] [blame] | 115 | add_lit_testsuites(CLANG ${CMAKE_CURRENT_SOURCE_DIR} | 
|  | 116 | PARAMS ${CLANG_TEST_PARAMS} | 
|  | 117 | DEPENDS ${CLANG_TEST_DEPS} | 
|  | 118 | ) | 
|  | 119 |  | 
| Chandler Carruth | 8a62907 | 2012-06-30 10:14:27 +0000 | [diff] [blame] | 120 | # Add a legacy target spelling: clang-test | 
| Chandler Carruth | dc2e4bc | 2012-07-02 21:46:03 +0000 | [diff] [blame] | 121 | add_custom_target(clang-test) | 
|  | 122 | add_dependencies(clang-test check-clang) | 
| Chandler Carruth | 8a62907 | 2012-06-30 10:14:27 +0000 | [diff] [blame] | 123 | set_target_properties(clang-test PROPERTIES FOLDER "Clang tests") |