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