summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--base/base.isolate13
-rw-r--r--base/base_unittests.isolate4
-rw-r--r--build/android/pylib/utils/isolator.py4
-rw-r--r--build/isolate.gypi16
-rw-r--r--cc/cc_unittests.isolate6
-rw-r--r--chrome/browser_tests.isolate4
-rw-r--r--chrome/interactive_ui_tests.isolate4
-rw-r--r--chrome/unit_tests.isolate4
-rw-r--r--components/components_browsertests.isolate4
-rw-r--r--components/components_unittests.isolate6
-rw-r--r--content/content_browsertests.isolate4
-rw-r--r--content/content_unittests.isolate6
-rw-r--r--extensions/extensions_browsertests.isolate4
-rw-r--r--gpu/gpu_unittests.isolate6
-rw-r--r--media/media_unittests.isolate6
-rw-r--r--net/net_unittests.isolate2
-rwxr-xr-xtesting/test_env.py89
-rw-r--r--ui/app_list/app_list_unittests.isolate4
-rw-r--r--ui/base/ui_base_unittests.isolate4
-rw-r--r--ui/events/events_unittests.isolate4
-rw-r--r--ui/message_center/message_center_unittests.isolate4
-rw-r--r--ui/touch_selection/ui_touch_selection_unittests.isolate4
22 files changed, 159 insertions, 43 deletions
diff --git a/base/base.isolate b/base/base.isolate
index 165b6ef..5220887 100644
--- a/base/base.isolate
+++ b/base/base.isolate
@@ -9,13 +9,20 @@
'../third_party/icu/icu.isolate',
],
'conditions': [
- ['OS=="linux" and asan==1 and chromeos==0', {
+ ['use_custom_libcxx==1', {
'variables': {
'files': [
'<(PRODUCT_DIR)/lib/libc++.so',
],
},
}],
+ ['use_instrumented_libraries==1', {
+ 'variables': {
+ 'files': [
+ '<(PRODUCT_DIR)/instrumented_libraries/',
+ ],
+ },
+ }],
['OS=="mac" and asan==1', {
'variables': {
'files': [
@@ -30,7 +37,7 @@
],
},
}],
- ['OS=="linux" and asan==1', {
+ ['OS=="linux" and (asan==1 or lsan==1 or msan==1 or tsan==1)', {
'variables': {
'files': [
# For llvm-symbolizer.
@@ -38,7 +45,7 @@
],
},
}],
- ['asan==1', {
+ ['asan==1 or lsan==1 or msan==1 or tsan==1', {
'variables': {
'files': [
'../tools/valgrind/asan/',
diff --git a/base/base_unittests.isolate b/base/base_unittests.isolate
index f561d20..fca76d5 100644
--- a/base/base_unittests.isolate
+++ b/base/base_unittests.isolate
@@ -20,6 +20,8 @@
'--test-launcher-bot-mode',
'--asan=<(asan)',
'--lsan=<(lsan)',
+ '--msan=<(msan)',
+ '--tsan=<(tsan)',
],
'files': [
'../testing/xvfb.py',
@@ -51,6 +53,8 @@
'--test-launcher-bot-mode',
'--asan=<(asan)',
'--lsan=<(lsan)',
+ '--msan=<(msan)',
+ '--tsan=<(tsan)',
],
},
}],
diff --git a/build/android/pylib/utils/isolator.py b/build/android/pylib/utils/isolator.py
index afbee2a..845d093 100644
--- a/build/android/pylib/utils/isolator.py
+++ b/build/android/pylib/utils/isolator.py
@@ -33,8 +33,12 @@ def DefaultConfigVariables():
'fastbuild': '0',
'icu_use_data_file_flag': '1',
'lsan': '0',
+ 'msan': '0',
# TODO(maruel): This may not always be true.
'target_arch': 'arm',
+ 'tsan': '0',
+ 'use_custom_libcxx': '0',
+ 'use_instrumented_libraries': '0',
'use_openssl': '0',
'use_ozone': '0',
'v8_use_external_startup_data': '0',
diff --git a/build/isolate.gypi b/build/isolate.gypi
index e6d2f98..d7070fe 100644
--- a/build/isolate.gypi
+++ b/build/isolate.gypi
@@ -74,24 +74,28 @@
# the .isolate file but are not considered relative paths.
'--extra-variable', 'version_full=<(version_full)',
- '--config-variable', 'OS=<(OS)',
'--config-variable', 'CONFIGURATION_NAME=<(CONFIGURATION_NAME)',
+ '--config-variable', 'OS=<(OS)',
'--config-variable', 'asan=<(asan)',
'--config-variable', 'chromeos=<(chromeos)',
'--config-variable', 'component=<(component)',
+ '--config-variable', 'disable_nacl=<(disable_nacl)',
'--config-variable', 'fastbuild=<(fastbuild)',
+ '--config-variable', 'icu_use_data_file_flag=<(icu_use_data_file_flag)',
# TODO(kbr): move this to chrome_tests.gypi:gles2_conform_tests_run
# once support for user-defined config variables is added.
'--config-variable',
'internal_gles2_conform_tests=<(internal_gles2_conform_tests)',
- '--config-variable', 'icu_use_data_file_flag=<(icu_use_data_file_flag)',
- '--config-variable', 'v8_use_external_startup_data=<(v8_use_external_startup_data)',
- '--config-variable', 'lsan=<(lsan)',
'--config-variable', 'libpeer_target_type=<(libpeer_target_type)',
- '--config-variable', 'use_openssl=<(use_openssl)',
+ '--config-variable', 'lsan=<(lsan)',
+ '--config-variable', 'msan=<(msan)',
'--config-variable', 'target_arch=<(target_arch)',
+ '--config-variable', 'tsan=<(tsan)',
+ '--config-variable', 'use_custom_libcxx=<(use_custom_libcxx)',
+ '--config-variable', 'use_instrumented_libraries=<(use_instrumented_libraries)',
+ '--config-variable', 'use_openssl=<(use_openssl)',
'--config-variable', 'use_ozone=<(use_ozone)',
- '--config-variable', 'disable_nacl=<(disable_nacl)',
+ '--config-variable', 'v8_use_external_startup_data=<(v8_use_external_startup_data)',
],
'conditions': [
# Note: When gyp merges lists, it appends them to the old value.
diff --git a/cc/cc_unittests.isolate b/cc/cc_unittests.isolate
index 4e5ac92..5d652d9 100644
--- a/cc/cc_unittests.isolate
+++ b/cc/cc_unittests.isolate
@@ -22,6 +22,8 @@
'--test-launcher-bot-mode',
'--asan=<(asan)',
'--lsan=<(lsan)',
+ '--msan=<(msan)',
+ '--tsan=<(tsan)',
],
'files': [
'../testing/xvfb.py',
@@ -46,6 +48,8 @@
'--test-launcher-bot-mode',
'--asan=<(asan)',
'--lsan=<(lsan)',
+ '--msan=<(msan)',
+ '--tsan=<(tsan)',
],
'files': [
'<(PRODUCT_DIR)/ffmpegsumo.so',
@@ -62,6 +66,8 @@
'--test-launcher-bot-mode',
'--asan=<(asan)',
'--lsan=<(lsan)',
+ '--msan=<(msan)',
+ '--tsan=<(tsan)',
],
'files': [
'<(PRODUCT_DIR)/ffmpegsumo.dll',
diff --git a/chrome/browser_tests.isolate b/chrome/browser_tests.isolate
index eaf72eb..912fbca 100644
--- a/chrome/browser_tests.isolate
+++ b/chrome/browser_tests.isolate
@@ -12,6 +12,8 @@
'--test-launcher-bot-mode',
'--asan=<(asan)',
'--lsan=<(lsan)',
+ '--msan=<(msan)',
+ '--tsan=<(tsan)',
],
'files': [
'../testing/xvfb.py',
@@ -174,6 +176,8 @@
'--test-launcher-bot-mode',
'--asan=<(asan)',
'--lsan=<(lsan)',
+ '--msan=<(msan)',
+ '--tsan=<(tsan)',
],
},
}],
diff --git a/chrome/interactive_ui_tests.isolate b/chrome/interactive_ui_tests.isolate
index bef0495..d968a7d 100644
--- a/chrome/interactive_ui_tests.isolate
+++ b/chrome/interactive_ui_tests.isolate
@@ -12,6 +12,8 @@
'--test-launcher-bot-mode',
'--asan=<(asan)',
'--lsan=<(lsan)',
+ '--msan=<(msan)',
+ '--tsan=<(tsan)',
],
'files': [
'../testing/xvfb.py',
@@ -76,6 +78,8 @@
'--test-launcher-bot-mode',
'--asan=<(asan)',
'--lsan=<(lsan)',
+ '--msan=<(msan)',
+ '--tsan=<(tsan)',
],
},
}],
diff --git a/chrome/unit_tests.isolate b/chrome/unit_tests.isolate
index 446550b..a03f8a5 100644
--- a/chrome/unit_tests.isolate
+++ b/chrome/unit_tests.isolate
@@ -49,6 +49,8 @@
'--test-launcher-bot-mode',
'--asan=<(asan)',
'--lsan=<(lsan)',
+ '--msan=<(msan)',
+ '--tsan=<(tsan)',
],
'files': [
'../testing/xvfb.py',
@@ -102,6 +104,8 @@
'--test-launcher-bot-mode',
'--asan=<(asan)',
'--lsan=<(lsan)',
+ '--msan=<(msan)',
+ '--tsan=<(tsan)',
],
},
}],
diff --git a/components/components_browsertests.isolate b/components/components_browsertests.isolate
index cb5b41c..aaa6d190 100644
--- a/components/components_browsertests.isolate
+++ b/components/components_browsertests.isolate
@@ -28,6 +28,8 @@
'--test-launcher-bot-mode',
'--asan=<(asan)',
'--lsan=<(lsan)',
+ '--msan=<(msan)',
+ '--tsan=<(tsan)',
],
'files': [
'../testing/xvfb.py',
@@ -51,6 +53,8 @@
'--test-launcher-bot-mode',
'--asan=<(asan)',
'--lsan=<(lsan)',
+ '--msan=<(msan)',
+ '--tsan=<(tsan)',
],
},
}],
diff --git a/components/components_unittests.isolate b/components/components_unittests.isolate
index 84d0fd1..d94c567 100644
--- a/components/components_unittests.isolate
+++ b/components/components_unittests.isolate
@@ -29,6 +29,8 @@
'--test-launcher-bot-mode',
'--asan=<(asan)',
'--lsan=<(lsan)',
+ '--msan=<(msan)',
+ '--tsan=<(tsan)',
],
'files': [
'../testing/xvfb.py',
@@ -47,6 +49,8 @@
'--test-launcher-bot-mode',
'--asan=<(asan)',
'--lsan=<(lsan)',
+ '--msan=<(msan)',
+ '--tsan=<(tsan)',
],
'files': [
'<(PRODUCT_DIR)/ffmpegsumo.so',
@@ -63,6 +67,8 @@
'--test-launcher-bot-mode',
'--asan=<(asan)',
'--lsan=<(lsan)',
+ '--msan=<(msan)',
+ '--tsan=<(tsan)',
],
'files': [
'../chrome/test/data/policy/',
diff --git a/content/content_browsertests.isolate b/content/content_browsertests.isolate
index 53a53fc..9701675 100644
--- a/content/content_browsertests.isolate
+++ b/content/content_browsertests.isolate
@@ -42,6 +42,8 @@
'--test-launcher-bot-mode',
'--asan=<(asan)',
'--lsan=<(lsan)',
+ '--msan=<(msan)',
+ '--tsan=<(tsan)',
],
'files': [
'../testing/xvfb.py',
@@ -92,6 +94,8 @@
'--test-launcher-bot-mode',
'--asan=<(asan)',
'--lsan=<(lsan)',
+ '--msan=<(msan)',
+ '--tsan=<(tsan)',
],
},
}],
diff --git a/content/content_unittests.isolate b/content/content_unittests.isolate
index 550e755..b72dcee 100644
--- a/content/content_unittests.isolate
+++ b/content/content_unittests.isolate
@@ -44,6 +44,8 @@
'--test-launcher-bot-mode',
'--asan=<(asan)',
'--lsan=<(lsan)',
+ '--msan=<(msan)',
+ '--tsan=<(tsan)',
],
'files': [
'../testing/xvfb.py',
@@ -68,6 +70,8 @@
'--test-launcher-bot-mode',
'--asan=<(asan)',
'--lsan=<(lsan)',
+ '--msan=<(msan)',
+ '--tsan=<(tsan)',
],
'files': [
'<(PRODUCT_DIR)/ffmpegsumo.so',
@@ -84,6 +88,8 @@
'--test-launcher-bot-mode',
'--asan=<(asan)',
'--lsan=<(lsan)',
+ '--msan=<(msan)',
+ '--tsan=<(tsan)',
],
'files': [
'<(PRODUCT_DIR)/ffmpegsumo.dll',
diff --git a/extensions/extensions_browsertests.isolate b/extensions/extensions_browsertests.isolate
index f0381c0..6cae91b 100644
--- a/extensions/extensions_browsertests.isolate
+++ b/extensions/extensions_browsertests.isolate
@@ -28,6 +28,8 @@
'--test-launcher-bot-mode',
'--asan=<(asan)',
'--lsan=<(lsan)',
+ '--msan=<(msan)',
+ '--tsan=<(tsan)',
],
'files': [
'../testing/xvfb.py',
@@ -51,6 +53,8 @@
'--test-launcher-bot-mode',
'--asan=<(asan)',
'--lsan=<(lsan)',
+ '--msan=<(msan)',
+ '--tsan=<(tsan)',
],
},
}],
diff --git a/gpu/gpu_unittests.isolate b/gpu/gpu_unittests.isolate
index 3380606..48fb1c5 100644
--- a/gpu/gpu_unittests.isolate
+++ b/gpu/gpu_unittests.isolate
@@ -21,6 +21,8 @@
'--test-launcher-bot-mode',
'--asan=<(asan)',
'--lsan=<(lsan)',
+ '--msan=<(msan)',
+ '--tsan=<(tsan)',
],
'files': [
'../testing/xvfb.py',
@@ -37,6 +39,8 @@
'--test-launcher-bot-mode',
'--asan=<(asan)',
'--lsan=<(lsan)',
+ '--msan=<(msan)',
+ '--tsan=<(tsan)',
],
},
}],
@@ -49,6 +53,8 @@
'--test-launcher-bot-mode',
'--asan=<(asan)',
'--lsan=<(lsan)',
+ '--msan=<(msan)',
+ '--tsan=<(tsan)',
],
},
}],
diff --git a/media/media_unittests.isolate b/media/media_unittests.isolate
index cea8c33..669f3fc 100644
--- a/media/media_unittests.isolate
+++ b/media/media_unittests.isolate
@@ -31,6 +31,8 @@
'--test-launcher-bot-mode',
'--asan=<(asan)',
'--lsan=<(lsan)',
+ '--msan=<(msan)',
+ '--tsan=<(tsan)',
],
'files': [
'../testing/xvfb.py',
@@ -48,6 +50,8 @@
'--test-launcher-bot-mode',
'--asan=<(asan)',
'--lsan=<(lsan)',
+ '--msan=<(msan)',
+ '--tsan=<(tsan)',
],
'files': [
'<(PRODUCT_DIR)/ffmpegsumo.so',
@@ -63,6 +67,8 @@
'--test-launcher-bot-mode',
'--asan=<(asan)',
'--lsan=<(lsan)',
+ '--msan=<(msan)',
+ '--tsan=<(tsan)',
],
'files': [
'<(PRODUCT_DIR)/ffmpegsumo.dll',
diff --git a/net/net_unittests.isolate b/net/net_unittests.isolate
index e062a7d..ec515fb 100644
--- a/net/net_unittests.isolate
+++ b/net/net_unittests.isolate
@@ -19,6 +19,8 @@
'--test-launcher-bot-mode',
'--asan=<(asan)',
'--lsan=<(lsan)',
+ '--msan=<(msan)',
+ '--tsan=<(tsan)',
],
'files': [
'../testing/test_env.py',
diff --git a/testing/test_env.py b/testing/test_env.py
index 0743f34..48cbac9 100755
--- a/testing/test_env.py
+++ b/testing/test_env.py
@@ -35,7 +35,10 @@ def get_sandbox_env(env):
def trim_cmd(cmd):
"""Removes internal flags from cmd since they're just used to communicate from
the host machine to this script running on the swarm slaves."""
- internal_flags = frozenset(['--asan=0', '--asan=1', '--lsan=0', '--lsan=1'])
+ sanitizers = ['asan', 'lsan', 'msan', 'tsan']
+ internal_flags = frozenset('--%s=%d' % (name, value)
+ for name in sanitizers
+ for value in [0, 1])
return [i for i in cmd if i not in internal_flags]
@@ -49,12 +52,12 @@ def fix_python_path(cmd):
return out
-def get_asan_env(cmd, lsan):
- """Returns the envirnoment flags needed for ASan and LSan."""
+def get_sanitizer_env(cmd, asan, lsan, msan, tsan):
+ """Returns the envirnoment flags needed for sanitizer tools."""
extra_env = {}
- # Instruct GTK to use malloc while running ASan or LSan tests.
+ # Instruct GTK to use malloc while running sanitizer-instrumented tests.
extra_env['G_SLICE'] = 'always-malloc'
extra_env['NSS_DISABLE_ARENA_FREE_LIST'] = '1'
@@ -65,25 +68,12 @@ def get_asan_env(cmd, lsan):
symbolizer_path = os.path.abspath(os.path.join(ROOT_DIR, 'third_party',
'llvm-build', 'Release+Asserts', 'bin', 'llvm-symbolizer'))
- asan_options = []
- if lsan:
- asan_options.append('detect_leaks=1')
- if sys.platform == 'linux2':
- # Use the debug version of libstdc++ under LSan. If we don't, there will
- # be a lot of incomplete stack traces in the reports.
- extra_env['LD_LIBRARY_PATH'] = '/usr/lib/x86_64-linux-gnu/debug:'
-
+ if lsan or tsan:
# LSan is not sandbox-compatible, so we can use online symbolization. In
# fact, it needs symbolization to be able to apply suppressions.
symbolization_options = ['symbolize=1',
'external_symbolizer_path=%s' % symbolizer_path]
-
- suppressions_file = os.path.join(ROOT_DIR, 'tools', 'lsan',
- 'suppressions.txt')
- lsan_options = ['suppressions=%s' % suppressions_file,
- 'print_suppressions=1']
- extra_env['LSAN_OPTIONS'] = ' '.join(lsan_options)
- else:
+ elif asan or msan:
# ASan uses a script for offline symbolization.
# Important note: when running ASan with leak detection enabled, we must use
# the LSan symbolization options above.
@@ -91,16 +81,45 @@ def get_asan_env(cmd, lsan):
# Set the path to llvm-symbolizer to be used by asan_symbolize.py
extra_env['LLVM_SYMBOLIZER_PATH'] = symbolizer_path
- asan_options.extend(symbolization_options)
+ if asan:
+ asan_options = symbolization_options[:]
+ if lsan:
+ asan_options.append('detect_leaks=1')
- extra_env['ASAN_OPTIONS'] = ' '.join(asan_options)
+ extra_env['ASAN_OPTIONS'] = ' '.join(asan_options)
- if sys.platform == 'darwin':
- isolate_output_dir = os.path.abspath(os.path.dirname(cmd[0]))
- # This is needed because the test binary has @executable_path embedded in it
- # it that the OS tries to resolve to the cache directory and not the mapped
- # directory.
- extra_env['DYLD_LIBRARY_PATH'] = str(isolate_output_dir)
+ if sys.platform == 'darwin':
+ isolate_output_dir = os.path.abspath(os.path.dirname(cmd[0]))
+ # This is needed because the test binary has @executable_path embedded in
+ # it that the OS tries to resolve to the cache directory and not the
+ # mapped directory.
+ extra_env['DYLD_LIBRARY_PATH'] = str(isolate_output_dir)
+
+ if lsan:
+ if asan or msan:
+ lsan_options = []
+ else:
+ lsan_options = symbolization_options[:]
+ if sys.platform == 'linux2':
+ # Use the debug version of libstdc++ under LSan. If we don't, there will
+ # be a lot of incomplete stack traces in the reports.
+ extra_env['LD_LIBRARY_PATH'] = '/usr/lib/x86_64-linux-gnu/debug:'
+
+ suppressions_file = os.path.join(ROOT_DIR, 'tools', 'lsan',
+ 'suppressions.txt')
+ lsan_options += ['suppressions=%s' % suppressions_file,
+ 'print_suppressions=1']
+ extra_env['LSAN_OPTIONS'] = ' '.join(lsan_options)
+
+ if msan:
+ msan_options = symbolization_options[:]
+ if lsan:
+ msan_options.append('detect_leaks=1')
+ extra_env['MSAN_OPTIONS'] = ' '.join(msan_options)
+
+ if tsan:
+ tsan_options = symbolization_options[:]
+ extra_env['TSAN_OPTIONS'] = ' '.join(tsan_options)
return extra_env
@@ -159,15 +178,17 @@ def run_executable(cmd, env):
# Copy logic from tools/build/scripts/slave/runtest.py.
asan = '--asan=1' in cmd
lsan = '--lsan=1' in cmd
- use_symbolization_script = asan and not lsan
+ msan = '--msan=1' in cmd
+ tsan = '--tsan=1' in cmd
+ use_symbolization_script = (asan or msan) and not lsan
- if asan:
- extra_env.update(get_asan_env(cmd, lsan))
- # ASan is not yet sandbox-friendly on Windows (http://crbug.com/382867).
- if sys.platform == 'win32':
+ if asan or lsan or msan or tsan:
+ extra_env.update(get_sanitizer_env(cmd, asan, lsan, msan, tsan))
+
+ if lsan or tsan or (asan and sys.platform == 'win32'):
+ # ASan is not yet sandbox-friendly on Windows (http://crbug.com/382867).
+ # LSan and TSan are not sandbox-friendly.
cmd.append('--no-sandbox')
- if lsan:
- cmd.append('--no-sandbox')
cmd = trim_cmd(cmd)
diff --git a/ui/app_list/app_list_unittests.isolate b/ui/app_list/app_list_unittests.isolate
index 4ceb64d..b657686 100644
--- a/ui/app_list/app_list_unittests.isolate
+++ b/ui/app_list/app_list_unittests.isolate
@@ -22,6 +22,8 @@
'--test-launcher-bot-mode',
'--asan=<(asan)',
'--lsan=<(lsan)',
+ '--msan=<(msan)',
+ '--tsan=<(tsan)',
],
'files': [
'../../testing/xvfb.py',
@@ -59,6 +61,8 @@
'--test-launcher-bot-mode',
'--asan=<(asan)',
'--lsan=<(lsan)',
+ '--msan=<(msan)',
+ '--tsan=<(tsan)',
],
},
}],
diff --git a/ui/base/ui_base_unittests.isolate b/ui/base/ui_base_unittests.isolate
index 16f6dd5..7bc59c4 100644
--- a/ui/base/ui_base_unittests.isolate
+++ b/ui/base/ui_base_unittests.isolate
@@ -31,6 +31,8 @@
'--test-launcher-bot-mode',
'--asan=<(asan)',
'--lsan=<(lsan)',
+ '--msan=<(msan)',
+ '--tsan=<(tsan)',
],
'files': [
'../../testing/xvfb.py',
@@ -69,6 +71,8 @@
'--test-launcher-bot-mode',
'--asan=<(asan)',
'--lsan=<(lsan)',
+ '--msan=<(msan)',
+ '--tsan=<(tsan)',
],
},
}],
diff --git a/ui/events/events_unittests.isolate b/ui/events/events_unittests.isolate
index 024de78..c2418cb 100644
--- a/ui/events/events_unittests.isolate
+++ b/ui/events/events_unittests.isolate
@@ -21,6 +21,8 @@
'--test-launcher-bot-mode',
'--asan=<(asan)',
'--lsan=<(lsan)',
+ '--msan=<(msan)',
+ '--tsan=<(tsan)',
],
'files': [
'../../testing/xvfb.py',
@@ -58,6 +60,8 @@
'--test-launcher-bot-mode',
'--asan=<(asan)',
'--lsan=<(lsan)',
+ '--msan=<(msan)',
+ '--tsan=<(tsan)',
],
},
}],
diff --git a/ui/message_center/message_center_unittests.isolate b/ui/message_center/message_center_unittests.isolate
index 7ad8cc3c..74c1057 100644
--- a/ui/message_center/message_center_unittests.isolate
+++ b/ui/message_center/message_center_unittests.isolate
@@ -22,6 +22,8 @@
'--test-launcher-bot-mode',
'--asan=<(asan)',
'--lsan=<(lsan)',
+ '--msan=<(msan)',
+ '--tsan=<(tsan)',
],
'files': [
'../../testing/xvfb.py',
@@ -59,6 +61,8 @@
'--test-launcher-bot-mode',
'--asan=<(asan)',
'--lsan=<(lsan)',
+ '--msan=<(msan)',
+ '--tsan=<(tsan)',
],
},
}],
diff --git a/ui/touch_selection/ui_touch_selection_unittests.isolate b/ui/touch_selection/ui_touch_selection_unittests.isolate
index 64e0e54..691e0a6 100644
--- a/ui/touch_selection/ui_touch_selection_unittests.isolate
+++ b/ui/touch_selection/ui_touch_selection_unittests.isolate
@@ -21,6 +21,8 @@
'--test-launcher-bot-mode',
'--asan=<(asan)',
'--lsan=<(lsan)',
+ '--msan=<(msan)',
+ '--tsan=<(tsan)',
],
'files': [
'../../testing/xvfb.py',
@@ -44,6 +46,8 @@
'--test-launcher-bot-mode',
'--asan=<(asan)',
'--lsan=<(lsan)',
+ '--msan=<(msan)',
+ '--tsan=<(tsan)',
],
},
}],