[lit] Fix setup of sanitizer environment
authorVitaly Buka <vitalybuka@google.com>
Fri, 20 May 2022 02:22:02 +0000 (19:22 -0700)
committerVitaly Buka <vitalybuka@google.com>
Fri, 20 May 2022 02:24:16 +0000 (19:24 -0700)
Not all options were propageted into tests.

Reviewed By: ychen

Differential Revision: https://reviews.llvm.org/D122869

clang/test/Unit/lit.cfg.py
clang/test/lit.cfg.py
cross-project-tests/lit.cfg.py
llvm/test/Unit/lit.cfg.py
llvm/test/lit.cfg.py
llvm/utils/lit/lit/llvm/config.py
mlir/test/Unit/lit.cfg.py
polly/test/Unit/lit.cfg

index a6e906b..1aa3abc 100644 (file)
@@ -30,10 +30,19 @@ if 'TMP' in os.environ:
 if 'TEMP' in os.environ:
     config.environment['TEMP'] = os.environ['TEMP']
 
-# Propagate path to symbolizer for ASan/MSan.
-for symbolizer in ['ASAN_SYMBOLIZER_PATH', 'MSAN_SYMBOLIZER_PATH']:
-    if symbolizer in os.environ:
-        config.environment[symbolizer] = os.environ[symbolizer]
+# Propagate sanitizer options.
+for var in [
+    'ASAN_SYMBOLIZER_PATH',
+    'MSAN_SYMBOLIZER_PATH',
+    'TSAN_SYMBOLIZER_PATH',
+    'UBSAN_SYMBOLIZER_PATH',
+    'ASAN_OPTIONS',
+    'MSAN_OPTIONS',
+    'TSAN_OPTIONS',
+    'UBSAN_OPTIONS',
+]:
+    if var in os.environ:
+        config.environment[var] = os.environ[var]
 
 def find_shlibpath_var():
     if platform.system() in ['Linux', 'FreeBSD', 'NetBSD', 'SunOS']:
index 44f5ed1..bf1fa14 100644 (file)
@@ -49,10 +49,6 @@ config.substitutions.append(
 config.substitutions.append(
     ('%target_triple', config.target_triple))
 
-# Propagate path to symbolizer for ASan/MSan.
-llvm_config.with_system_environment(
-    ['ASAN_SYMBOLIZER_PATH', 'MSAN_SYMBOLIZER_PATH'])
-
 config.substitutions.append(('%PATH%', config.environment['PATH']))
 
 
index 0eeec79..7bda584 100644 (file)
@@ -83,11 +83,6 @@ llvm_config.use_lld(required=('lld' in config.llvm_enabled_projects))
 if 'compiler-rt' in config.llvm_enabled_projects:
   config.available_features.add('compiler-rt')
 
-if config.llvm_use_sanitizer:
-    # Propagate path to symbolizer for ASan/MSan.
-    llvm_config.with_system_environment(
-        ['ASAN_SYMBOLIZER_PATH', 'MSAN_SYMBOLIZER_PATH'])
-
 # Check which debuggers are available:
 lldb_path = llvm_config.use_llvm_tool('lldb', search_env='LLDB')
 
index 3a5c40d..81e8dc0 100644 (file)
@@ -33,10 +33,19 @@ if 'TEMP' in os.environ:
 if 'HOME' in os.environ:
     config.environment['HOME'] = os.environ['HOME']
 
-# Propagate path to symbolizer for ASan/MSan.
-for symbolizer in ['ASAN_SYMBOLIZER_PATH', 'MSAN_SYMBOLIZER_PATH']:
-    if symbolizer in os.environ:
-        config.environment[symbolizer] = os.environ[symbolizer]
+# Propagate sanitizer options.
+for var in [
+    'ASAN_SYMBOLIZER_PATH',
+    'MSAN_SYMBOLIZER_PATH',
+    'TSAN_SYMBOLIZER_PATH',
+    'UBSAN_SYMBOLIZER_PATH',
+    'ASAN_OPTIONS',
+    'MSAN_OPTIONS',
+    'TSAN_OPTIONS',
+    'UBSAN_OPTIONS',
+]:
+    if var in os.environ:
+        config.environment[var] = os.environ[var]
 
 # Win32 seeks DLLs along %PATH%.
 if sys.platform in ['win32', 'cygwin'] and os.path.isdir(config.shlibdir):
index 7227c92..b6fb8aa 100644 (file)
@@ -40,7 +40,7 @@ llvm_config.with_environment('PATH', config.llvm_tools_dir, append_path=True)
 
 # Propagate some variables from the host environment.
 llvm_config.with_system_environment(
-    ['HOME', 'INCLUDE', 'LIB', 'TMP', 'TEMP', 'ASAN_SYMBOLIZER_PATH', 'MSAN_SYMBOLIZER_PATH'])
+    ['HOME', 'INCLUDE', 'LIB', 'TMP', 'TEMP'])
 
 
 # Set up OCAMLPATH to include newly built OCaml libraries.
