diff --git a/infra/specs/PRESUBMIT.py b/infra/specs/PRESUBMIT.py new file mode 100644 index 0000000000..883e26844f --- /dev/null +++ b/infra/specs/PRESUBMIT.py @@ -0,0 +1,43 @@ +# 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. + + +def _HasLocalChanges(input_api): + ret = input_api.subprocess.call(['git', 'diff', '--quiet']) + return ret != 0 + + +def CheckPatchFormatted(input_api, output_api): + results = [] + file_filter = lambda x: x.LocalPath().endswith('.pyl') + affected_files = input_api.AffectedFiles(include_deletes=False, + file_filter=file_filter) + + for f in affected_files: + cmd = ['yapf', '-i', f.AbsoluteLocalPath()] + if input_api.subprocess.call(cmd): + results.append(output_api.PresubmitError('Error calling "' + cmd + '"')) + + if _HasLocalChanges(input_api): + msg = ('Diff found after running "yapf -i" on modified .pyl files.\n' + 'Please commit or discard the new changes.') + results.append(output_api.PresubmitError(msg)) + + return results + + +def CheckChangeOnUpload(input_api, output_api): + results = [] + results.extend(CheckPatchFormatted(input_api, output_api)) + return results + + +def CheckChangeOnCommit(input_api, output_api): + results = [] + results.extend(CheckPatchFormatted(input_api, output_api)) + return results diff --git a/infra/specs/client.webrtc.json b/infra/specs/client.webrtc.json new file mode 100644 index 0000000000..a5865495bc --- /dev/null +++ b/infra/specs/client.webrtc.json @@ -0,0 +1,413 @@ +{ + "AAAAA1 AUTOGENERATED FILE DO NOT EDIT": {}, + "AAAAA2 See generate_buildbot_json.py to make changes": {}, + "Linux64 Release": { + "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-18.04", + "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": "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/" + } + ] + } +} diff --git a/infra/specs/generate_buildbot_json.py b/infra/specs/generate_buildbot_json.py new file mode 100755 index 0000000000..d625580739 --- /dev/null +++ b/infra/specs/generate_buildbot_json.py @@ -0,0 +1,89 @@ +#!/usr/bin/env vpython3 +# 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. +"""Script to generate the test spec JSON files and the mixins.pyl file from the +ADDITIONAL_MIXINS dictonary. Calls Chromium's generate_buildbot_json. +""" + +import json +import os +import sys + +_SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__)) +_SRC_DIR = os.path.dirname(os.path.dirname(_SCRIPT_DIR)) +sys.path.insert(0, _SRC_DIR) +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' + }, + }, +} +MIXIN_FILE_NAME = os.path.join(_SCRIPT_DIR, 'mixins.pyl') +MIXINS_PYL_TEMPLATE = """\ +# GENERATED FILE - DO NOT EDIT. +# Generated by {script_name} using data from +# {data_source} +# +# 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. + +{mixin_data} +""" + + +def main(): + chromium_args = generate_buildbot_json.BBJSONGenerator.parse_args(argv=None) + chromium_generator = generate_buildbot_json.BBJSONGenerator(chromium_args) + chromium_generator.load_configuration_files() + + 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() + + return webrtc_generator.main() + + +if __name__ == '__main__': # pragma: no cover + sys.exit(main()) diff --git a/infra/specs/gn_isolate_map.pyl b/infra/specs/gn_isolate_map.pyl new file mode 100644 index 0000000000..c44b41ecd1 --- /dev/null +++ b/infra/specs/gn_isolate_map.pyl @@ -0,0 +1,148 @@ +# 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. + +# gn_isolate_map.pyl - A mapping of Ninja build target names to GN labels and +# test type classifications for the tests that are run on the bots. +# +# This file is based on testing/buildbot/gn_isolate_map.pyl for Chromium, but +# is covering WebRTC stand-alone tests instead. +# See https://cs.chromium.org/chromium/src/testing/buildbot/gn_isolate_map.pyl +# for more detailed documentation. + +{ + "All": { + "label": "//:All", + "type": "additional_compile_target", + }, + "AppRTCMobile_test_apk": { + "label": "//examples:AppRTCMobile_test_apk", + "type": "console_test_launcher", + }, + "android_junit_tests": { + "label": "//:android_junit_tests", + "type": "junit_test", + }, + "android_examples_junit_tests": { + "label": "//examples:android_examples_junit_tests", + "type": "junit_test", + }, + "android_sdk_junit_tests": { + "label": "//sdk/android:android_sdk_junit_tests", + "type": "junit_test", + }, + "apprtcmobile_tests": { + "label": "//examples:apprtcmobile_tests", + "type": "console_test_launcher", + }, + "audio_decoder_unittests": { + "label": "//modules/audio_coding:audio_decoder_unittests", + "type": "console_test_launcher", + }, + "common_audio_unittests": { + "label": "//common_audio:common_audio_unittests", + "type": "console_test_launcher", + }, + "common_video_unittests": { + "label": "//common_video:common_video_unittests", + "type": "console_test_launcher", + }, + "dcsctp_unittests": { + "label": "//net/dcsctp:dcsctp_unittests", + "type": "console_test_launcher", + }, + "android_instrumentation_test_apk": { + "label": "//sdk/android:android_instrumentation_test_apk", + "type": "console_test_launcher", + }, + "low_bandwidth_audio_test": { + "label": "//audio:low_bandwidth_audio_test", + "type": "console_test_launcher", + "args": [ + "--quick", + ], + }, + "low_bandwidth_audio_perf_test": { + "label": "//audio:low_bandwidth_audio_perf_test", + "type": "script", + "script": "//audio/test/low_bandwidth_audio_test.py", + "args": [ + ".", + "--remove", + ], + }, + "modules_tests": { + "label": "//modules:modules_tests", + "type": "console_test_launcher", + }, + "modules_unittests": { + "label": "//modules:modules_unittests", + "type": "windowed_test_launcher", + }, + "peerconnection_unittests": { + "label": "//pc:peerconnection_unittests", + "type": "console_test_launcher", + }, + "rtc_media_unittests": { + "label": "//media:rtc_media_unittests", + "type": "console_test_launcher", + }, + "rtc_pc_unittests": { + "label": "//pc:rtc_pc_unittests", + "type": "console_test_launcher", + }, + "rtc_stats_unittests": { + "label": "//stats:rtc_stats_unittests", + "type": "console_test_launcher", + }, + "rtc_unittests": { + "label": "//:rtc_unittests", + "type": "console_test_launcher", + }, + "sdk_framework_unittests": { + "label": "//sdk:sdk_framework_unittests", + "type": "console_test_launcher", + }, + "sdk_unittests": { + "label": "//sdk:sdk_unittests", + "type": "console_test_launcher", + }, + "system_wrappers_unittests": { + "label": "//system_wrappers:system_wrappers_unittests", + "type": "console_test_launcher", + }, + "test_support_unittests": { + "label": "//test:test_support_unittests", + "type": "console_test_launcher", + }, + "tools_unittests": { + "label": "//rtc_tools:tools_unittests", + "type": "console_test_launcher", + }, + "video_capture_tests": { + "label": "//modules/video_capture:video_capture_tests", + "type": "non_parallel_console_test_launcher", + # TODO(bugs.webrtc.org/9292): remove use_webcam and the ensure script. + "use_webcam": True, + }, + "video_engine_tests": { + "label": "//:video_engine_tests", + "type": "console_test_launcher", + }, + "voip_unittests": { + "label": "//:voip_unittests", + "type": "console_test_launcher", + }, + "webrtc_nonparallel_tests": { + "label": "//:webrtc_nonparallel_tests", + "type": "non_parallel_console_test_launcher", + }, + "webrtc_perf_tests": { + "label": "//:webrtc_perf_tests", + "type": "raw", + }, +} diff --git a/infra/specs/mixins.pyl b/infra/specs/mixins.pyl new file mode 100644 index 0000000000..b14cc2fd4c --- /dev/null +++ b/infra/specs/mixins.pyl @@ -0,0 +1,33 @@ +# GENERATED FILE - DO NOT EDIT. +# Generated by generate_buildbot_json.py using data from +# waterfall.pyl and Chromium's mixins.pyl +# +# 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. + +{ + "linux-bionic": { + "swarming": { + "dimensions": { + "os": "Ubuntu-18.04" + } + } + }, + "result_adapter": { + "resultdb": { + "result_format": "json" + } + }, + "x86-64": { + "swarming": { + "dimensions": { + "cpu": "x86-64" + } + } + } +} diff --git a/infra/specs/setup.cfg b/infra/specs/setup.cfg new file mode 100644 index 0000000000..7dd0a8a68e --- /dev/null +++ b/infra/specs/setup.cfg @@ -0,0 +1,11 @@ +# 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. + +# This is the style settings used when running yapf on .pyl files. +[yapf] +continuation_indent_width = 2 \ No newline at end of file diff --git a/infra/specs/test_suite_exceptions.pyl b/infra/specs/test_suite_exceptions.pyl new file mode 100644 index 0000000000..c31ab89d2e --- /dev/null +++ b/infra/specs/test_suite_exceptions.pyl @@ -0,0 +1,9 @@ +# 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. + +{} \ No newline at end of file diff --git a/infra/specs/test_suites.pyl b/infra/specs/test_suites.pyl new file mode 100644 index 0000000000..0b3a829fd1 --- /dev/null +++ b/infra/specs/test_suites.pyl @@ -0,0 +1,93 @@ +# 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. + +{ + 'basic_suites': { + 'desktop_tests': { + 'audio_decoder_unittests': {}, + 'common_audio_unittests': {}, + 'common_video_unittests': {}, + 'dcsctp_unittests': {}, + 'low_bandwidth_audio_test': {}, + 'modules_tests': { + 'swarming': { + 'shards': 2 + }, + }, + 'modules_unittests': { + 'swarming': { + 'shards': 6 + }, + }, + 'peerconnection_unittests': { + 'swarming': { + 'shards': 4 + }, + }, + 'rtc_media_unittests': {}, + 'rtc_pc_unittests': {}, + 'rtc_stats_unittests': {}, + 'rtc_unittests': { + 'swarming': { + 'shards': 6 + }, + }, + 'system_wrappers_unittests': {}, + 'test_support_unittests': {}, + 'tools_unittests': {}, + 'video_engine_tests': { + 'swarming': { + 'shards': 4 + }, + }, + 'voip_unittests': {}, + 'webrtc_nonparallel_tests': {}, + }, + 'video_capture_tests_baremetal': { + # Run video_capture_tests on the baremetal pool for the video camera. + 'video_capture_tests': { + 'swarming': { + 'dimension_sets': [{ + 'pool': 'WebRTC-baremetal' + }], + }, + } + }, + 'webrtc_perf_tests_baremetal': { + # Run webrtc_perf_tests on the baremetal pool to test the WebRTC machines. + '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' + }], + }, + } + }, + }, + 'compound_suites': { + 'desktop_and_video_capture_tests': [ + 'desktop_tests', + 'video_capture_tests_baremetal', + ], + 'desktop_and_video_capture_and_webrtc_perf_tests': [ + 'desktop_tests', + 'video_capture_tests_baremetal', + 'webrtc_perf_tests_baremetal', + ], + }, +} diff --git a/infra/specs/trybot_analyze_config.json b/infra/specs/trybot_analyze_config.json new file mode 100644 index 0000000000..b0e2f8eb18 --- /dev/null +++ b/infra/specs/trybot_analyze_config.json @@ -0,0 +1,8 @@ +{ + "webrtc": { + "exclusions": [ + "DEPS", + "infra/specs/.*" + ] + } +} \ No newline at end of file diff --git a/infra/specs/variants.pyl b/infra/specs/variants.pyl new file mode 100644 index 0000000000..c31ab89d2e --- /dev/null +++ b/infra/specs/variants.pyl @@ -0,0 +1,9 @@ +# 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. + +{} \ No newline at end of file diff --git a/infra/specs/waterfalls.pyl b/infra/specs/waterfalls.pyl new file mode 100644 index 0000000000..55c18e708c --- /dev/null +++ b/infra/specs/waterfalls.pyl @@ -0,0 +1,23 @@ +# 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. + +[ + { + 'name': 'client.webrtc', + 'mixins': [], + 'machines': { + 'Linux64 Release': { + 'os_type': 'linux', + 'mixins': ['linux-bionic', 'x86-64', 'result_adapter'], + 'test_suites': { + 'isolated_scripts': 'desktop_and_video_capture_tests', + }, + }, + }, + }, +]