Author: Pavel Labath Date: 2021-10-29T13:42:06+02:00 New Revision: b42d51ba9ad1f85e6b6f3508e6c2c4ab5ee22ac1
URL: https://github.com/llvm/llvm-project/commit/b42d51ba9ad1f85e6b6f3508e6c2c4ab5ee22ac1 DIFF: https://github.com/llvm/llvm-project/commit/b42d51ba9ad1f85e6b6f3508e6c2c4ab5ee22ac1.diff LOG: [lldb/test] Replace shlex.join with shlex.quote join is only available since python-3.8, but the all the interesting magic happens in shlex.quote, which has been around since 3.3. Use shlex.quote, and instead provide a home-grown helper function to handle the joining. Differential Revision: https://reviews.llvm.org/D112802 Added: Modified: lldb/packages/Python/lldbsuite/support/seven.py lldb/packages/Python/lldbsuite/test/lldbtest.py lldb/packages/Python/lldbsuite/test_event/build_exception.py Removed: ################################################################################ diff --git a/lldb/packages/Python/lldbsuite/support/seven.py b/lldb/packages/Python/lldbsuite/support/seven.py index 9b23d94b021dc..969b61d005c58 100644 --- a/lldb/packages/Python/lldbsuite/support/seven.py +++ b/lldb/packages/Python/lldbsuite/support/seven.py @@ -1,5 +1,6 @@ import binascii import six +import shlex if six.PY2: import commands @@ -49,3 +50,7 @@ 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 92d7887e670ac..7477905a131d0 100644 --- a/lldb/packages/Python/lldbsuite/test/lldbtest.py +++ b/lldb/packages/Python/lldbsuite/test/lldbtest.py @@ -45,7 +45,6 @@ import re import shutil import signal -import shlex from subprocess import * import sys import time @@ -68,6 +67,7 @@ from . import test_categories from lldbsuite.support import encoded_file from lldbsuite.support import funcutils +from lldbsuite.support import seven from lldbsuite.test.builders import get_builder from lldbsuite.test_event import build_exception @@ -1423,7 +1423,7 @@ def build( self.runBuildCommand(command) def runBuildCommand(self, command): - self.trace(shlex.join(command)) + self.trace(seven.join_for_shell(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 e1924ad86cde5..f960dca39067d 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 @@ -import shlex +from lldbsuite.support import seven class BuildError(Exception): def __init__(self, called_process_error): super(BuildError, self).__init__("Error when building test subject") - self.command = shlex.join(called_process_error.cmd) + self.command = seven.join_for_shell(called_process_error.cmd) self.build_error = called_process_error.output def __str__(self): _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits