[lldb] Suppport testing with debug-python on Windows (#140443)

When trying to run the LLDB API tests on Windows with a debug
configuration, they fail, because the `_lldb` module won't be found. As
explained in https://github.com/llvm/llvm-project/issues/51272, this is
because lit will run the test with `python.exe` but the module is built
for the debug version of python, `python_d.exe`.

CMake already resolved the debug executable in
`Python3_EXECUTABLE_DEBUG`, so this PR changes the
`config.python_executable` to point to `python_d.exe` on Windows in
debug mode.

The check is equivalent to the one done in the top-level LLDB CMakeLists
[when setting the python
suffix](3ccb15d6ca/lldb/CMakeLists.txt (L79-L86)).
This commit is contained in:
nerix
2025-05-19 20:13:49 +02:00
committed by GitHub
parent 77de8a0c0a
commit 3bae8e2ef2
2 changed files with 7 additions and 1 deletions

View File

@@ -139,6 +139,12 @@ if(CMAKE_HOST_APPLE)
endif()
endif()
if(WIN32 AND CMAKE_BUILD_TYPE STREQUAL Debug)
set(LLDB_PYTHON_API_TEST_EXECUTABLE "${Python3_EXECUTABLE_DEBUG}")
else()
set(LLDB_PYTHON_API_TEST_EXECUTABLE "${Python3_EXECUTABLE}")
endif()
set(dotest_args_replacement ${LLVM_BUILD_MODE})
if(LLDB_BUILT_STANDALONE)

View File

@@ -19,7 +19,7 @@ config.shared_libs = @LLVM_ENABLE_SHARED_LIBS@
config.llvm_use_sanitizer = "@LLVM_USE_SANITIZER@"
config.target_triple = "@LLVM_TARGET_TRIPLE@"
config.lldb_build_directory = "@LLDB_TEST_BUILD_DIRECTORY@"
config.python_executable = "@Python3_EXECUTABLE@"
config.python_executable = "@LLDB_PYTHON_API_TEST_EXECUTABLE@"
config.lua_executable = "@LUA_EXECUTABLE@"
config.lldb_lua_cpath = "@LLDB_LUA_CPATH@"
config.lua_test_entry = "TestLuaAPI.py"