Index: tools/mb/mb.py |
diff --git a/tools/mb/mb.py b/tools/mb/mb.py |
index 19926c9803e4a95b4fd9cd123db8eaa32ebbc2b4..9008a34f58d15795ca1b47afc11dc80b682b9953 100755 |
--- a/tools/mb/mb.py |
+++ b/tools/mb/mb.py |
@@ -1061,12 +1061,14 @@ class MetaBuildWrapper(object): |
def GetIsolateCommand(self, target, vals): |
android = 'target_os="android"' in vals['gn_args'] |
+ is_linux = self.platform == 'linux2' and not android |
+ |
+ # Memcheck is only supported for linux. Ignore in other platforms. |
+ memcheck = is_linux and 'rtc_use_memcheck=true' in vals['gn_args'] |
# This needs to mirror the settings in //build/config/ui.gni: |
# use_x11 = is_linux && !use_ozone. |
- use_x11 = (self.platform == 'linux2' and |
- not android and |
- not 'use_ozone=true' in vals['gn_args']) |
+ use_x11 = is_linux and not 'use_ozone=true' in vals['gn_args'] |
kjellander_webrtc
2016/11/21 08:33:59
Ouch, so there's logic in here that will change th
ehmaldonado_webrtc
2016/11/21 10:51:55
No, this doesn't override the logic in the GN vari
ehmaldonado_webrtc
2016/11/21 11:02:07
So, MB only has access to the GN flags that we pas
|
asan = 'is_asan=true' in vals['gn_args'] |
msan = 'is_msan=true' in vals['gn_args'] |
@@ -1081,6 +1083,22 @@ class MetaBuildWrapper(object): |
cmdline = [] |
extra_files = [] |
+ |
+ gtest_cmdline = [ |
+ 'python', |
+ '../../third_party/gtest-parallel/gtest-parallel', |
+ ] |
+ memcheck_cmdline = [ |
+ 'bash', |
+ '../../tools/valgrind-webrtc/webrtc_tests.sh', |
+ '--tool', |
+ 'memcheck', |
+ '--target', |
+ 'Release', |
+ '--build-dir', |
+ '..', |
+ '--test', |
+ ] |
common_cmdline = [ |
executable_prefix + str(executable) + executable_suffix, |
'--', |
@@ -1121,26 +1139,33 @@ class MetaBuildWrapper(object): |
cmdline = [ |
'../../testing/xvfb.py', |
'.', |
- 'python', |
- '../../third_party/gtest-parallel/gtest-parallel', |
- ] + common_cmdline |
+ ] |
+ if memcheck: |
kjellander_webrtc
2016/11/21 08:33:58
There must be a way to avoid duplicating this sect
|
+ cmdline += memcheck_cmdline |
+ else: |
+ cmdline += gtest_cmdline |
+ cmdline += common_cmdline |
elif test_type in ('windowed_test_launcher', 'console_test_launcher'): |
extra_files = [ |
'../../testing/test_env.py', |
'../../third_party/gtest-parallel/gtest-parallel', |
] |
- cmdline = [ |
- '../../testing/test_env.py', |
- 'python', |
- '../../third_party/gtest-parallel/gtest-parallel', |
- ] + common_cmdline |
+ cmdline = [ '../../testing/test_env.py' ] |
+ if memcheck: |
kjellander_webrtc
2016/11/21 08:33:58
You could write this on just one line:
cmdline +=
|
+ cmdline += memcheck_cmdline |
+ else: |
+ cmdline += gtest_cmdline |
+ cmdline += common_cmdline |
elif test_type == 'non_parallel_console_test_launcher': |
extra_files = [ |
'../../testing/test_env.py', |
] |
cmdline = [ |
'../../testing/test_env.py', |
- ] + common_cmdline |
+ ] |
+ if memcheck: |
+ cmdline += memcheck_cmdline |
+ cmdline += common_cmdline |
else: |
self.WriteFailureAndRaise('No command line for %s found (test type %s).' |
% (target, test_type), output_path=None) |