brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.5 KiB · bcb6bd6 Raw
238 lines · plain
1# Test runner infrastructure for Clang. This configures the Clang test trees2# for use by Lit, and delegates to LLVM's lit test handlers.3 4llvm_canonicalize_cmake_booleans(5  BUILD_SHARED_LIBS6  CLANG_BUILD_EXAMPLES7  CLANG_BUILT_STANDALONE8  CLANG_DEFAULT_PIE_ON_LINUX9  CLANG_ENABLE_STATIC_ANALYZER10  CLANG_PLUGIN_SUPPORT11  CLANG_SPAWN_CC112  CLANG_ENABLE_CIR13  CLANG_ENABLE_OBJC_REWRITER14  CLANG_LINK_CLANG_DYLIB15  ENABLE_BACKTRACES16  LLVM_BUILD_EXAMPLES17  LLVM_BYE_LINK_INTO_TOOLS18  LLVM_ENABLE_PLUGINS19  LLVM_ENABLE_ZLIB20  LLVM_ENABLE_ZSTD21  LLVM_ENABLE_PER_TARGET_RUNTIME_DIR22  LLVM_ENABLE_THREADS23  LLVM_ENABLE_REVERSE_ITERATION24  LLVM_LINK_LLVM_DYLIB25  LLVM_WITH_Z326  PPC_LINUX_DEFAULT_IEEELONGDOUBLE27  LLVM_TOOL_LLVM_DRIVER_BUILD28  LLVM_INCLUDE_SPIRV_TOOLS_TESTS29  )30 31# Run tests requiring Z3 headers only if LLVM was built with Z332# and the headers are available while building Clang -- the latter may33# not be the case when building standalone against installed LLVM.34set(TEST_WITH_Z3_MOCK 0)35if(LLVM_WITH_Z3 AND Z3_FOUND AND CMAKE_SYSTEM_NAME MATCHES "Linux")36  llvm_add_library(37    MockZ3SolverCheck38    MODULE Analysis/z3/Inputs/MockZ3_solver_check.cpp39    DISABLE_LLVM_LINK_LLVM_DYLIB)40 41  if(TARGET MockZ3SolverCheck)42    list(APPEND CLANG_TEST_DEPS43      MockZ3SolverCheck)44    target_include_directories(45      MockZ3SolverCheck46      PRIVATE ${Z3_INCLUDE_DIR})47    set(TEST_WITH_Z3_MOCK 1)48  endif()49endif()50 51configure_lit_site_cfg(52  ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in53  ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg.py54  MAIN_CONFIG55  ${CMAKE_CURRENT_SOURCE_DIR}/lit.cfg.py56  PATHS57  "LLVM_SOURCE_DIR"58  "LLVM_BINARY_DIR"59  "LLVM_TOOLS_DIR"60  "LLVM_LIBS_DIR"61  "SHLIBDIR"62  "LLVM_LIT_TOOLS_DIR"63  "LLVM_EXTERNAL_LIT"64  "CLANG_BINARY_DIR"65  "CLANG_SOURCE_DIR"66  "CURRENT_TOOLS_DIR"67  "CMAKE_LIBRARY_OUTPUT_DIRECTORY"68  )69 70configure_lit_site_cfg(71  ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.py.in72  ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg.py73  MAIN_CONFIG74  ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.cfg.py75  PATHS76  "LLVM_SOURCE_DIR"77  "LLVM_BINARY_DIR"78  "LLVM_TOOLS_DIR"79  "LLVM_LIBS_DIR"80  "CLANG_BINARY_DIR"81  "SHLIBDIR"82  )83 84option(CLANG_TEST_USE_VG "Run Clang tests under Valgrind" OFF)85if(CLANG_TEST_USE_VG)86  set(CLANG_TEST_EXTRA_ARGS ${CLANG_TEST_EXTRA_ARGS} "--vg")87endif ()88 89list(APPEND CLANG_TEST_DEPS90  apinotes-test91  c-index-test92  clang93  clang-fuzzer-dictionary94  clang-resource-headers95  clang-format96  clang-tblgen97  clang-offload-bundler98  clang-import-test99  clang-refactor100  clang-diff101  clang-installapi102  clang-scan-deps103  clang-linker-wrapper104  clang-nvlink-wrapper105  clang-offload-bundler106  clang-sycl-linker107  diagtool108  hmaptool109  )110 111if(CLANG_ENABLE_CIR)112  list(APPEND CLANG_TEST_DEPS113    cir-opt114    cir-translate115    mlir-translate116    )117endif()118 119if(CLANG_ENABLE_STATIC_ANALYZER)120  list(APPEND CLANG_TEST_DEPS121    clang-check122    clang-extdef-mapping123    )124endif()125 126if(CLANG_BUILD_EXAMPLES AND CLANG_PLUGIN_SUPPORT)127  list(APPEND CLANG_TEST_DEPS128    Attribute129    AnnotateFunctions130    CallSuperAttr131    PluginsOrder132    PrintFunctionNames133    LLVMPrintFunctionNames134    )135endif ()136 137if(LLVM_INCLUDE_SPIRV_TOOLS_TESTS)138  list(APPEND CLANG_TEST_DEPS139    spirv-dis140    spirv-val141    spirv-as142    spirv-link143    )144endif()    145 146if( NOT CLANG_BUILT_STANDALONE )147  list(APPEND CLANG_TEST_DEPS148    llvm-config149    FileCheck count not150    llc151    llvm-ar152    llvm-as153    llvm-bcanalyzer154    llvm-cat155    llvm-cxxfilt156    llvm-dis157    llvm-dwarfdump158    llvm-ifs159    llvm-link160    llvm-lto2161    llvm-mc162    llvm-modextract163    llvm-nm164    llvm-objcopy165    llvm-objdump166    llvm-pdbutil167    llvm-profdata168    llvm-rc169    llvm-readelf170    llvm-readobj171    llvm-readtapi172    llvm-strip173    llvm-symbolizer174    llvm-windres175    llvm-offload-binary176    obj2yaml177    opt178    split-file179    yaml2obj180    )181 182  if(TARGET llvm-lto)183    list(APPEND CLANG_TEST_DEPS llvm-lto)184  endif()185endif()186 187if(CLANG_ENABLE_STATIC_ANALYZER)188  if(CLANG_PLUGIN_SUPPORT AND LLVM_ENABLE_PLUGINS) # Determine if we built them189    list(APPEND CLANG_TEST_DEPS190      SampleAnalyzerPlugin191      CheckerDependencyHandlingAnalyzerPlugin192      CheckerOptionHandlingAnalyzerPlugin193      )194  endif()195endif()196 197if (HAVE_CLANG_REPL_SUPPORT)198  list(APPEND CLANG_TEST_DEPS199    clang-repl200    )201endif()202 203# Copy gen_ast_dump_json_test.py to the clang build dir. This allows invoking204# it without having to pass the --clang= argument205configure_file(AST/gen_ast_dump_json_test.py206  ${CLANG_BINARY_DIR}/bin/gen_ast_dump_json_test.py COPYONLY)207 208add_custom_target(clang-test-depends DEPENDS ${CLANG_TEST_DEPS})209set_target_properties(clang-test-depends PROPERTIES FOLDER "Clang/Tests")210 211add_lit_testsuite(check-clang "Running the Clang regression tests"212  ${CMAKE_CURRENT_BINARY_DIR}213  #LIT ${LLVM_LIT}214  DEPENDS ${CLANG_TEST_DEPS}215  ARGS ${CLANG_TEST_EXTRA_ARGS}216  )217 218add_lit_testsuites(CLANG ${CMAKE_CURRENT_SOURCE_DIR}219  DEPENDS ${CLANG_TEST_DEPS}220  FOLDER "Clang tests/Suites"221)222 223# Add a legacy target spelling: clang-test224add_custom_target(clang-test)225add_dependencies(clang-test check-clang)226set_target_properties(clang-test PROPERTIES FOLDER "Clang/Tests")227 228# FIXME: This logic can be removed once all buildbots have moved229# debuginfo-test from clang/test to llvm/projects or monorepo.230if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/debuginfo-tests)231  message(WARNING "Including debuginfo-tests in clang/test is deprecated.  Move to llvm/projects or use monorepo.")232  if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/debuginfo-tests/CMakeLists.txt)233    add_subdirectory(debuginfo-tests)234  endif()235endif()236 237add_subdirectory(Analysis/LifetimeSafety)238