-
Notifications
You must be signed in to change notification settings - Fork 14.3k
[lldb] Suppport testing with debug-python on Windows #140443
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
@llvm/pr-subscribers-lldb Author: nerix (Nerixyz) ChangesWhen trying to run the LLDB API tests on Windows with a debug configuration, they fail, because the CMake already resolved the debug executable in The check is equivalent to the one done in the top-level LLDB CMakeLists when setting the python suffix. Full diff: https://github.com/llvm/llvm-project/pull/140443.diff 2 Files Affected:
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"
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Makes sense
lldb/test/lit.site.cfg.py.in, lldb/test/Shell/lit.site.cfg.py.in, lldb/test/Unit/lit.site.cfg.py.in also use |
Shell and unit tests don't import lldb directly from Python like the API tests (unless I missed some). The shell tests use the built executable which has a dependency on the correct dynamic Python library. And the unit tests link to the CMake target and don't run on Python. |
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 llvm#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).
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 llvm#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).
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 #51272, this is because lit will run the test withpython.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 theconfig.python_executable
to point topython_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.