[Lldb-commits] [PATCH] D71379: lldbutil: Forward ASan launch info to test inferiors

Vedant Kumar via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Wed Dec 11 16:28:10 PST 2019


vsk created this revision.
vsk added reviewers: davide, jingham.
vsk edited the summary of this revision.

This allows an unsanitized test process which loads a sanitized DSO (the
motivating example is a Swift runtime dylib) to launch on Darwin.

rdar://57290132


https://reviews.llvm.org/D71379

Files:
  lldb/packages/Python/lldbsuite/test/lldbutil.py
  lldb/test/API/lit.cfg.py


Index: lldb/test/API/lit.cfg.py
===================================================================
--- lldb/test/API/lit.cfg.py
+++ lldb/test/API/lit.cfg.py
@@ -90,6 +90,12 @@
 if config.llvm_libs_dir:
   dotest_cmd += ['--env', 'LLVM_LIBS_DIR=' + config.llvm_libs_dir]
 
+# Forward ASan-specific environment variables to tests, as a test may load an
+# ASan-ified dylib.
+for env_var in ('ASAN_OPTIONS', 'DYLD_INSERT_LIBRARIES'):
+  if env_var in config.environment:
+    dotest_cmd += ['--inferior-env', env_var + '=' + config.environment[env_var]]
+
 if config.lldb_build_directory:
   dotest_cmd += ['--build-dir', config.lldb_build_directory]
 
Index: lldb/packages/Python/lldbsuite/test/lldbutil.py
===================================================================
--- lldb/packages/Python/lldbsuite/test/lldbutil.py
+++ lldb/packages/Python/lldbsuite/test/lldbutil.py
@@ -19,6 +19,7 @@
 
 # LLDB modules
 import lldb
+from . import lldbtest_config
 
 
 # ===================================================
@@ -758,6 +759,12 @@
     # Create the target
     target = test.dbg.CreateTarget(exe)
     test.assertTrue(target, "Target: %s is not valid."%(exe_name))
+
+    # Set environment variables for the inferior.
+    if lldbtest_config.inferior_env:
+        test.runCmd('settings set target.env-vars {}'.format(
+            lldbtest_config.inferior_env))
+
     return target
 
 def run_to_breakpoint_do_run(test, target, bkpt, launch_info = None,
@@ -765,7 +772,7 @@
 
     # Launch the process, and do not stop at the entry point.
     if not launch_info:
-        launch_info = lldb.SBLaunchInfo(None)
+        launch_info = target.GetLaunchInfo()
         launch_info.SetWorkingDirectory(test.get_process_working_directory())
 
     if extra_images and lldb.remote_platform:


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D71379.233469.patch
Type: text/x-patch
Size: 1794 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20191212/3eb8ebf2/attachment.bin>


More information about the lldb-commits mailing list