[Lldb-commits] [lldb] r328089 - [dotest] Use subprocess.call to forward arguments in wrapper

Jonas Devlieghere via lldb-commits lldb-commits at lists.llvm.org
Wed Mar 21 04:13:56 PDT 2018


Author: jdevlieghere
Date: Wed Mar 21 04:13:56 2018
New Revision: 328089

URL: http://llvm.org/viewvc/llvm-project?rev=328089&view=rev
Log:
[dotest] Use subprocess.call to forward arguments in wrapper

As suggested by Pavel on lldb-commits. Originally I picked os.system
because it was so much more simple than the subprocess module, but that
no longer holds true after yesterday's hack in r328020. This is what it
should've been in the first place.

Differential revision: https://reviews.llvm.org/D44728

Modified:
    lldb/trunk/test/CMakeLists.txt
    lldb/trunk/test/lldb-dotest.in

Modified: lldb/trunk/test/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/CMakeLists.txt?rev=328089&r1=328088&r2=328089&view=diff
==============================================================================
--- lldb/trunk/test/CMakeLists.txt (original)
+++ lldb/trunk/test/CMakeLists.txt Wed Mar 21 04:13:56 2018
@@ -136,8 +136,7 @@ add_python_test_target(check-lldb
   )
 
 # Generate a wrapper for dotest.py in the bin directory.
-string (REPLACE ";" " " LLDB_DOTEST_ARGS_STR  "${LLDB_DOTEST_ARGS}")
-# We need this to substitute variables.
+# We need configure_file to substitute variables.
 configure_file(
   lldb-dotest.in
   ${CMAKE_CURRENT_BINARY_DIR}/lldb-dotest.configured

Modified: lldb/trunk/test/lldb-dotest.in
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/lldb-dotest.in?rev=328089&r1=328088&r2=328089&view=diff
==============================================================================
--- lldb/trunk/test/lldb-dotest.in (original)
+++ lldb/trunk/test/lldb-dotest.in Wed Mar 21 04:13:56 2018
@@ -1,18 +1,16 @@
 #!/usr/bin/env python
+import subprocess
 import sys
-import os
 
 dotest_path = '@LLDB_SOURCE_DIR@/test/dotest.py'
-dotest_args = '@LLDB_DOTEST_ARGS_STR@'
+dotest_args_str = '@LLDB_DOTEST_ARGS@'
 
 if __name__ == '__main__':
-    # Wrap arguments in single quotes. This is necessary because we want to
-    # forward the arguments and otherwise we might split up arguments that were
-    # originally wrapped in single quotes.
-    wrapper_args = list("'" + i + "'" for i in sys.argv[1:])
-    # FIXME: It would be nice if we can mimic the approach taken by llvm-lit
-    # and pass a python configuration straight to dotest, rather than going
-    # through the operating system.
-    command = '{} -q {} {}'.format(dotest_path, dotest_args,
-                                   ' '.join(wrapper_args))
-    os.system(command)
+    wrapper_args = sys.argv[1:]
+    dotest_args = dotest_args_str.split(';')
+    # Build dotest.py command.
+    cmd = [dotest_path, '-q']
+    cmd.extend(dotest_args)
+    cmd.extend(wrapper_args)
+    # Invoke dotest.py
+    subprocess.call(cmd)




More information about the lldb-commits mailing list