Skip to content

Commit

Permalink
[dotest] Use subprocess.call to forward arguments in wrapper
Browse files Browse the repository at this point in the history
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

llvm-svn: 328089
  • Loading branch information
JDevlieghere committed Mar 21, 2018
1 parent 03a77e9 commit ecc8aee
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 14 deletions.
3 changes: 1 addition & 2 deletions lldb/test/CMakeLists.txt
Expand Up @@ -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
Expand Down
22 changes: 10 additions & 12 deletions lldb/test/lldb-dotest.in
@@ -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)

0 comments on commit ecc8aee

Please sign in to comment.