# GENERATED FILE - DO NOT EDIT.
# Generated by generate_buildbot_json.py using data from
# mixins_webrtc.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.

{
  'android-devices': {
    'swarming': {
      'dimensions': {
        'android_devices': '1'
      }
    }
  },
  'baremetal-pool': {
    'swarming': {
      'dimensions': {
        'pool': 'WebRTC-baremetal'
      }
    }
  },
  'baremetal-try-pool': {
    'swarming': {
      'dimensions': {
        'pool': 'WebRTC-baremetal-try'
      }
    }
  },
  'chrome-tester-service-account': {
    'swarming': {
      'service_account':
      'chrome-tester@chops-service-accounts.iam.gserviceaccount.com'
    }
  },
  'chromium-tester-service-account': {
    'swarming': {
      'service_account':
      'chromium-tester@chops-service-accounts.iam.gserviceaccount.com'
    }
  },
  'cores-12': {
    'swarming': {
      'dimensions': {
        'cores': '12'
      }
    }
  },
  'crosshatch': {
    'swarming': {
      'dimensions': {
        'device_type': 'crosshatch',
        'os': 'Android'
      }
    }
  },
  'fuchsia-gtest-output': {
    'args': [
      '--test-launcher-summary-output=${ISOLATED_OUTDIR}/gtest_output.json',
      '--test-arg=--gtest_output=json:/custom_artifacts/gtest_output.json',
      '--test-arg=--undefok=test_launcher_summary_output'
    ]
  },
  'has_native_resultdb_integration': {
    'resultdb': {
      'enable': True,
      'has_native_resultdb_integration': True
    }
  },
  'ios-device-16.6': {
    'swarming': {
      'dimensions': {
        'os': 'iOS-16.6',
        'pool': 'chrome.tests',
        'device_status': 'available'
      }
    }
  },
  'ios-device-perf': {
    'swarming': {
      'idempotent': False,
      'dimensions': {
        'os': 'iOS-15.7.8',
        'pool': 'WebRTC',
        'id': 'mac-254-e504',
        'device_status': 'available'
      }
    }
  },
  'ios_runtime_cache_14_5': {
    'swarming': {
      'named_caches': [{
        'name': 'runtime_ios_14_5',
        'path': 'Runtime-ios-14.5'
      }]
    }
  },
  'ios_runtime_cache_15_5': {
    'swarming': {
      'named_caches': [{
        'name': 'runtime_ios_15_5',
        'path': 'Runtime-ios-15.5'
      }]
    }
  },
  'ios_runtime_cache_16_2': {
    'swarming': {
      'named_caches': [{
        'name': 'runtime_ios_16_2',
        'path': 'Runtime-ios-16.2'
      }]
    }
  },
  'isolate_profile_data': {
    'isolate_profile_data': True
  },
  'limited-capacity': {
    'swarming': {
      'expiration': 10800
    }
  },
  'linux-bionic': {
    'swarming': {
      'dimensions': {
        'os': 'Ubuntu-18.04'
      }
    }
  },
  'linux-focal': {
    'swarming': {
      'dimensions': {
        'os': 'Ubuntu-20.04'
      }
    }
  },
  'mac-m1-cpu': {
    'swarming': {
      'dimensions': {
        'cpu': 'arm64-64-Apple_M1'
      }
    }
  },
  'mac11': {
    'swarming': {
      'dimensions': {
        'os': 'Mac-11'
      }
    }
  },
  'mac_12_arm64': {
    'swarming': {
      'dimensions': {
        'cpu': 'arm64',
        'os': 'Mac-12'
      }
    }
  },
  'mac_12_x64': {
    'swarming': {
      'dimensions': {
        'cpu': 'x86-64',
        'os': 'Mac-12'
      }
    }
  },
  'mac_toolchain': {
    'swarming': {
      'cipd_packages': [{
        'cipd_package':
        'infra/tools/mac_toolchain/${platform}',
        'location':
        '.',
        'revision':
        'git_revision:59ddedfe3849abf560cbe0b41bb8e431041cd2bb'
      }]
    }
  },
  'out_dir_arg': {
    'args': ['--out-dir', '${ISOLATED_OUTDIR}']
  },
  'perf-output': {
    'args': [
      '--isolated-script-test-perf-output=${ISOLATED_OUTDIR}/perftest-output.pb'
    ]
  },
  'perf-pool': {
    'swarming': {
      'idempotent': False,
      'dimensions': {
        'pool': 'WebRTC-perf',
        'gce': '0'
      }
    }
  },
  'perf-pool-vm': {
    'swarming': {
      'idempotent': False,
      'dimensions': {
        'pool': 'WebRTC-perf',
        'gce': '1'
      }
    }
  },
  'perf-video-codec-perf-tests': {
    'merge': {
      'script': '//tools_webrtc/perf/process_perf_results.py',
      'args': ['--test-suite', 'video_codec_perf_tests']
    }
  },
  'perf-webrtc-perf-tests': {
    'merge': {
      'script': '//tools_webrtc/perf/process_perf_results.py',
      'args': ['--test-suite', 'webrtc_perf_tests']
    },
    'args': ['--nologs']
  },
  'quick-perf-tests': {
    'args': ['--webrtc_quick_perf_test', '--nologs']
  },
  'redfin': {
    'swarming': {
      'dimensions': {
        'device_type': 'redfin',
        'os': 'Android'
      }
    }
  },
  'resultdb-gtest-json-format': {
    'args': ['--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'
    }
  },
  'shards-2': {
    'swarming': {
      'shards': 2
    }
  },
  'shards-4': {
    'swarming': {
      'shards': 4
    }
  },
  'shards-6': {
    'swarming': {
      'shards': 6
    }
  },
  'shards-8': {
    'swarming': {
      'shards': 8
    }
  },
  'timeout-2h': {
    'swarming': {
      'hard_timeout': 7200,
      'io_timeout': 7200
    }
  },
  'timeout-3h': {
    'swarming': {
      'hard_timeout': 10800,
      'io_timeout': 10800
    }
  },
  'walleye': {
    'swarming': {
      'dimensions': {
        'device_type': 'walleye',
        'os': 'Android'
      }
    }
  },
  'webrtc-xctest': {
    'args': ['--xctest']
  },
  'win10': {
    'swarming': {
      'dimensions': {
        'os': 'Windows-10-19045'
      }
    }
  },
  'win10-any': {
    'swarming': {
      'dimensions': {
        'os': 'Windows-10'
      }
    }
  },
  'x86-64': {
    'swarming': {
      'dimensions': {
        'cpu': 'x86-64'
      }
    }
  },
  'xcode_13_main': {
    'args': ['--xcode-build-version', '13c100'],
    'swarming': {
      'named_caches': [{
        'name': 'xcode_ios_13c100',
        'path': 'Xcode.app'
      }]
    }
  },
  'xcode_14_main': {
    'args': ['--xcode-build-version', '14c18'],
    'swarming': {
      'named_caches': [{
        'name': 'xcode_ios_14c18',
        'path': 'Xcode.app'
      }]
    }
  },
  'xcode_15_main': {
    'args': ['--xcode-build-version', '15a240d'],
    'swarming': {
      'named_caches': [{
        'name': 'xcode_ios_15a240d',
        'path': 'Xcode.app'
      }]
    }
  },
  'xcode_parallelization': {
    'args': ['--xcode-parallelization']
  }
}
