diff --git a/infra/config/generated/project.pyl b/infra/config/generated/project.pyl new file mode 100644 index 0000000000..df001db8e9 --- /dev/null +++ b/infra/config/generated/project.pyl @@ -0,0 +1,3 @@ +# This is a non-LUCI generated file +# This is consumed by infra/specs presubmit checks to validate the config +{"validate_source_side_specs_have_builder": False} diff --git a/infra/specs/PRESUBMIT.py b/infra/specs/PRESUBMIT.py index 883e26844f..df6966561a 100644 --- a/infra/specs/PRESUBMIT.py +++ b/infra/specs/PRESUBMIT.py @@ -6,6 +6,8 @@ # in the file PATENTS. All contributing project authors may # be found in the AUTHORS file in the root of the source tree. +import os + def _HasLocalChanges(input_api): ret = input_api.subprocess.call(['git', 'diff', '--quiet']) @@ -31,13 +33,34 @@ def CheckPatchFormatted(input_api, output_api): return results +def CheckSourceSideSpecs(input_api, output_api): + d = os.path.dirname + angle_root = d(d(input_api.PresubmitLocalPath())) + gen_script = os.path.join(angle_root, 'testing', 'buildbot', + 'generate_buildbot_json.py') + + commands = [ + input_api.Command(name='generate_buildbot_json', + cmd=[ + input_api.python_executable, gen_script, '--check', + '--verbose', '--pyl-files-dir', + input_api.PresubmitLocalPath() + ], + kwargs={}, + message=output_api.PresubmitError), + ] + return input_api.RunTests(commands) + + def CheckChangeOnUpload(input_api, output_api): results = [] results.extend(CheckPatchFormatted(input_api, output_api)) + results.extend(CheckSourceSideSpecs(input_api, output_api)) return results def CheckChangeOnCommit(input_api, output_api): results = [] results.extend(CheckPatchFormatted(input_api, output_api)) + results.extend(CheckSourceSideSpecs(input_api, output_api)) return results diff --git a/infra/specs/client.webrtc.json b/infra/specs/client.webrtc.json index a5865495bc..1ae5934727 100644 --- a/infra/specs/client.webrtc.json +++ b/infra/specs/client.webrtc.json @@ -337,7 +337,7 @@ "dimension_sets": [ { "cpu": "x86-64", - "os": "Ubuntu-18.04", + "os": "Ubuntu", "pool": "WebRTC-baremetal" } ] @@ -409,5 +409,414 @@ "test_id_prefix": "ninja://:webrtc_nonparallel_tests/" } ] + }, + "Win32 Release (Clang)": { + "isolated_scripts": [ + { + "isolate_name": "audio_decoder_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "audio_decoder_unittests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Windows-7-SP1" + } + ] + }, + "test_id_prefix": "ninja://modules/audio_coding:audio_decoder_unittests/" + }, + { + "isolate_name": "common_audio_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "common_audio_unittests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Windows-7-SP1" + } + ] + }, + "test_id_prefix": "ninja://common_audio:common_audio_unittests/" + }, + { + "isolate_name": "common_video_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "common_video_unittests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Windows-7-SP1" + } + ] + }, + "test_id_prefix": "ninja://common_video:common_video_unittests/" + }, + { + "isolate_name": "dcsctp_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "dcsctp_unittests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Windows-7-SP1" + } + ] + }, + "test_id_prefix": "ninja://net/dcsctp:dcsctp_unittests/" + }, + { + "isolate_name": "low_bandwidth_audio_test", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "low_bandwidth_audio_test", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Windows-7-SP1" + } + ] + }, + "test_id_prefix": "ninja://audio:low_bandwidth_audio_test/" + }, + { + "isolate_name": "modules_tests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "modules_tests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Windows-7-SP1" + } + ], + "shards": 2 + }, + "test_id_prefix": "ninja://modules:modules_tests/" + }, + { + "isolate_name": "modules_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "modules_unittests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Windows-7-SP1" + } + ], + "shards": 6 + }, + "test_id_prefix": "ninja://modules:modules_unittests/" + }, + { + "isolate_name": "peerconnection_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "peerconnection_unittests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Windows-7-SP1" + } + ], + "shards": 4 + }, + "test_id_prefix": "ninja://pc:peerconnection_unittests/" + }, + { + "isolate_name": "rtc_media_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "rtc_media_unittests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Windows-7-SP1" + } + ] + }, + "test_id_prefix": "ninja://media:rtc_media_unittests/" + }, + { + "isolate_name": "rtc_pc_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "rtc_pc_unittests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Windows-7-SP1" + } + ] + }, + "test_id_prefix": "ninja://pc:rtc_pc_unittests/" + }, + { + "isolate_name": "rtc_stats_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "rtc_stats_unittests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Windows-7-SP1" + } + ] + }, + "test_id_prefix": "ninja://stats:rtc_stats_unittests/" + }, + { + "isolate_name": "rtc_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "rtc_unittests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Windows-7-SP1" + } + ], + "shards": 6 + }, + "test_id_prefix": "ninja://:rtc_unittests/" + }, + { + "isolate_name": "system_wrappers_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "system_wrappers_unittests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Windows-7-SP1" + } + ] + }, + "test_id_prefix": "ninja://system_wrappers:system_wrappers_unittests/" + }, + { + "isolate_name": "test_support_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "test_support_unittests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Windows-7-SP1" + } + ] + }, + "test_id_prefix": "ninja://test:test_support_unittests/" + }, + { + "isolate_name": "tools_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "tools_unittests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Windows-7-SP1" + } + ] + }, + "test_id_prefix": "ninja://rtc_tools:tools_unittests/" + }, + { + "isolate_name": "video_capture_tests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "video_capture_tests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Windows", + "pool": "WebRTC-baremetal" + } + ] + }, + "test_id_prefix": "ninja://modules/video_capture:video_capture_tests/" + }, + { + "isolate_name": "video_engine_tests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "video_engine_tests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Windows-7-SP1" + } + ], + "shards": 4 + }, + "test_id_prefix": "ninja://:video_engine_tests/" + }, + { + "isolate_name": "voip_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "voip_unittests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Windows-7-SP1" + } + ] + }, + "test_id_prefix": "ninja://:voip_unittests/" + }, + { + "isolate_name": "webrtc_nonparallel_tests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "webrtc_nonparallel_tests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Windows-7-SP1" + } + ] + }, + "test_id_prefix": "ninja://:webrtc_nonparallel_tests/" + } + ] } } diff --git a/infra/specs/generate_buildbot_json.py b/infra/specs/generate_buildbot_json.py index d625580739..aa0375198f 100755 --- a/infra/specs/generate_buildbot_json.py +++ b/infra/specs/generate_buildbot_json.py @@ -10,8 +10,9 @@ ADDITIONAL_MIXINS dictonary. Calls Chromium's generate_buildbot_json. """ -import json +import ast import os +import subprocess import sys _SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__)) @@ -22,13 +23,7 @@ sys.path.insert(0, os.path.join(_SRC_DIR, 'testing', 'buildbot')) from testing.buildbot import generate_buildbot_json # Add custom mixins here. -ADDITIONAL_MIXINS = { - 'result_adapter': { - 'resultdb': { - 'result_format': 'json' - }, - }, -} +WEBRTC_MIXIN_FILE_NAME = os.path.join(_SCRIPT_DIR, 'mixins_webrtc.pyl') MIXIN_FILE_NAME = os.path.join(_SCRIPT_DIR, 'mixins.pyl') MIXINS_PYL_TEMPLATE = """\ # GENERATED FILE - DO NOT EDIT. @@ -47,41 +42,47 @@ MIXINS_PYL_TEMPLATE = """\ """ -def main(): +def generate_mixins_file_from_used_mixins(generator): chromium_args = generate_buildbot_json.BBJSONGenerator.parse_args(argv=None) chromium_generator = generate_buildbot_json.BBJSONGenerator(chromium_args) chromium_generator.load_configuration_files() + seen_mixins = set() + for waterfall in generator.waterfalls: + seen_mixins = seen_mixins.union(waterfall.get('mixins', set())) + for bot_name, tester in waterfall['machines'].items(): + del bot_name + seen_mixins = seen_mixins.union(tester.get('mixins', set())) + for suite in generator.test_suites.values(): + for test in suite.values(): + seen_mixins = seen_mixins.union(test.get('mixins', set())) + + found_mixins = ast.literal_eval(open(WEBRTC_MIXIN_FILE_NAME).read()) + for mixin in seen_mixins: + if mixin not in found_mixins: + found_mixins[mixin] = chromium_generator.mixins[mixin] + elif mixin in chromium_generator.mixins: + assert False, '"%s" is already defined in Chromium\'s mixins.pyl' % mixin + + format_data = { + 'script_name': os.path.basename(__file__), + 'data_source': 'mixins_webrtc.pyl and Chromium\'s mixins.pyl', + 'mixin_data': dict(sorted(found_mixins.items())), + } + with open(MIXIN_FILE_NAME, 'w') as f: + f.write(MIXINS_PYL_TEMPLATE.format(**format_data)) + + return subprocess.call(['yapf', '-i', MIXIN_FILE_NAME]) + + +def main(): override_args = ['--pyl-files-dir', _SCRIPT_DIR] webrtc_args = generate_buildbot_json.BBJSONGenerator.parse_args(override_args) webrtc_generator = generate_buildbot_json.BBJSONGenerator(webrtc_args) webrtc_generator.load_configuration_files() webrtc_generator.resolve_configuration_files() - seen_mixins = set() - for waterfall in webrtc_generator.waterfalls: - seen_mixins = seen_mixins.union(waterfall.get('mixins', set())) - for bot_name, tester in waterfall['machines'].items(): - del bot_name - seen_mixins = seen_mixins.union(tester.get('mixins', set())) - for suite in webrtc_generator.test_suites.values(): - for test in suite.values(): - seen_mixins = seen_mixins.union(test.get('mixins', set())) - - found_mixins = ADDITIONAL_MIXINS.copy() - for mixin in seen_mixins: - if mixin not in found_mixins: - found_mixins[mixin] = chromium_generator.mixins[mixin] - - format_data = { - 'script_name': os.path.basename(__file__), - 'data_source': 'waterfall.pyl and Chromium\'s mixins.pyl', - 'mixin_data': json.dumps(dict(sorted(found_mixins.items())), indent=2), - } - with open(MIXIN_FILE_NAME, 'w') as f: - f.write(MIXINS_PYL_TEMPLATE.format(**format_data)) - f.close() - + generate_mixins_file_from_used_mixins(webrtc_generator) return webrtc_generator.main() diff --git a/infra/specs/mixins.pyl b/infra/specs/mixins.pyl index b14cc2fd4c..17e2e3b992 100644 --- a/infra/specs/mixins.pyl +++ b/infra/specs/mixins.pyl @@ -1,6 +1,6 @@ # GENERATED FILE - DO NOT EDIT. # Generated by generate_buildbot_json.py using data from -# waterfall.pyl and Chromium's mixins.pyl +# mixins_webrtc.pyl and Chromium's mixins.pyl # # Copyright (c) 2022 The WebRTC project authors. All Rights Reserved. # @@ -11,22 +11,67 @@ # be found in the AUTHORS file in the root of the source tree. { - "linux-bionic": { - "swarming": { - "dimensions": { - "os": "Ubuntu-18.04" + 'baremetal-pool': { + 'swarming': { + 'dimensions': { + 'pool': 'WebRTC-baremetal' } } }, - "result_adapter": { - "resultdb": { - "result_format": "json" + 'baremetal-try-pool': { + 'swarming': { + 'dimensions': { + 'pool': 'WebRTC-baremetal-try' + } } }, - "x86-64": { - "swarming": { - "dimensions": { - "cpu": "x86-64" + 'linux': { + 'swarming': { + 'dimensions': { + 'os': 'Ubuntu' + } + } + }, + 'linux-bionic': { + 'swarming': { + 'dimensions': { + 'os': 'Ubuntu-18.04' + } + } + }, + 'quick-perf-tests': { + 'args': [ + '--force_fieldtrials=WebRTC-QuickPerfTest/Enabled/', '--nologs', + '--gtest_output=json:${ISOLATED_OUTDIR}/gtest_output.json' + ], + 'resultdb': { + 'result_format': 'gtest_json', + 'result_file': '${ISOLATED_OUTDIR}/gtest_output.json' + } + }, + 'resultdb-json-format': { + 'resultdb': { + 'result_format': 'json' + } + }, + 'win': { + 'swarming': { + 'dimensions': { + 'os': 'Windows' + } + } + }, + 'win7': { + 'swarming': { + 'dimensions': { + 'os': 'Windows-7-SP1' + } + } + }, + 'x86-64': { + 'swarming': { + 'dimensions': { + 'cpu': 'x86-64' } } } diff --git a/infra/specs/mixins_webrtc.pyl b/infra/specs/mixins_webrtc.pyl new file mode 100644 index 0000000000..f5a8af29b1 --- /dev/null +++ b/infra/specs/mixins_webrtc.pyl @@ -0,0 +1,54 @@ +# Copyright (c) 2022 The WebRTC project authors. All Rights Reserved. +# +# Use of this source code is governed by a BSD-style license +# that can be found in the LICENSE file in the root of the source +# tree. An additional intellectual property rights grant can be found +# in the file PATENTS. All contributing project authors may +# be found in the AUTHORS file in the root of the source tree. + +{ + 'baremetal-pool': { + 'swarming': { + 'dimensions': { + 'pool': 'WebRTC-baremetal', + }, + }, + }, + 'baremetal-try-pool': { + 'swarming': { + 'dimensions': { + 'pool': 'WebRTC-baremetal-try', + }, + }, + }, + 'quick-perf-tests': { + 'args': [ + '--force_fieldtrials=WebRTC-QuickPerfTest/Enabled/', + '--nologs', + '--gtest_output=json:${ISOLATED_OUTDIR}/gtest_output.json', + ], + 'resultdb': { + 'result_format': 'gtest_json', + 'result_file': '${ISOLATED_OUTDIR}/gtest_output.json', + }, + }, + 'linux': { + 'swarming': { + 'dimensions': { + 'os': 'Ubuntu' + } + } + }, + 'resultdb-json-format': { + 'resultdb': { + 'result_format': 'json' + } + }, + 'win': { + 'swarming': { + 'dimensions': { + 'os': 'Windows' + } + } + }, +} diff --git a/infra/specs/test_suites.pyl b/infra/specs/test_suites.pyl index 0b3a829fd1..aea352b674 100644 --- a/infra/specs/test_suites.pyl +++ b/infra/specs/test_suites.pyl @@ -48,46 +48,44 @@ 'voip_unittests': {}, 'webrtc_nonparallel_tests': {}, }, - 'video_capture_tests_baremetal': { - # Run video_capture_tests on the baremetal pool for the video camera. + 'video_capture_tests_linux': { 'video_capture_tests': { - 'swarming': { - 'dimension_sets': [{ - 'pool': 'WebRTC-baremetal' - }], - }, + 'remove_mixins': ['linux-bionic'], + 'mixins': ['linux', 'baremetal-pool'], } }, - 'webrtc_perf_tests_baremetal': { - # Run webrtc_perf_tests on the baremetal pool to test the WebRTC machines. + 'video_capture_tests_linux_tryserver': { + 'video_capture_tests': { + 'remove_mixins': ['linux-bionic'], + 'mixins': ['linux', 'baremetal-try-pool'], + } + }, + 'video_capture_tests_win': { + 'video_capture_tests': { + 'remove_mixins': ['win7'], + 'mixins': ['win', 'baremetal-pool'], + } + }, + 'webrtc_perf_tests_linux_tryserver': { 'webrtc_perf_tests': { - 'args': [ - '--force_fieldtrials=WebRTC-QuickPerfTest/Enabled/', - '--nologs', - '--gtest_output=json:${ISOLATED_OUTDIR}/gtest_output.json', - ], - 'remove_mixins': ['result_adapter'], - 'resultdb': { - 'result_format': 'gtest_json', - 'result_file': '${ISOLATED_OUTDIR}/gtest_output.json', - }, - 'swarming': { - 'dimension_sets': [{ - 'pool': 'WebRTC-baremetal' - }], - }, + 'remove_mixins': ['linux-bionic', 'resultdb-json-format'], + 'mixins': ['linux', 'baremetal-try-pool', 'quick-perf-tests'], } }, }, 'compound_suites': { - 'desktop_and_video_capture_tests': [ + 'desktop_tests_linux': [ 'desktop_tests', - 'video_capture_tests_baremetal', + 'video_capture_tests_linux', ], - 'desktop_and_video_capture_and_webrtc_perf_tests': [ + 'desktop_tests_linux_tryserver': [ 'desktop_tests', - 'video_capture_tests_baremetal', - 'webrtc_perf_tests_baremetal', + 'video_capture_tests_linux_tryserver', + 'webrtc_perf_tests_linux_tryserver', + ], + 'desktop_tests_win': [ + 'desktop_tests', + 'video_capture_tests_win', ], }, } diff --git a/infra/specs/trybot_analyze_config.json b/infra/specs/trybot_analyze_config.json index b0e2f8eb18..4489a7d5dd 100644 --- a/infra/specs/trybot_analyze_config.json +++ b/infra/specs/trybot_analyze_config.json @@ -1,5 +1,5 @@ { - "webrtc": { + "base": { "exclusions": [ "DEPS", "infra/specs/.*" diff --git a/infra/specs/tryserver.webrtc.json b/infra/specs/tryserver.webrtc.json new file mode 100644 index 0000000000..625a6a641d --- /dev/null +++ b/infra/specs/tryserver.webrtc.json @@ -0,0 +1,441 @@ +{ + "AAAAA1 AUTOGENERATED FILE DO NOT EDIT": {}, + "AAAAA2 See generate_buildbot_json.py to make changes": {}, + "linux_rel": { + "isolated_scripts": [ + { + "isolate_name": "audio_decoder_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "audio_decoder_unittests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Ubuntu-18.04" + } + ] + }, + "test_id_prefix": "ninja://modules/audio_coding:audio_decoder_unittests/" + }, + { + "isolate_name": "common_audio_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "common_audio_unittests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Ubuntu-18.04" + } + ] + }, + "test_id_prefix": "ninja://common_audio:common_audio_unittests/" + }, + { + "isolate_name": "common_video_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "common_video_unittests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Ubuntu-18.04" + } + ] + }, + "test_id_prefix": "ninja://common_video:common_video_unittests/" + }, + { + "isolate_name": "dcsctp_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "dcsctp_unittests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Ubuntu-18.04" + } + ] + }, + "test_id_prefix": "ninja://net/dcsctp:dcsctp_unittests/" + }, + { + "isolate_name": "low_bandwidth_audio_test", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "low_bandwidth_audio_test", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Ubuntu-18.04" + } + ] + }, + "test_id_prefix": "ninja://audio:low_bandwidth_audio_test/" + }, + { + "isolate_name": "modules_tests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "modules_tests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Ubuntu-18.04" + } + ], + "shards": 2 + }, + "test_id_prefix": "ninja://modules:modules_tests/" + }, + { + "isolate_name": "modules_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "modules_unittests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Ubuntu-18.04" + } + ], + "shards": 6 + }, + "test_id_prefix": "ninja://modules:modules_unittests/" + }, + { + "isolate_name": "peerconnection_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "peerconnection_unittests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Ubuntu-18.04" + } + ], + "shards": 4 + }, + "test_id_prefix": "ninja://pc:peerconnection_unittests/" + }, + { + "isolate_name": "rtc_media_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "rtc_media_unittests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Ubuntu-18.04" + } + ] + }, + "test_id_prefix": "ninja://media:rtc_media_unittests/" + }, + { + "isolate_name": "rtc_pc_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "rtc_pc_unittests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Ubuntu-18.04" + } + ] + }, + "test_id_prefix": "ninja://pc:rtc_pc_unittests/" + }, + { + "isolate_name": "rtc_stats_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "rtc_stats_unittests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Ubuntu-18.04" + } + ] + }, + "test_id_prefix": "ninja://stats:rtc_stats_unittests/" + }, + { + "isolate_name": "rtc_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "rtc_unittests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Ubuntu-18.04" + } + ], + "shards": 6 + }, + "test_id_prefix": "ninja://:rtc_unittests/" + }, + { + "isolate_name": "system_wrappers_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "system_wrappers_unittests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Ubuntu-18.04" + } + ] + }, + "test_id_prefix": "ninja://system_wrappers:system_wrappers_unittests/" + }, + { + "isolate_name": "test_support_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "test_support_unittests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Ubuntu-18.04" + } + ] + }, + "test_id_prefix": "ninja://test:test_support_unittests/" + }, + { + "isolate_name": "tools_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "tools_unittests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Ubuntu-18.04" + } + ] + }, + "test_id_prefix": "ninja://rtc_tools:tools_unittests/" + }, + { + "isolate_name": "video_capture_tests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "video_capture_tests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Ubuntu", + "pool": "WebRTC-baremetal-try" + } + ] + }, + "test_id_prefix": "ninja://modules/video_capture:video_capture_tests/" + }, + { + "isolate_name": "video_engine_tests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "video_engine_tests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Ubuntu-18.04" + } + ], + "shards": 4 + }, + "test_id_prefix": "ninja://:video_engine_tests/" + }, + { + "isolate_name": "voip_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "voip_unittests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Ubuntu-18.04" + } + ] + }, + "test_id_prefix": "ninja://:voip_unittests/" + }, + { + "isolate_name": "webrtc_nonparallel_tests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "webrtc_nonparallel_tests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Ubuntu-18.04" + } + ] + }, + "test_id_prefix": "ninja://:webrtc_nonparallel_tests/" + }, + { + "args": [ + "--force_fieldtrials=WebRTC-QuickPerfTest/Enabled/", + "--nologs", + "--gtest_output=json:${ISOLATED_OUTDIR}/gtest_output.json" + ], + "isolate_name": "webrtc_perf_tests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "webrtc_perf_tests", + "resultdb": { + "result_file": "${ISOLATED_OUTDIR}/gtest_output.json", + "result_format": "gtest_json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Ubuntu", + "pool": "WebRTC-baremetal-try" + } + ] + }, + "test_id_prefix": "ninja://:webrtc_perf_tests/" + } + ] + } +} diff --git a/infra/specs/waterfalls.pyl b/infra/specs/waterfalls.pyl index 55c18e708c..9ba64b4936 100644 --- a/infra/specs/waterfalls.pyl +++ b/infra/specs/waterfalls.pyl @@ -13,9 +13,29 @@ 'machines': { 'Linux64 Release': { 'os_type': 'linux', - 'mixins': ['linux-bionic', 'x86-64', 'result_adapter'], + 'mixins': ['linux-bionic', 'x86-64', 'resultdb-json-format'], 'test_suites': { - 'isolated_scripts': 'desktop_and_video_capture_tests', + 'isolated_scripts': 'desktop_tests_linux', + }, + }, + 'Win32 Release (Clang)': { + 'os_type': 'win', + 'mixins': ['win7', 'x86-64', 'resultdb-json-format'], + 'test_suites': { + 'isolated_scripts': 'desktop_tests_win', + }, + }, + }, + }, + { + 'name': 'tryserver.webrtc', + 'mixins': [], + 'machines': { + 'linux_rel': { + 'os_type': 'linux', + 'mixins': ['linux-bionic', 'x86-64', 'resultdb-json-format'], + 'test_suites': { + 'isolated_scripts': 'desktop_tests_linux_tryserver', }, }, },