# 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': 'build15-a7'
      }
    }
  },
  '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
  },
  'linux-bionic': {
    'swarming': {
      'dimensions': {
        'os': 'Ubuntu-18.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:723fc1a6c8cdf2631a57851f5610e598db0c1de1'
      }]
    }
  },
  '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-any': {
    'swarming': {
      'dimensions': {
        'os': 'Windows-10'
      }
    }
  },
  'win10-override': {
    'swarming': {
      'dimensions': {
        'os': 'Windows-10-19042|Windows-10-19045'
      }
    }
  },
  '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']
    }
  }
}
