# 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',
      },
    },
  },
  'cores-12': {
    'swarming': {
      'dimensions': {
        'cores': '12',
      }
    }
  },
  'ios-device-15.3': {
    'swarming': {
      'dimensions': {
        'os': 'iOS-15.3',
        'pool': 'chrome.tests',
      },
    },
  },
  'ios-device-perf': {
    'swarming': {
      'idempotent': False,
      'dimensions': {
        'os': 'iOS-12.4.1',
        'pool': 'WebRTC',
        'id': 'build15-a7',
      },
    },
  },
  'ios-simulator-12.4': {
    '$mixin_append': {
      'args': [
        '--platform',
        'iPhone X',
        '--version',
        '12.4',
      ],
      'swarming': {
        'named_caches': [
          {
            'name': 'runtime_ios_12_4',
            'path': 'Runtime-ios-12.4',
          },
        ],
      },
    }
  },
  'ios-simulator-13.6': {
    '$mixin_append': {
      'args': [
        '--platform',
        'iPhone X',
        '--version',
        '13.6',
      ],
      'swarming': {
        'named_caches': [
          {
            'name': 'runtime_ios_13_6',
            'path': 'Runtime-ios-13.6',
          },
        ],
      },
    }
  },
  'ios-simulator-14.5': {
    '$mixin_append': {
      'args': [
        '--platform',
        'iPhone X',
        '--version',
        '14.5',
      ],
      'swarming': {
        'named_caches': [
          {
            'name': 'runtime_ios_14_5',
            'path': 'Runtime-ios-14.5',
          },
        ],
      },
    }
  },
  'logdog-butler': {
    'swarming': {
      'cipd_packages': [
        {
          "cipd_package": 'infra/tools/luci/logdog/butler/${platform}',
          'location': 'bin',
          'revision': 'git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c',
        },
      ],
    },
  },
  'mac-m1-cpu': {
    'swarming': {
      'dimensions': {
        'cpu': 'arm64-64-Apple_M1',
      }
    }
  },
  'mac11': {
    'swarming': {
      'dimensions': {
        'os': 'Mac-11'
      }
    }
  },
  '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': {
      # Perf tests are marked as not idempotent, which means they're re-run even
      # if they did not change this build. This will give the dashboard some
      # more variance data to work with.
      'idempotent': False,
      'dimensions': {
        'pool': 'WebRTC-perf',
      },
    },
  },
  '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',
      ],
    }
  },
  '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'
    }
  },
  'shamu': {
    'swarming': {
      'dimensions': {
        'device_type': 'shamu',
        'os': 'Android',
      },
    },
  },
  '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,
    },
  },
  'webrtc-xctest': {
    '$mixin_append': {
      'args': [
        '--xctest',
        '--undefok=enable-run-ios-unittests-with-xctest',
      ],
    },
  },
  'xcode_13_main': {
    '$mixin_append': {
      'args': ['--xcode-build-version', '13c100']
    },
    'swarming': {
      'named_caches': [{
        'name': 'xcode_ios_13c100',
        'path': 'Xcode.app'
      }]
    }
  },
}
