From 0dd51f92fc2390f7fc7fb527b156de1bd8478afd Mon Sep 17 00:00:00 2001 From: David Spickett Date: Mon, 13 Oct 2025 14:55:39 +0100 Subject: [PATCH] [lldb][test] Replace seven.join_for_shell with shlex.join (#163191) shlex.join is available in Python 3.8, which is the LLVM Project's minimum version. https://docs.python.org/3/library/shlex.html#shlex.join --- lldb/packages/Python/lldbsuite/support/seven.py | 6 ------ lldb/packages/Python/lldbsuite/test/lldbtest.py | 4 ++-- .../packages/Python/lldbsuite/test_event/build_exception.py | 4 ++-- lldb/test/API/tools/lldb-server/TestGdbRemoteFork.py | 1 + 4 files changed, 5 insertions(+), 10 deletions(-) diff --git a/lldb/packages/Python/lldbsuite/support/seven.py b/lldb/packages/Python/lldbsuite/support/seven.py index 1b96658b68ed..8e621ba1ee91 100644 --- a/lldb/packages/Python/lldbsuite/support/seven.py +++ b/lldb/packages/Python/lldbsuite/support/seven.py @@ -1,5 +1,4 @@ import binascii -import shlex import subprocess @@ -38,8 +37,3 @@ def unhexlify(hexstr): def hexlify(data): """Hex-encode string data. The result if always a string.""" return bitcast_to_string(binascii.hexlify(bitcast_to_bytes(data))) - - -# TODO: Replace this with `shlex.join` when minimum Python version is >= 3.8 -def join_for_shell(split_command): - return " ".join([shlex.quote(part) for part in split_command]) diff --git a/lldb/packages/Python/lldbsuite/test/lldbtest.py b/lldb/packages/Python/lldbsuite/test/lldbtest.py index 807492272344..b92de941c412 100644 --- a/lldb/packages/Python/lldbsuite/test/lldbtest.py +++ b/lldb/packages/Python/lldbsuite/test/lldbtest.py @@ -36,6 +36,7 @@ import json import os.path import re import shutil +import shlex import signal from subprocess import * import sys @@ -56,7 +57,6 @@ from . import lldbutil from . import test_categories from lldbsuite.support import encoded_file from lldbsuite.support import funcutils -from lldbsuite.support import seven from lldbsuite.test_event import build_exception # See also dotest.parseOptionsAndInitTestdirs(), where the environment variables @@ -1508,7 +1508,7 @@ class Base(unittest.TestCase): self.runBuildCommand(command) def runBuildCommand(self, command): - self.trace(seven.join_for_shell(command)) + self.trace(shlex.join(command)) try: output = check_output(command, stderr=STDOUT, errors="replace") except CalledProcessError as cpe: diff --git a/lldb/packages/Python/lldbsuite/test_event/build_exception.py b/lldb/packages/Python/lldbsuite/test_event/build_exception.py index 931c15da0d5e..c3ae2cdfca06 100644 --- a/lldb/packages/Python/lldbsuite/test_event/build_exception.py +++ b/lldb/packages/Python/lldbsuite/test_event/build_exception.py @@ -1,10 +1,10 @@ -from lldbsuite.support import seven +import shlex class BuildError(Exception): def __init__(self, called_process_error): super(BuildError, self).__init__("Error when building test subject") - self.command = seven.join_for_shell(called_process_error.cmd) + self.command = shlex.join(called_process_error.cmd) self.build_error = called_process_error.output def __str__(self): diff --git a/lldb/test/API/tools/lldb-server/TestGdbRemoteFork.py b/lldb/test/API/tools/lldb-server/TestGdbRemoteFork.py index 13c4a85f51f7..ef1d546cf171 100644 --- a/lldb/test/API/tools/lldb-server/TestGdbRemoteFork.py +++ b/lldb/test/API/tools/lldb-server/TestGdbRemoteFork.py @@ -2,6 +2,7 @@ import random from lldbsuite.test.decorators import * from lldbsuite.test.lldbtest import * +from lldbsuite.support import seven from fork_testbase import GdbRemoteForkTestBase