# 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'
      }
    }
  },
  'arm64': {
    'swarming': {
      'dimensions': {
        'cpu': 'arm64'
      }
    }
  },
  '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.7': {
    'swarming': {
      'dimensions': {
        'os': 'iOS-16.7.5',
        'pool': 'chrome.tests'
      }
    }
  },
  'ios-device-perf': {
    'swarming': {
      'idempotent': False,
      'dimensions': {
        'os': 'iOS-17.6.1',
        'pool': 'WebRTC'
      }
    }
  },
  'ios_runtime_cache_16_4': {
    'swarming': {
      'named_caches': [{
        'name': 'runtime_ios_16_4',
        'path': 'Runtime-ios-16.4'
      }]
    }
  },
  'ios_runtime_cache_17_5': {
    'swarming': {
      'named_caches': [{
        'name': 'runtime_ios_17_5',
        'path': 'Runtime-ios-17.5'
      }]
    }
  },
  'ios_runtime_cache_18_0': {
    'swarming': {
      'named_caches': [{
        'name': 'runtime_ios_18_0',
        'path': 'Runtime-ios-18.0'
      }]
    }
  },
  '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'
      }
    }
  },
  'linux-jammy': {
    'swarming': {
      'dimensions': {
        'os': 'Ubuntu-22.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_14_arm64': {
    'swarming': {
      'dimensions': {
        'cpu': 'arm64',
        'os': 'Mac-14'
      }
    }
  },
  'mac_14_x64': {
    'swarming': {
      'dimensions': {
        'cpu': 'x86-64',
        'os': 'Mac-14'
      }
    }
  },
  'mac_toolchain': {
    'swarming': {
      'cipd_packages': [{
        'cipd_package':
        'infra/tools/mac_toolchain/${platform}',
        'location':
        '.',
        'revision':
        'git_revision:a18b7d95d26f3c6bf9591978b19cf0ca8268ac7d'
      }]
    }
  },
  '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'
      }
    }
  },
  'win11': {
    'swarming': {
      'dimensions': {
        'os': 'Windows-11-22000'
      }
    }
  },
  'x86-64': {
    'swarming': {
      'dimensions': {
        'cpu': 'x86-64'
      }
    }
  },
  'xcode_15_main': {
    'args': ['--xcode-build-version', '15f31d'],
    'swarming': {
      'named_caches': [{
        'name': 'xcode_ios_15f31d',
        'path': 'Xcode.app'
      }]
    }
  },
  'xcode_16_main': {
    'args': ['--xcode-build-version', '16a5230g'],
    'swarming': {
      'named_caches': [{
        'name': 'xcode_ios_16a5230g',
        'path': 'Xcode.app'
      }]
    }
  },
  'xcodebuild_sim_runner': {
    'args': ['--xcodebuild-sim-runner']
  }
}
