)
# 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
#!/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)