[lldb/Util] Add a utility to run transparently capture and replay tests.
[lldb.git] / lldb / test / Shell / helper / toolchain.py
index 9d144bb..97fdb7e 100644 (file)
@@ -9,6 +9,11 @@ from lit.llvm import llvm_config
 from lit.llvm.subst import FindTool
 from lit.llvm.subst import ToolSubst
 
+
+def _get_lldb_init_path(config):
+    return os.path.join(config.test_exec_root, 'Shell', 'lit-lldb-init')
+
+
 def use_lldb_substitutions(config):
     # Set up substitutions for primary tools.  These tools must come from config.lldb_tools_dir
     # which is basically the build output directory.  We do not want to find these in path or
@@ -29,7 +34,7 @@ def use_lldb_substitutions(config):
     if config.llvm_libs_dir:
         build_script_args.append('--libs-dir={0}'.format(config.llvm_libs_dir))
 
-    lldb_init = os.path.join(config.test_exec_root, 'Shell', 'lit-lldb-init')
+    lldb_init = _get_lldb_init_path(config)
 
     primary_tools = [
         ToolSubst('%lldb',
@@ -135,3 +140,18 @@ def use_support_substitutions(config):
                      'llvm-objcopy', 'lli']
     additional_tool_dirs += [config.lldb_tools_dir, config.llvm_tools_dir]
     llvm_config.add_tool_substitutions(support_tools, additional_tool_dirs)
+
+
+def use_lldb_repro_substitutions(config, mode):
+    lldb_init = _get_lldb_init_path(config)
+    substitutions = [
+        ToolSubst(
+            '%lldb',
+            command=FindTool('lldb-repro'),
+            extra_args=[mode, '--no-lldbinit', '-S', lldb_init]),
+        ToolSubst(
+            '%lldb-init',
+            command=FindTool('lldb-repro'),
+            extra_args=[mode, '-S', lldb_init]),
+    ]
+    llvm_config.add_tool_substitutions(substitutions)