https://github.com/Nerixyz created 
https://github.com/llvm/llvm-project/pull/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](https://github.com/llvm/llvm-project/blob/3ccb15d6caf57f2a866d496ada2fb52d14b179d2/lldb/CMakeLists.txt#L79-L86).

>From f82a1f31be6cb4c18ae8100c40d813e4236ffd92 Mon Sep 17 00:00:00 2001
From: Nerixyz <nerix...@outlook.de>
Date: Sun, 18 May 2025 09:54:54 +0200
Subject: [PATCH] [lldb] Suppport testing with debug-python on Windows

---
 lldb/test/API/CMakeLists.txt     | 6 ++++++
 lldb/test/API/lit.site.cfg.py.in | 2 +-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/lldb/test/API/CMakeLists.txt b/lldb/test/API/CMakeLists.txt
index da51f2252d023..b1ace6296f46a 100644
--- a/lldb/test/API/CMakeLists.txt
+++ b/lldb/test/API/CMakeLists.txt
@@ -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)
diff --git a/lldb/test/API/lit.site.cfg.py.in b/lldb/test/API/lit.site.cfg.py.in
index ecebc44774859..54807de8819d2 100644
--- a/lldb/test/API/lit.site.cfg.py.in
+++ b/lldb/test/API/lit.site.cfg.py.in
@@ -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"

_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to