118 lines · plain
1# Cross project tests, for tests that require access to multiple projects across2# LLVM (e.g. clang, lld and lldb).3# The subset inside debuginfo-tests invoke clang to generate programs with4# various types of debug info, and then run those programs under a debugger5# such as GDB or LLDB to verify the results.6set(LLVM_SUBPROJECT_TITLE "Cross-Project")7 8find_package(Python3 COMPONENTS Interpreter)9 10add_llvm_executable(check-gdb-llvm-support11 debuginfo-tests/llvm-prettyprinters/gdb/llvm-support.cpp12)13target_link_libraries(check-gdb-llvm-support PRIVATE LLVMSupport)14 15set(CROSS_PROJECT_TESTS_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})16set(CROSS_PROJECT_TESTS_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})17 18set(CROSS_PROJECT_TEST_DEPS19 FileCheck20 check-gdb-llvm-support21 count22 llvm-ar23 llvm-config24 llvm-dis25 llvm-dwarfdump26 llvm-objdump27 not28 obj2yaml29 split-file30 )31 32if ("clang" IN_LIST LLVM_ENABLE_PROJECTS)33 list(APPEND CROSS_PROJECT_TEST_DEPS clang)34endif()35 36if ("mlir" IN_LIST LLVM_ENABLE_PROJECTS)37 add_llvm_executable(check-gdb-mlir-support38 debuginfo-tests/llvm-prettyprinters/gdb/mlir-support.cpp39 )40 target_include_directories(check-gdb-mlir-support PRIVATE41 ${LLVM_EXTERNAL_MLIR_SOURCE_DIR}/include42 ${LLVM_BINARY_DIR}/tools/mlir/include)43 target_link_libraries(check-gdb-mlir-support PRIVATE MLIRIR)44 list(APPEND CROSS_PROJECT_TEST_DEPS check-gdb-mlir-support)45 set(MLIR_SOURCE_DIR ${LLVM_EXTERNAL_MLIR_SOURCE_DIR})46endif()47 48if("compiler-rt" IN_LIST LLVM_ENABLE_PROJECTS)49 # llgdb-tests/asan.c and other asan* files.50 if(TARGET asan)51 list(APPEND CROSS_PROJECT_TEST_DEPS asan)52 endif()53 # llgdb-tests/safestack.c54 if(TARGET safestack)55 list(APPEND CROSS_PROJECT_TEST_DEPS safestack)56 endif()57endif()58# Many dexter tests depend on lldb.59if("lldb" IN_LIST LLVM_ENABLE_PROJECTS)60 list(APPEND CROSS_PROJECT_TEST_DEPS lldb lldb-server)61endif()62 63if ("lld" IN_LIST LLVM_ENABLE_PROJECTS)64 list(APPEND CROSS_PROJECT_TEST_DEPS lld)65endif()66 67configure_lit_site_cfg(68 ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in69 ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg.py70 MAIN_CONFIG71 ${CMAKE_CURRENT_SOURCE_DIR}/lit.cfg.py72 )73 74add_lit_testsuite(check-cross-project "Running cross-project tests"75 ${CMAKE_CURRENT_BINARY_DIR}76 DEPENDS ${CROSS_PROJECT_TEST_DEPS}77 )78 79# Add alias for debuginfo test subset.80add_lit_testsuite(check-debuginfo "Running debuginfo tests"81 ${CMAKE_CURRENT_BINARY_DIR}/debuginfo-tests82 EXCLUDE_FROM_CHECK_ALL83 DEPENDS ${CROSS_PROJECT_TEST_DEPS}84 )85 86# Add alias for intrinsic header test subset.87add_lit_testsuite(check-intrinsic-headers "Running intrinsic header tests"88 ${CMAKE_CURRENT_BINARY_DIR}/intrinsic-header-tests89 EXCLUDE_FROM_CHECK_ALL90 DEPENDS ${CROSS_PROJECT_TEST_DEPS}91 )92 93# AMDGPU tests.94add_lit_testsuite(check-cross-amdgpu "Running AMDGPU cross-project tests"95 ${CMAKE_CURRENT_BINARY_DIR}/amdgpu96 EXCLUDE_FROM_CHECK_ALL97 DEPENDS clang98 )99 100# DTLTO tests.101add_lit_testsuite(check-cross-dtlto "Running DTLTO cross-project tests"102 ${CMAKE_CURRENT_BINARY_DIR}/dtlto103 EXCLUDE_FROM_CHECK_ALL104 DEPENDS ${CROSS_PROJECT_TEST_DEPS}105 )106 107# veclib tests.108add_lit_testsuite(check-cross-veclib "Running veclib cross-project tests"109 ${CMAKE_CURRENT_BINARY_DIR}/veclib110 EXCLUDE_FROM_CHECK_ALL111 DEPENDS ${CROSS_PROJECT_TEST_DEPS}112 )113 114# Add check-cross-project-* targets.115add_lit_testsuites(CROSS_PROJECT ${CMAKE_CURRENT_SOURCE_DIR}116 DEPENDS ${CROSS_PROJECT_TEST_DEPS}117 )118