# 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'
      }
    }
  },
  'fuchsia-gtest-output': {
    '$mixin_append': {
      '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-15.7': {
    'swarming': {
      'dimensions': {
        'os': 'iOS-15.7',
        'pool': 'chrome.tests'
      }
    }
  },
  'ios-device-perf': {
    'swarming': {
      'idempotent': False,
      'dimensions': {
        'os': 'iOS-12.4.1',
        'pool': 'WebRTC',
        'id': 'mac-254-e504'
      }
    }
  },
  'ios_runtime_cache_14_5': {
    '$mixin_append': {
      'swarming': {
        'named_caches': [{
          'name': 'runtime_ios_14_5',
          'path': 'Runtime-ios-14.5'
        }]
      }
    }
  },
  'ios_runtime_cache_15_5': {
    '$mixin_append': {
      'swarming': {
        'named_caches': [{
          'name': 'runtime_ios_15_5',
          'path': 'Runtime-ios-15.5'
        }]
      }
    }
  },
  'ios_runtime_cache_16_2': {
    '$mixin_append': {
      '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:a598cd77abc01089647a79e3cfa3cc8e8ecb5118'
      }]
    }
  },
  'out_dir_arg': {
    '$mixin_append': {
      'args': ['--out-dir', '${ISOLATED_OUTDIR}']
    }
  },
  'perf-fuchsia-perf-tests': {
    'merge': {
      'script': '//tools_webrtc/perf/process_perf_results.py',
      'args': ['--test-suite', 'fuchsia_perf_tests']
    },
    '$mixin_append': {
      'args': [
        '--nologs',
        '--isolated-script-test-perf-output=${ISOLATED_OUTDIR}/perftest-output.json'
      ]
    }
  },
  'perf-low-bandwidth-audio-perf-test': {
    'merge': {
      'script': '//tools_webrtc/perf/process_perf_results.py',
      'args': ['--test-suite', 'low_bandwidth_audio_perf_test']
    }
  },
  'perf-output': {
    '$mixin_append': {
      '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-webrtc-perf-tests': {
    'merge': {
      'script': '//tools_webrtc/perf/process_perf_results.py',
      'args': ['--test-suite', 'webrtc_perf_tests']
    },
    '$mixin_append': {
      'args': ['--nologs']
    }
  },
  'quick-perf-tests': {
    '$mixin_append': {
      'args': ['--force_fieldtrials=WebRTC-QuickPerfTest/Enabled/', '--nologs']
    }
  },
  'redfin': {
    'swarming': {
      'dimensions': {
        'device_type': 'redfin',
        'os': 'Android'
      }
    }
  },
  'resultdb-gtest-json-format': {
    '$mixin_append': {
      '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
    }
  },
  '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': {
    '$mixin_append': {
      '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': {
    '$mixin_append': {
      'args': ['--xcode-build-version', '13c100']
    },
    'swarming': {
      'named_caches': [{
        'name': 'xcode_ios_13c100',
        'path': 'Xcode.app'
      }]
    }
  },
  'xcode_14_main': {
    '$mixin_append': {
      'args': ['--xcode-build-version', '14c18']
    },
    'swarming': {
      'named_caches': [{
        'name': 'xcode_ios_14c18',
        'path': 'Xcode.app'
      }]
    }
  },
  'xcode_parallelization': {
    '$mixin_append': {
      'args': ['--xcode-parallelization']
    }
  }
}
