| # Debug Info tests. These tests invoke clang to generate programs with |
| # various types of debug info, and then run those programs under a debugger |
| # such as GDB or LLDB to verify the results. |
| |
| find_package(Python3 COMPONENTS Interpreter) |
| |
| add_llvm_executable(check-gdb-llvm-support |
| llvm-prettyprinters/gdb/llvm-support.cpp |
| ) |
| target_link_libraries(check-gdb-llvm-support PRIVATE LLVMSupport) |
| |
| set(DEBUGINFO_TESTS_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) |
| set(DEBUGINFO_TESTS_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}) |
| |
| set(DEBUGINFO_TEST_DEPS |
| clang |
| FileCheck |
| count |
| llvm-config |
| llvm-objdump |
| check-gdb-llvm-support |
| not |
| ) |
| |
| if("compiler-rt" IN_LIST LLVM_ENABLE_PROJECTS) |
| # llgdb-tests/asan.c and other asan* files. |
| if(TARGET asan) |
| list(APPEND DEBUGINFO_TEST_DEPS asan) |
| endif() |
| # llgdb-tests/safestack.c |
| if(TARGET safestack) |
| list(APPEND DEBUGINFO_TEST_DEPS safestack) |
| endif() |
| endif() |
| # Many dexter tests depend on lldb. |
| if("lldb" IN_LIST LLVM_ENABLE_PROJECTS) |
| list(APPEND DEBUGINFO_TEST_DEPS lldb lldb-server) |
| endif() |
| |
| # The Windows builder scripts pass -fuse-ld=lld. |
| if (WIN32) |
| set(DEBUGINFO_TEST_DEPS ${DEBUGINFO_TEST_DEPS} lld) |
| endif() |
| |
| if (NOT DEFINED Python3_EXECUTABLE) |
| message(FATAL_ERROR "Cannot run debuginfo-tests without python 3") |
| endif() |
| |
| configure_lit_site_cfg( |
| ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in |
| ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg.py |
| MAIN_CONFIG |
| ${CMAKE_CURRENT_SOURCE_DIR}/lit.cfg.py |
| ) |
| |
| add_lit_testsuite(check-debuginfo "Running debug info integration tests" |
| ${CMAKE_CURRENT_BINARY_DIR} |
| DEPENDS ${DEBUGINFO_TEST_DEPS} |
| ) |
| |
| # Add check-debuginfo-* targets. |
| add_lit_testsuites(DEBUGINFO ${CMAKE_CURRENT_SOURCE_DIR} |
| DEPENDS ${DEBUGINFO_TEST_DEPS} |
| ) |
| |
| set_target_properties(check-debuginfo PROPERTIES FOLDER "Debug info tests") |