Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(55)

Unified Diff: testing/test_env.py

Issue 2938383004: Make the linux_chromium_cfi_rel_ng trybot more useful. (Closed)
Patch Set: Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | tools/mb/mb.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: testing/test_env.py
diff --git a/testing/test_env.py b/testing/test_env.py
index 2e446e7e5218a33b199aa2ee4aa8c04180e62351..284185d56379447baa27e70fdbd1307bc628b8a3 100755
--- a/testing/test_env.py
+++ b/testing/test_env.py
@@ -52,7 +52,7 @@ def fix_python_path(cmd):
return out
-def get_sanitizer_env(cmd, asan, lsan, msan, tsan):
+def get_sanitizer_env(cmd, asan, lsan, msan, tsan, cfi_diag):
"""Returns the envirnoment flags needed for sanitizer tools."""
extra_env = {}
@@ -73,7 +73,7 @@ def get_sanitizer_env(cmd, asan, lsan, msan, tsan):
# fact, it needs symbolization to be able to apply suppressions.
symbolization_options = ['symbolize=1',
'external_symbolizer_path=%s' % symbolizer_path]
- elif (asan or msan) and sys.platform not in ['win32', 'cygwin']:
+ elif (asan or msan or cfi_diag) and sys.platform not in ['win32', 'cygwin']:
# ASan uses a script for offline symbolization, except on Windows.
# Important note: when running ASan with leak detection enabled, we must use
# the LSan symbolization options above.
@@ -120,6 +120,11 @@ def get_sanitizer_env(cmd, asan, lsan, msan, tsan):
tsan_options = symbolization_options[:]
extra_env['TSAN_OPTIONS'] = ' '.join(tsan_options)
+ # CFI uses the UBSan runtime to provide diagnostics.
+ if cfi_diag:
+ ubsan_options = symbolization_options[:] + ['print_stacktrace=1']
+ extra_env['UBSAN_OPTIONS'] = ' '.join(ubsan_options)
+
return extra_env
@@ -185,16 +190,17 @@ def run_executable(cmd, env):
lsan = '--lsan=1' in cmd
msan = '--msan=1' in cmd
tsan = '--tsan=1' in cmd
+ cfi_diag = '--cfi-diag=1' in cmd
if sys.platform in ['win32', 'cygwin']:
# Symbolization works in-process on Windows even when sandboxed.
use_symbolization_script = False
else:
# LSan doesn't support sandboxing yet, so we use the in-process symbolizer.
# Note that ASan and MSan can work together with LSan.
- use_symbolization_script = (asan or msan) and not lsan
+ use_symbolization_script = (asan or msan or cfi_diag) and not lsan
- if asan or lsan or msan or tsan:
- extra_env.update(get_sanitizer_env(cmd, asan, lsan, msan, tsan))
+ if asan or lsan or msan or tsan or cfi_diag:
+ extra_env.update(get_sanitizer_env(cmd, asan, lsan, msan, tsan, cfi_diag))
if lsan or tsan:
# LSan and TSan are not sandbox-friendly.
« no previous file with comments | « no previous file | tools/mb/mb.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698