xref: /llvm-project/lldb/utils/lldb-dotest/lldb-dotest.in (revision e89e7c4685aa673173220eace7a0a8b64dbd2391)
1#!@Python3_EXECUTABLE@
2import os
3import subprocess
4import sys
5
6dotest_path = '@LLDB_SOURCE_DIR_CONFIGURED@/test/API/dotest.py'
7dotest_common_args_str = '@LLDB_TEST_COMMON_ARGS_CONFIGURED@'
8dotest_user_args_str = '@LLDB_TEST_USER_ARGS_CONFIGURED@'
9arch = '@LLDB_TEST_ARCH@'
10executable = '@LLDB_TEST_EXECUTABLE_CONFIGURED@'
11compiler = '@LLDB_TEST_COMPILER_CONFIGURED@'
12dsymutil = '@LLDB_TEST_DSYMUTIL_CONFIGURED@'
13make = '@LLDB_TEST_MAKE_CONFIGURED@'
14lldb_build_dir = '@LLDB_TEST_BUILD_DIRECTORY_CONFIGURED@'
15lldb_build_intel_pt = "@LLDB_BUILD_INTEL_PT@"
16lldb_framework_dir = "@LLDB_FRAMEWORK_DIR_CONFIGURED@"
17lldb_libs_dir = "@LLDB_LIBS_DIR_CONFIGURED@"
18llvm_tools_dir = "@LLVM_TOOLS_DIR_CONFIGURED@"
19lldb_obj_root = "@LLDB_BINARY_DIR@"
20has_libcxx = @LLDB_HAS_LIBCXX@
21libcxx_libs_dir = "@LIBCXX_LIBRARY_DIR@"
22libcxx_include_dir = "@LIBCXX_GENERATED_INCLUDE_DIR@"
23libcxx_include_target_dir = "@LIBCXX_GENERATED_INCLUDE_TARGET_DIR@"
24
25if __name__ == '__main__':
26    wrapper_args = sys.argv[1:]
27    dotest_args = []
28    # split on an empty string will produce [''] and if you
29    # add that to the command, it will be treated as a directory...
30    if dotest_common_args_str:
31        dotest_args.extend(dotest_common_args_str.split(';'))
32    if dotest_user_args_str:
33        dotest_args.extend(dotest_user_args_str.split(';'))
34    # Build dotest.py command.
35    cmd = [sys.executable, dotest_path]
36    cmd.extend(['--arch', arch])
37    cmd.extend(dotest_args)
38    cmd.extend(['--build-dir', lldb_build_dir])
39    cmd.extend(['--executable', executable])
40    cmd.extend(['--compiler', compiler])
41    cmd.extend(['--dsymutil', dsymutil])
42    cmd.extend(['--make', make])
43    cmd.extend(['--lldb-libs-dir', lldb_libs_dir])
44    cmd.extend(['--llvm-tools-dir', llvm_tools_dir])
45    if has_libcxx:
46        cmd.extend(['--libcxx-include-dir', libcxx_include_dir])
47        if libcxx_include_target_dir:
48            cmd.extend(['--libcxx-include-target-dir', libcxx_include_target_dir])
49        cmd.extend(['--libcxx-library-dir', libcxx_libs_dir])
50    if lldb_framework_dir:
51        cmd.extend(['--framework', lldb_framework_dir])
52    if lldb_build_intel_pt == "1":
53        cmd.extend(['--enable-plugin', 'intel-pt'])
54    cmd.extend(['--lldb-obj-root', lldb_obj_root])
55    cmd.extend(wrapper_args)
56    # Invoke dotest.py and return exit code.
57    print(' '.join(cmd))
58    sys.exit(subprocess.call(cmd))
59