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 # 4 # If this is a stand-alone Clang build, we fake up our own Lit support here 5 # rather than relying on LLVM's. 6 7 set(CLANG_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/..") 8 set(CLANG_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/..") 9 10 configure_lit_site_cfg( 11 ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in 12 ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg 13 ) 14 15 configure_lit_site_cfg( 16 ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.in 17 ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg 18 ) 19 20 if( PATH_TO_LLVM_BUILD ) 21 set(CLANG_TEST_EXTRA_ARGS "--path=${CLANG_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}") 22 endif() 23 24 option(CLANG_TEST_USE_VG "Run Clang tests under Valgrind" OFF) 25 if(CLANG_TEST_USE_VG) 26 set(CLANG_TEST_EXTRA_ARGS ${CLANG_TEST_EXTRA_ARGS} "--vg") 27 endif () 28 29 if( NOT CLANG_BUILT_STANDALONE ) 30 31 set(CLANG_TEST_DEPS 32 clang clang-headers 33 c-index-test diagtool arcmt-test c-arcmt-test 34 clang-check 35 llvm-dis llc opt FileCheck count not 36 ) 37 set(CLANG_TEST_PARAMS 38 clang_site_config=${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg 39 ) 40 41 if(LLVM_INCLUDE_TESTS) 42 list(APPEND CLANG_TEST_DEPS ClangUnitTests) 43 list(APPEND CLANG_TEST_PARAMS 44 clang_unit_site_config=${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg 45 ) 46 endif() 47 add_lit_testsuite(check-clang "Running the Clang regression tests" 48 ${CMAKE_CURRENT_BINARY_DIR} 49 PARAMS ${CLANG_TEST_PARAMS} 50 DEPENDS ${CLANG_TEST_DEPS} 51 ARGS ${CLANG_TEST_EXTRA_ARGS} 52 ) 53 set_target_properties(check-clang PROPERTIES FOLDER "Clang tests") 54 55 else() 56 57 include(FindPythonInterp) 58 if(PYTHONINTERP_FOUND) 59 if( LLVM_MAIN_SRC_DIR ) 60 set(LIT "${LLVM_MAIN_SRC_DIR}/utils/lit/lit.py") 61 else() 62 set(LIT "${PATH_TO_LLVM_BUILD}/bin/${CMAKE_CFG_INTDIR}/llvm-lit") 63 # Installed LLVM does not contain ${CMAKE_CFG_INTDIR} in paths. 64 if( NOT EXISTS ${LIT} ) 65 set(LIT "${PATH_TO_LLVM_BUILD}/bin/llvm-lit") 66 endif() 67 endif() 68 69 set(LIT_ARGS "${CLANG_TEST_EXTRA_ARGS} ${LLVM_LIT_ARGS}") 70 separate_arguments(LIT_ARGS) 71 72 add_custom_target(check-clang 73 COMMAND ${PYTHON_EXECUTABLE} 74 ${LIT} 75 --param clang_site_config=${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg 76 --param build_config=${CMAKE_CFG_INTDIR} 77 --param build_mode=${RUNTIME_BUILD_MODE} 78 ${LIT_ARGS} 79 ${CMAKE_CURRENT_BINARY_DIR} 80 COMMENT "Running Clang regression tests" 81 DEPENDS clang clang-headers 82 c-index-test diagtool arcmt-test c-arcmt-test 83 clang-check 84 ) 85 set_target_properties(check-clang PROPERTIES FOLDER "Clang tests") 86 endif() 87 88 endif() 89 90 # Add a legacy target spelling: clang-test 91 add_custom_target(clang-test) 92 add_dependencies(clang-test check-clang) 93 set_target_properties(clang-test PROPERTIES FOLDER "Clang tests") 94