https://github.com/dlav-sc updated https://github.com/llvm/llvm-project/pull/112555
>From a9d02c8b0c22138d9337bf33883f7e6c937bd655 Mon Sep 17 00:00:00 2001 From: Daniil Avdeev <daniil.avd...@syntacore.com> Date: Mon, 14 Oct 2024 14:14:30 +0000 Subject: [PATCH 1/3] [lldb] add --platform-available-ports option to the dotest.py This patch adds --platform-available-ports option to the dotest.py script to remove hardcoded gdb ports from lldb testsuite. Currently, this option could be helpful for GdbRemoteTestCases (e.g. TestLldbGdbServer, TestNonStop, TestGdbRemoteThreadsInStopReply, TestGdbRemotePlatformFile, TestGdbRemote_vCont) --- lldb/packages/Python/lldbsuite/test/configuration.py | 1 + lldb/packages/Python/lldbsuite/test/dotest.py | 2 ++ lldb/packages/Python/lldbsuite/test/dotest_args.py | 7 +++++++ lldb/packages/Python/lldbsuite/test/lldbtest.py | 4 ++++ .../lldbsuite/test/tools/lldb-server/gdbremote_testcase.py | 3 +++ 5 files changed, 17 insertions(+) diff --git a/lldb/packages/Python/lldbsuite/test/configuration.py b/lldb/packages/Python/lldbsuite/test/configuration.py index bcc179346836d..18c1566176331 100644 --- a/lldb/packages/Python/lldbsuite/test/configuration.py +++ b/lldb/packages/Python/lldbsuite/test/configuration.py @@ -103,6 +103,7 @@ lldb_platform_name = None lldb_platform_url = None lldb_platform_working_dir = None +lldb_platform_available_ports = None # Apple SDK apple_sdk = None diff --git a/lldb/packages/Python/lldbsuite/test/dotest.py b/lldb/packages/Python/lldbsuite/test/dotest.py index 681ea1638f2d6..7cc8f2985043e 100644 --- a/lldb/packages/Python/lldbsuite/test/dotest.py +++ b/lldb/packages/Python/lldbsuite/test/dotest.py @@ -419,6 +419,8 @@ def parseOptionsAndInitTestdirs(): configuration.lldb_platform_url = args.lldb_platform_url if args.lldb_platform_working_dir: configuration.lldb_platform_working_dir = args.lldb_platform_working_dir + if args.lldb_platform_available_ports: + configuration.lldb_platform_available_ports = args.lldb_platform_available_ports if platform_system == "Darwin" and args.apple_sdk: configuration.apple_sdk = args.apple_sdk if args.test_build_dir: diff --git a/lldb/packages/Python/lldbsuite/test/dotest_args.py b/lldb/packages/Python/lldbsuite/test/dotest_args.py index a80428ebec589..18047fdca2a92 100644 --- a/lldb/packages/Python/lldbsuite/test/dotest_args.py +++ b/lldb/packages/Python/lldbsuite/test/dotest_args.py @@ -292,6 +292,13 @@ def create_parser(): metavar="platform-working-dir", help="The directory to use on the remote platform.", ) + group.add_argument( + "--platform-available-ports", + dest="lldb_platform_available_ports", + type=lambda ports: [int(port.strip()) for port in ports.split(":")], + metavar="platform-available-ports", + help="Ports available for connection to a lldb server on the remote platform", + ) # Test-suite behaviour group = parser.add_argument_group("Runtime behaviour options") diff --git a/lldb/packages/Python/lldbsuite/test/lldbtest.py b/lldb/packages/Python/lldbsuite/test/lldbtest.py index 570c36b5f9622..2e370564939d8 100644 --- a/lldb/packages/Python/lldbsuite/test/lldbtest.py +++ b/lldb/packages/Python/lldbsuite/test/lldbtest.py @@ -749,6 +749,10 @@ def getSourcePath(self, name): """Return absolute path to a file in the test's source directory.""" return os.path.join(self.getSourceDir(), name) + def getPlatformAvailablePorts(self): + """Return ports available for connection to a lldb server on the remote platform.""" + return configuration.lldb_platform_available_ports + @classmethod def setUpCommands(cls): commands = [ diff --git a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py index 3d3ecb9aa8f95..029aaf3164697 100644 --- a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py +++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py @@ -185,6 +185,9 @@ def setUpServerLogging(self, is_llgs): ] def get_next_port(self): + available_ports = self.getPlatformAvailablePorts() + if available_ports: + return random.choice(available_ports) return 12000 + random.randint(0, 7999) def reset_test_sequence(self): >From bee43951764f20efac586c6b3cde55d8f36236da Mon Sep 17 00:00:00 2001 From: Daniil Avdeev <daniil.avd...@syntacore.com> Date: Thu, 27 Mar 2025 14:36:56 +0000 Subject: [PATCH 2/3] NFC --- lldb/packages/Python/lldbsuite/test/dotest_args.py | 2 +- .../lldbsuite/test/tools/lldb-server/gdbremote_testcase.py | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/lldb/packages/Python/lldbsuite/test/dotest_args.py b/lldb/packages/Python/lldbsuite/test/dotest_args.py index 18047fdca2a92..f6b389cd40d32 100644 --- a/lldb/packages/Python/lldbsuite/test/dotest_args.py +++ b/lldb/packages/Python/lldbsuite/test/dotest_args.py @@ -295,7 +295,7 @@ def create_parser(): group.add_argument( "--platform-available-ports", dest="lldb_platform_available_ports", - type=lambda ports: [int(port.strip()) for port in ports.split(":")], + nargs="*", metavar="platform-available-ports", help="Ports available for connection to a lldb server on the remote platform", ) diff --git a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py index 029aaf3164697..cc62920ea871f 100644 --- a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py +++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py @@ -185,9 +185,8 @@ def setUpServerLogging(self, is_llgs): ] def get_next_port(self): - available_ports = self.getPlatformAvailablePorts() - if available_ports: - return random.choice(available_ports) + if available_ports := self.getPlatformAvailablePorts(): + return int(random.choice(available_ports)) return 12000 + random.randint(0, 7999) def reset_test_sequence(self): >From 3f1b1097de7099e393cdbb493426c04a0d760b53 Mon Sep 17 00:00:00 2001 From: Daniil Avdeev <daniil.avd...@syntacore.com> Date: Mon, 31 Mar 2025 13:07:18 +0000 Subject: [PATCH 3/3] NFC --- lldb/packages/Python/lldbsuite/test/dotest_args.py | 1 + .../lldbsuite/test/tools/lldb-server/gdbremote_testcase.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/lldb/packages/Python/lldbsuite/test/dotest_args.py b/lldb/packages/Python/lldbsuite/test/dotest_args.py index f6b389cd40d32..98210b7102e1b 100644 --- a/lldb/packages/Python/lldbsuite/test/dotest_args.py +++ b/lldb/packages/Python/lldbsuite/test/dotest_args.py @@ -296,6 +296,7 @@ def create_parser(): "--platform-available-ports", dest="lldb_platform_available_ports", nargs="*", + type=int, metavar="platform-available-ports", help="Ports available for connection to a lldb server on the remote platform", ) diff --git a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py index cc62920ea871f..19c766996292e 100644 --- a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py +++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py @@ -186,7 +186,7 @@ def setUpServerLogging(self, is_llgs): def get_next_port(self): if available_ports := self.getPlatformAvailablePorts(): - return int(random.choice(available_ports)) + return random.choice(available_ports) return 12000 + random.randint(0, 7999) def reset_test_sequence(self): _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits