Skip to content

Commit d33c362

Browse files
committed
[lit] Fix setup of sanitizer environment
Not all options were propageted into tests. Reviewed By: ychen Differential Revision: https://reviews.llvm.org/D122869
1 parent 0e02bf6 commit d33c362

File tree

8 files changed

+64
-26
lines changed

8 files changed

+64
-26
lines changed

clang/test/Unit/lit.cfg.py

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,19 @@
3030
if 'TEMP' in os.environ:
3131
config.environment['TEMP'] = os.environ['TEMP']
3232

33-
# Propagate path to symbolizer for ASan/MSan.
34-
for symbolizer in ['ASAN_SYMBOLIZER_PATH', 'MSAN_SYMBOLIZER_PATH']:
35-
if symbolizer in os.environ:
36-
config.environment[symbolizer] = os.environ[symbolizer]
33+
# Propagate sanitizer options.
34+
for var in [
35+
'ASAN_SYMBOLIZER_PATH',
36+
'MSAN_SYMBOLIZER_PATH',
37+
'TSAN_SYMBOLIZER_PATH',
38+
'UBSAN_SYMBOLIZER_PATH',
39+
'ASAN_OPTIONS',
40+
'MSAN_OPTIONS',
41+
'TSAN_OPTIONS',
42+
'UBSAN_OPTIONS',
43+
]:
44+
if var in os.environ:
45+
config.environment[var] = os.environ[var]
3746

3847
def find_shlibpath_var():
3948
if platform.system() in ['Linux', 'FreeBSD', 'NetBSD', 'SunOS']:

clang/test/lit.cfg.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,6 @@
4949
config.substitutions.append(
5050
('%target_triple', config.target_triple))
5151

52-
# Propagate path to symbolizer for ASan/MSan.
53-
llvm_config.with_system_environment(
54-
['ASAN_SYMBOLIZER_PATH', 'MSAN_SYMBOLIZER_PATH'])
55-
5652
config.substitutions.append(('%PATH%', config.environment['PATH']))
5753

5854

cross-project-tests/lit.cfg.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -83,11 +83,6 @@ def get_required_attr(config, attr_name):
8383
if 'compiler-rt' in config.llvm_enabled_projects:
8484
config.available_features.add('compiler-rt')
8585

86-
if config.llvm_use_sanitizer:
87-
# Propagate path to symbolizer for ASan/MSan.
88-
llvm_config.with_system_environment(
89-
['ASAN_SYMBOLIZER_PATH', 'MSAN_SYMBOLIZER_PATH'])
90-
9186
# Check which debuggers are available:
9287
lldb_path = llvm_config.use_llvm_tool('lldb', search_env='LLDB')
9388

llvm/test/Unit/lit.cfg.py

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,19 @@
3333
if 'HOME' in os.environ:
3434
config.environment['HOME'] = os.environ['HOME']
3535

36-
# Propagate path to symbolizer for ASan/MSan.
37-
for symbolizer in ['ASAN_SYMBOLIZER_PATH', 'MSAN_SYMBOLIZER_PATH']:
38-
if symbolizer in os.environ:
39-
config.environment[symbolizer] = os.environ[symbolizer]
36+
# Propagate sanitizer options.
37+
for var in [
38+
'ASAN_SYMBOLIZER_PATH',
39+
'MSAN_SYMBOLIZER_PATH',
40+
'TSAN_SYMBOLIZER_PATH',
41+
'UBSAN_SYMBOLIZER_PATH',
42+
'ASAN_OPTIONS',
43+
'MSAN_OPTIONS',
44+
'TSAN_OPTIONS',
45+
'UBSAN_OPTIONS',
46+
]:
47+
if var in os.environ:
48+
config.environment[var] = os.environ[var]
4049

4150
# Win32 seeks DLLs along %PATH%.
4251
if sys.platform in ['win32', 'cygwin'] and os.path.isdir(config.shlibdir):

llvm/test/lit.cfg.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040

4141
# Propagate some variables from the host environment.
4242
llvm_config.with_system_environment(
43-
['HOME', 'INCLUDE', 'LIB', 'TMP', 'TEMP', 'ASAN_SYMBOLIZER_PATH', 'MSAN_SYMBOLIZER_PATH'])
43+
['HOME', 'INCLUDE', 'LIB', 'TMP', 'TEMP'])
4444

4545

4646
# Set up OCAMLPATH to include newly built OCaml libraries.

llvm/utils/lit/lit/llvm/config.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,17 @@ def __init__(self, lit_config, config):
5656
if not self.use_lit_shell:
5757
features.add('shell')
5858

59+
self.with_system_environment([
60+
'ASAN_SYMBOLIZER_PATH',
61+
'MSAN_SYMBOLIZER_PATH',
62+
'TSAN_SYMBOLIZER_PATH',
63+
'UBSAN_SYMBOLIZER_PATH'
64+
'ASAN_OPTIONS',
65+
'MSAN_OPTIONS',
66+
'TSAN_OPTIONS',
67+
'UBSAN_OPTIONS',
68+
])
69+
5970
# Running on Darwin OS
6071
if platform.system() == 'Darwin':
6172
# FIXME: lld uses the first, other projects use the second.

mlir/test/Unit/lit.cfg.py

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,16 @@
3333
if 'HOME' in os.environ:
3434
config.environment['HOME'] = os.environ['HOME']
3535

36-
# Propagate path to symbolizer for ASan/MSan.
37-
for symbolizer in ['ASAN_SYMBOLIZER_PATH', 'MSAN_SYMBOLIZER_PATH']:
38-
if symbolizer in os.environ:
39-
config.environment[symbolizer] = os.environ[symbolizer]
36+
# Propagate sanitizer options.
37+
for var in [
38+
'ASAN_SYMBOLIZER_PATH',
39+
'MSAN_SYMBOLIZER_PATH',
40+
'TSAN_SYMBOLIZER_PATH',
41+
'UBSAN_SYMBOLIZER_PATH',
42+
'ASAN_OPTIONS',
43+
'MSAN_OPTIONS',
44+
'TSAN_OPTIONS',
45+
'UBSAN_OPTIONS',
46+
]:
47+
if var in os.environ:
48+
config.environment[var] = os.environ[var]

polly/test/Unit/lit.cfg

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,19 @@ if 'TMP' in os.environ:
3232
if 'TEMP' in os.environ:
3333
config.environment['TEMP'] = os.environ['TEMP']
3434

35-
# Propagate path to symbolizer for ASan/MSan.
36-
for symbolizer in ['ASAN_SYMBOLIZER_PATH', 'MSAN_SYMBOLIZER_PATH']:
37-
if symbolizer in os.environ:
38-
config.environment[symbolizer] = os.environ[symbolizer]
35+
# Propagate sanitizer options.
36+
for var in [
37+
'ASAN_SYMBOLIZER_PATH',
38+
'MSAN_SYMBOLIZER_PATH',
39+
'TSAN_SYMBOLIZER_PATH',
40+
'UBSAN_SYMBOLIZER_PATH',
41+
'ASAN_OPTIONS',
42+
'MSAN_OPTIONS',
43+
'TSAN_OPTIONS',
44+
'UBSAN_OPTIONS',
45+
]:
46+
if var in os.environ:
47+
config.environment[var] = os.environ[var]
3948

4049
if platform.system() == 'Darwin':
4150
shlibpath_var = 'DYLD_LIBRARY_PATH'

0 commit comments

Comments
 (0)