[Lldb-commits] [lldb] b42d51b - [lldb/test] Replace shlex.join with shlex.quote
Pavel Labath via lldb-commits
lldb-commits at lists.llvm.org
Fri Oct 29 04:42:14 PDT 2021
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):
More information about the lldb-commits
mailing list