MB: Add a way to run tests on swarming without using gtest-parallel.
Adds a new test_type 'raw' to run tests on swarming without wrapping it on gtest-parallel. This will be used to run webrtc_perf_tests directly. Bug: chromium:755660 Change-Id: I8558faadf242d1db1ad3e13083941886c92b1bd9 Reviewed-on: https://webrtc-review.googlesource.com/49360 Reviewed-by: Patrik Höglund <phoglund@webrtc.org> Commit-Queue: Edward Lemur <ehmaldonado@webrtc.org> Cr-Commit-Position: refs/heads/master@{#21962}
This commit is contained in:
parent
8e545eee1e
commit
2b67f5c65f
@ -1042,7 +1042,7 @@ class MetaBuildWrapper(object):
|
||||
self.WriteFailureAndRaise('We should not be isolating %s.' % target,
|
||||
output_path=None)
|
||||
if test_type not in ('console_test_launcher', 'windowed_test_launcher',
|
||||
'non_parallel_console_test_launcher',
|
||||
'non_parallel_console_test_launcher', 'raw',
|
||||
'additional_compile_target', 'junit_test', 'script'):
|
||||
self.WriteFailureAndRaise('No command line for %s found (test type %s).'
|
||||
% (target, test_type), output_path=None)
|
||||
@ -1071,21 +1071,23 @@ class MetaBuildWrapper(object):
|
||||
'../../testing/xvfb.py',
|
||||
]
|
||||
|
||||
# Memcheck is only supported for linux. Ignore in other platforms.
|
||||
memcheck = is_linux and 'rtc_use_memcheck=true' in vals['gn_args']
|
||||
memcheck_cmdline = [
|
||||
'bash',
|
||||
'../../tools_webrtc/valgrind/webrtc_tests.sh',
|
||||
'--tool',
|
||||
'memcheck',
|
||||
'--target',
|
||||
'Release',
|
||||
'--build-dir',
|
||||
'..',
|
||||
'--test',
|
||||
]
|
||||
cmdline = (['../../testing/xvfb.py'] if xvfb else
|
||||
['../../testing/test_env.py'])
|
||||
|
||||
if not memcheck:
|
||||
# Memcheck is only supported for linux. Ignore in other platforms.
|
||||
if is_linux and 'rtc_use_memcheck=true' in vals['gn_args']:
|
||||
cmdline += [
|
||||
'bash',
|
||||
'../../tools_webrtc/valgrind/webrtc_tests.sh',
|
||||
'--tool',
|
||||
'memcheck',
|
||||
'--target',
|
||||
'Release',
|
||||
'--build-dir',
|
||||
'..',
|
||||
'--test',
|
||||
]
|
||||
elif test_type != 'raw':
|
||||
extra_files += [
|
||||
'../../third_party/gtest-parallel/gtest-parallel',
|
||||
'../../third_party/gtest-parallel/gtest_parallel.py',
|
||||
@ -1094,7 +1096,7 @@ class MetaBuildWrapper(object):
|
||||
sep = '\\' if self.platform == 'win32' else '/'
|
||||
output_dir = '${ISOLATED_OUTDIR}' + sep + 'test_logs'
|
||||
timeout = isolate_map[target].get('timeout', 900)
|
||||
gtest_parallel_wrapper = [
|
||||
cmdline += [
|
||||
'../../tools_webrtc/gtest-parallel-wrapper.py',
|
||||
'--output_dir=%s' % output_dir,
|
||||
'--gtest_color=no',
|
||||
@ -1104,27 +1106,25 @@ class MetaBuildWrapper(object):
|
||||
'--timeout=%s' % timeout,
|
||||
'--retry_failed=3',
|
||||
]
|
||||
if test_type == 'non_parallel_console_test_launcher':
|
||||
# Still use the gtest-parallel-wrapper.py script since we need it to
|
||||
# run tests on swarming, but don't execute tests in parallel.
|
||||
cmdline.append('--workers=1')
|
||||
|
||||
executable_prefix = '.\\' if self.platform == 'win32' else './'
|
||||
executable_suffix = '.exe' if self.platform == 'win32' else ''
|
||||
executable = executable_prefix + target + executable_suffix
|
||||
|
||||
cmdline.append(executable)
|
||||
if test_type != 'raw':
|
||||
cmdline.append('--')
|
||||
|
||||
asan = 'is_asan=true' in vals['gn_args']
|
||||
lsan = 'is_lsan=true' in vals['gn_args']
|
||||
msan = 'is_msan=true' in vals['gn_args']
|
||||
tsan = 'is_tsan=true' in vals['gn_args']
|
||||
|
||||
executable_prefix = '.\\' if self.platform == 'win32' else './'
|
||||
executable_suffix = '.exe' if self.platform == 'win32' else ''
|
||||
executable = executable_prefix + target + executable_suffix
|
||||
|
||||
cmdline = (['../../testing/xvfb.py'] if xvfb else
|
||||
['../../testing/test_env.py'])
|
||||
cmdline += memcheck_cmdline if memcheck else gtest_parallel_wrapper
|
||||
cmdline.append(executable)
|
||||
if test_type == 'non_parallel_console_test_launcher' and not memcheck:
|
||||
# Still use the gtest-parallel-wrapper.py script since we need it to
|
||||
# run tests on swarming, but don't execute tests in parallel.
|
||||
cmdline.append('--workers=1')
|
||||
|
||||
cmdline.extend([
|
||||
'--',
|
||||
'--asan=%d' % asan,
|
||||
'--lsan=%d' % lsan,
|
||||
'--msan=%d' % msan,
|
||||
|
||||
@ -457,8 +457,8 @@ class UnitTest(unittest.TestCase):
|
||||
'--gtest_color=no',
|
||||
'--timeout=500',
|
||||
'--retry_failed=3',
|
||||
'./base_unittests',
|
||||
'--workers=1',
|
||||
'./base_unittests',
|
||||
'--',
|
||||
'--asan=0',
|
||||
'--lsan=0',
|
||||
@ -501,6 +501,43 @@ class UnitTest(unittest.TestCase):
|
||||
'../../base/base_unittests_script.py',
|
||||
])
|
||||
|
||||
def test_gn_gen_raw(self):
|
||||
test_files = {
|
||||
'/tmp/swarming_targets': 'base_unittests\n',
|
||||
'/fake_src/testing/buildbot/gn_isolate_map.pyl': (
|
||||
"{'base_unittests': {"
|
||||
" 'label': '//base:base_unittests',"
|
||||
" 'type': 'raw',"
|
||||
"}}\n"
|
||||
),
|
||||
'/fake_src/out/Default/base_unittests.runtime_deps': (
|
||||
"base_unittests\n"
|
||||
),
|
||||
}
|
||||
mbw = self.check(['gen', '-c', 'gn_debug_goma', '//out/Default',
|
||||
'--swarming-targets-file', '/tmp/swarming_targets',
|
||||
'--isolate-map-file',
|
||||
'/fake_src/testing/buildbot/gn_isolate_map.pyl'],
|
||||
files=test_files, ret=0)
|
||||
|
||||
isolate_file = mbw.files['/fake_src/out/Default/base_unittests.isolate']
|
||||
isolate_file_contents = ast.literal_eval(isolate_file)
|
||||
files = isolate_file_contents['variables']['files']
|
||||
command = isolate_file_contents['variables']['command']
|
||||
|
||||
self.assertEqual(files, [
|
||||
'../../testing/test_env.py',
|
||||
'base_unittests',
|
||||
])
|
||||
self.assertEqual(command, [
|
||||
'../../testing/test_env.py',
|
||||
'./base_unittests',
|
||||
'--asan=0',
|
||||
'--lsan=0',
|
||||
'--msan=0',
|
||||
'--tsan=0',
|
||||
])
|
||||
|
||||
def test_gn_gen_non_parallel_console_test_launcher(self):
|
||||
test_files = {
|
||||
'/tmp/swarming_targets': 'base_unittests\n',
|
||||
@ -539,8 +576,8 @@ class UnitTest(unittest.TestCase):
|
||||
'--gtest_color=no',
|
||||
'--timeout=900',
|
||||
'--retry_failed=3',
|
||||
'./base_unittests',
|
||||
'--workers=1',
|
||||
'./base_unittests',
|
||||
'--',
|
||||
'--asan=0',
|
||||
'--lsan=0',
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user