Reapply "[lldb/test] Automatically find debug servers to test"
authorPavel Labath <pavel@labath.sk>
Thu, 4 Feb 2021 19:53:15 +0000 (20:53 +0100)
committerPavel Labath <pavel@labath.sk>
Sun, 21 Feb 2021 19:47:47 +0000 (20:47 +0100)
commit3ca7b2d03cce16aebfbacc33bd351c8272c38f50
tree12c3f71b270903af2d280ccaa476f0365f8e46a3
parent1a6c1ac6862a10c2484ea2880ea9b67ad8b9c144
Reapply "[lldb/test] Automatically find debug servers to test"

This reapplies 7df4eaaa93/D96202, which was reverted due to issues on
windows. These were caused by problems in the computation of the liblldb
directory, which was fixed by D96779.

The original commit message was:
Our test configuration logic assumes that the tests can be run either
with debugserver or with lldb-server. This is not entirely correct,
since lldb server has two "personalities" (platform server and debug
server) and debugserver is only a replacement for the latter.

A consequence of this is that it's not possible to test the platform
behavior of lldb-server on macos, as it is not possible to get a hold of
the lldb-server binary.

One solution to that would be to duplicate the server configuration
logic to be able to specify both executables. However, that seems
excessively redundant.

A well-behaved lldb should be able to find the debug server on its own,
and testing lldb with a different (lldb-|debug)server does not seem very
useful (even in the out-of-tree debugserver setup, we copy the server
into the build tree to make it appear "real").

Therefore, this patch deletes the configuration altogether and changes
the low-level server retrieval functions to be able to both lldb-server
and debugserver paths. They do this by consulting the "support
executable" directory of the lldb under test.

Differential Revision: https://reviews.llvm.org/D96202
lldb/packages/Python/lldbsuite/test/dotest.py
lldb/packages/Python/lldbsuite/test/dotest_args.py
lldb/packages/Python/lldbsuite/test/tools/lldb-server/lldbgdbserverutils.py
lldb/test/API/CMakeLists.txt
lldb/test/API/commands/platform/sdk/TestPlatformSDK.py
lldb/test/API/lit.site.cfg.py.in
lldb/utils/lldb-dotest/CMakeLists.txt
lldb/utils/lldb-dotest/lldb-dotest.in