index a8e73ce..b653161 100644 (file)
@@ -56,6 +56,17 @@ class LLVMConfig(object):
         if not self.use_lit_shell:
             features.add('shell')
 
+        self.with_system_environment([
+            'ASAN_SYMBOLIZER_PATH',
+            'MSAN_SYMBOLIZER_PATH',
+            'TSAN_SYMBOLIZER_PATH',
+            'UBSAN_SYMBOLIZER_PATH'
+            'ASAN_OPTIONS',
+            'MSAN_OPTIONS',
+            'TSAN_OPTIONS',
+            'UBSAN_OPTIONS',
+        ])
+
         # Running on Darwin OS
         if platform.system() == 'Darwin':
             # FIXME: lld uses the first, other projects use the second.
index d645971..bf77dcb 100644 (file)
@@ -33,7 +33,16 @@ if 'TEMP' in os.environ:
 if 'HOME' in os.environ:
     config.environment['HOME'] = os.environ['HOME']
 
-# Propagate path to symbolizer for ASan/MSan.
-for symbolizer in ['ASAN_SYMBOLIZER_PATH', 'MSAN_SYMBOLIZER_PATH']:
-    if symbolizer in os.environ:
-        config.environment[symbolizer] = os.environ[symbolizer]
+# Propagate sanitizer options.
+for var in [
+    'ASAN_SYMBOLIZER_PATH',
+    'MSAN_SYMBOLIZER_PATH',
+    'TSAN_SYMBOLIZER_PATH',
+    'UBSAN_SYMBOLIZER_PATH',
+    'ASAN_OPTIONS',
+    'MSAN_OPTIONS',
+    'TSAN_OPTIONS',
+    'UBSAN_OPTIONS',
+]:
+    if var in os.environ:
+        config.environment[var] = os.environ[var]
index eca3aae..4763c45 100644 (file)
@@ -32,10 +32,19 @@ if 'TMP' in os.environ:
 if 'TEMP' in os.environ:
     config.environment['TEMP'] = os.environ['TEMP']
 
-# Propagate path to symbolizer for ASan/MSan.
-for symbolizer in ['ASAN_SYMBOLIZER_PATH', 'MSAN_SYMBOLIZER_PATH']:
-    if symbolizer in os.environ:
-        config.environment[symbolizer] = os.environ[symbolizer]
+# Propagate sanitizer options.
+for var in [
+    'ASAN_SYMBOLIZER_PATH',
+    'MSAN_SYMBOLIZER_PATH',
+    'TSAN_SYMBOLIZER_PATH',
+    'UBSAN_SYMBOLIZER_PATH',
+    'ASAN_OPTIONS',
+    'MSAN_OPTIONS',
+    'TSAN_OPTIONS',
+    'UBSAN_OPTIONS',
+]:
+    if var in os.environ:
+        config.environment[var] = os.environ[var]
 
 if platform.system() == 'Darwin':
     shlibpath_var = 'DYLD_LIBRARY_PATH'