[Lldb-commits] [PATCH] D112802: [lldb/test] Replace shlex.join with shlex.quote

Pavel Labath via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Fri Oct 29 04:37:17 PDT 2021


labath created this revision.
labath added a reviewer: teemperor.
labath requested review of this revision.
Herald added a project: LLDB.

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.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D112802

Files:
  lldb/packages/Python/lldbsuite/support/seven.py
  lldb/packages/Python/lldbsuite/test/lldbtest.py
  lldb/packages/Python/lldbsuite/test_event/build_exception.py


Index: lldb/packages/Python/lldbsuite/test_event/build_exception.py
===================================================================
--- lldb/packages/Python/lldbsuite/test_event/build_exception.py
+++ 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):
Index: lldb/packages/Python/lldbsuite/test/lldbtest.py
===================================================================
--- lldb/packages/Python/lldbsuite/test/lldbtest.py
+++ 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 @@
         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:
Index: lldb/packages/Python/lldbsuite/support/seven.py
===================================================================
--- lldb/packages/Python/lldbsuite/support/seven.py
+++ 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,6 @@
 def hexlify(data):
     """Hex-encode string data. The result if always a string."""
     return bitcast_to_string(binascii.hexlify(bitcast_to_bytes(data)))
+
+def join_for_shell(split_command):
+    return " ".join([shlex.quote(part) for part in split_command])


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D112802.383301.patch
Type: text/x-patch
Size: 2265 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20211029/d84643c5/attachment.bin>


More information about the lldb-commits mailing list