# Copyright 2018 The V8 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.
#
# Please keep builder names, builder configs and test definitions sorted.
# Builder names should be sorted alphabetically. Builder configs should have
# keys sorted in the alphabetical order except 'tests' key, which should always
# come last. Test definitions must have keys in the following order, but omit
# optional fields:
#  * name (required)
#  * suffix
#  * variant
#  * test_args
#  * shards
#  * swarming_dimensions
#  * swarming_task_attrs
#
# Please also format test definitions as a single line with ', ' separating
# fields, e.g.
#
#   {'name': 'v8testing', 'variant': 'extra', 'shards': 2}
#
# After formatting test definitions this way, please sort them alphabetically by
# test name. For all variants of the test with the same name, the
# least-qualified test (no variant, no test args) should come first. You may
# also deviate from the alphabetical order if necessary and group tests
# differently, but in this case please add a comment before each group and
# continue to sort tests using the rules above within each group.

{
  ##############################################################################
  ### luci.v8.try
  ##############################################################################
  # Android
  'v8_android_arm64_n5x_rel_ng_triggered': {
    'swarming_dimensions' : {
      'device_os': 'MMB29Q',
      'device_type': 'bullhead',
      'os': 'Android',
    },
    'tests': [
      {'name': 'benchmarks', 'variant': 'default'},
      {'name': 'v8testing', 'variant': 'default', 'shards': 4},
      {'name': 'v8testing', 'variant': 'trusted', 'shards': 4},
      {'name': 'mozilla', 'variant': 'default'},
      {'name': 'test262', 'variant': 'default', 'shards': 9},
    ],
  },
  ##############################################################################
  # Fuchsia
  'v8_fuchsia_rel_ng_triggered': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'fuchsia-unittests'},
    ],
  },
  'V8 Fuchsia': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'fuchsia-unittests'},
    ],
  },
  ##############################################################################
  # Linux32
  'v8_linux_dbg_ng_triggered': {
    'swarming_dimensions' : {
      'cpu': 'x86-64-avx2',
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'benchmarks'},
      {'name': 'benchmarks', 'variant': 'extra'},
      {'name': 'mjsunit_sp_frame_access'},
      {'name': 'mozilla'},
      {'name': 'mozilla', 'variant': 'extra'},
      {'name': 'test262', 'variant': 'default', 'shards': 2},
      {'name': 'test262', 'variant': 'extra', 'shards': 3},
      {'name': 'v8testing', 'shards': 3},
      {'name': 'v8testing', 'variant': 'extra', 'shards': 2},
      # Noavx.
      {
        'name': 'mozilla',
        'suffix': 'noavx',
        'test_args': ['--extra-flags', '--noenable-avx']
      },
      {
        'name': 'test262',
        'suffix': 'noavx',
        'variant': 'default',
        'test_args': ['--extra-flags', '--noenable-avx']
      },
      {
        'name': 'v8testing',
        'suffix': 'noavx',
        'test_args': ['--extra-flags', '--noenable-avx'],
        'shards': 2
      },
    ],
  },
  'v8_linux_gc_stress_dbg_ng_triggered': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'mjsunit', 'variant': 'slow_path', 'test_args': ['--gc-stress'], 'shards': 2},
      {'name': 'd8testing', 'test_args': ['--gc-stress'], 'shards': 5},
    ],
  },
  'v8_linux_gcc_rel_ng_triggered': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'v8testing'},
    ],
  },
  'v8_linux_nodcheck_rel_ng_triggered': {
    'swarming_dimensions' : {
      'cpu': 'x86-64-avx2',
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'benchmarks'},
      {'name': 'benchmarks', 'variant': 'extra'},
      {'name': 'mozilla'},
      {'name': 'mozilla', 'variant': 'extra'},
      {'name': 'test262', 'shards': 2},
      {'name': 'test262', 'variant': 'extra', 'shards': 2},
      {'name': 'v8testing', 'shards': 2},
      {'name': 'v8testing', 'variant': 'extra'},
    ],
  },
  'v8_linux_noi18n_rel_ng_triggered': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'mozilla', 'variant': 'default'},
      {'name': 'test262', 'variant': 'default'},
      {'name': 'v8testing', 'variant': 'default', 'shards': 2},
    ],
  },
  'v8_linux_rel_ng_triggered': {
    'swarming_dimensions' : {
      'cpu': 'x86-64-avx2',
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'benchmarks'},
      {'name': 'benchmarks', 'variant': 'extra'},
      {'name': 'gcmole'},
      {'name': 'mjsunit_sp_frame_access'},
      {'name': 'mozilla'},
      {'name': 'mozilla', 'variant': 'extra'},
      {'name': 'optimize_for_size'},
      {'name': 'test262', 'shards': 4},
      {'name': 'test262', 'variant': 'extra', 'shards': 3},
      {'name': 'v8testing', 'shards': 2},
      {'name': 'v8testing', 'suffix': 'isolates', 'test_args': ['--isolates'], 'shards': 2},
      {'name': 'v8testing', 'variant': 'extra', 'shards': 2},
    ],
  },
  'v8_linux_optional_rel_ng_triggered': {
    'swarming_dimensions' : {
      'cpu': 'x86-64-avx2',
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      # Code serializer.
      {'name': 'benchmarks', 'variant': 'code_serializer', 'shards': 1},
      {'name': 'd8testing', 'variant': 'code_serializer', 'shards': 1},
      {'name': 'mozilla', 'variant': 'code_serializer', 'shards': 1},
      {'name': 'test262', 'variant': 'code_serializer', 'shards': 1},
      # No SSE3.
      {
        'name': 'mozilla',
        'suffix': 'nosse3',
        'test_args': [
          '--extra-flags',
          '--noenable-sse3 --noenable-ssse3 --noenable-sse4-1 --noenable-avx',
        ],
      },
      {
        'name': 'test262',
        'suffix': 'nosse3',
        'variant': 'default',
        'test_args': [
          '--extra-flags',
          '--noenable-sse3 --noenable-ssse3 --noenable-sse4-1 --noenable-avx',
        ],
      },
      {
        'name': 'v8testing',
        'suffix': 'nosse3',
        'test_args': [
          '--extra-flags',
          '--noenable-sse3 --noenable-ssse3 --noenable-sse4-1 --noenable-avx',
        ],
        'shards': 3,
      },
      # No SSE4.
      {
        'name': 'mozilla',
        'suffix': 'nosse4',
        'test_args': ['--extra-flags', '--noenable-sse4-1 --noenable-avx'],
      },
      {
        'name': 'test262',
        'suffix': 'nosse4',
        'variant': 'default',
        'test_args': ['--extra-flags', '--noenable-sse4-1 --noenable-avx'],
      },
      {
        'name': 'v8testing',
        'suffix': 'nosse4',
        'test_args': ['--extra-flags', '--noenable-sse4-1 --noenable-avx'],
        'shards': 3,
      },
      # Noavx.
      {
        'name': 'mozilla',
        'suffix': 'noavx',
        'test_args': ['--extra-flags', '--noenable-avx']
      },
      {
        'name': 'test262',
        'suffix': 'noavx',
        'variant': 'default',
        'test_args': ['--extra-flags', '--noenable-avx']
      },
      {
        'name': 'v8testing',
        'suffix': 'noavx',
        'test_args': ['--extra-flags', '--noenable-avx'],
        'shards': 2
      },
    ],
  },
  'v8_linux_verify_csa_rel_ng_triggered': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'v8testing', 'shards': 2},
    ],
  },
  ##############################################################################
  # Linux32 with arm simulators
  'v8_linux_arm_dbg_ng_triggered': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'mjsunit_sp_frame_access'},
      {'name': 'mozilla'},
      {'name': 'test262', 'variant': 'default'},
      {'name': 'v8testing', 'shards': 7},
      {'name': 'v8testing', 'variant': 'extra', 'shards': 6},
      {'name': 'v8testing', 'variant': 'trusted', 'shards': 2},
    ],
  },
  'v8_linux_arm_lite_rel_ng_triggered': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'v8testing', 'variant': 'default', 'shards': 4},
    ],
  },
  'v8_linux_arm_rel_ng_triggered': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'mjsunit_sp_frame_access', 'shards': 2},
      {'name': 'mozilla', 'shards': 2},
      {'name': 'test262', 'variant': 'default', 'shards': 2},
      {'name': 'v8testing', 'shards': 10},
      {'name': 'v8testing', 'variant': 'extra', 'shards': 8},
      {'name': 'v8testing', 'variant': 'trusted', 'shards': 2},
    ],
  },
  ##############################################################################
  # Linux64
  'v8_linux64_asan_rel_ng_triggered': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'test262', 'shards': 7},
      {'name': 'v8testing', 'shards': 3},
      {'name': 'v8testing', 'variant': 'extra', 'shards': 3},
      {'name': 'v8testing', 'variant': 'no_local_heaps'},
      {'name': 'v8testing', 'variant': 'slow_path'},
    ],
  },
  'v8_linux64_cfi_rel_ng_triggered': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'benchmarks'},
      {'name': 'mozilla'},
      {'name': 'optimize_for_size'},
      {'name': 'test262', 'variant': 'default'},
      {'name': 'v8testing', 'shards': 3},
    ],
  },
  'v8_linux64_dbg_ng_triggered': {
    'swarming_dimensions' : {
      'cpu': 'x86-64-avx2',
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'benchmarks'},
      {'name': 'benchmarks', 'variant': 'extra'},
      {'name': 'mjsunit_sp_frame_access'},
      {'name': 'mozilla'},
      {'name': 'mozilla', 'variant': 'extra'},
      {'name': 'test262', 'variant': 'default'},
      {'name': 'test262', 'variant': 'extra', 'shards': 3},
      {'name': 'v8testing', 'shards': 3},
      {'name': 'v8testing', 'variant': 'extra', 'shards': 3},
      {'name': 'v8testing', 'variant': 'minor_mc'},
      {'name': 'v8testing', 'variant': 'no_lfa'},
      {'name': 'v8testing', 'variant': 'stress_instruction_scheduling'},
      {'name': 'v8testing', 'variant': 'stress_concurrent_allocation'},
    ],
  },
  'v8_linux64_fuzzilli_ng_triggered': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    # TODO(almuthanna): Add a new test config for the fuzzilli suite.
    'tests': [],
  },
  'v8_linux64_gc_stress_custom_snapshot_dbg_ng_triggered': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {
        'name': 'mjsunit',
        'test_args': ['--gc-stress', '--no-harness'],
        'shards': 3,
      },
    ],
  },
  'v8_linux64_fyi_rel_ng_triggered': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      # Infra staging.
      {'name': 'v8testing', 'variant': 'infra_staging', 'shards': 2},
      # Native context independent code.
      {'name': 'v8testing', 'variant': 'nci'},
      {'name': 'v8testing', 'variant': 'nci_as_midtier'},
      # Stress sampling.
      {'name': 'mjsunit', 'variant': 'stress_sampling'},
      {'name': 'webkit', 'variant': 'stress_sampling'},
      # Stress snapshot.
      {'name': 'mjsunit', 'variant': 'stress_snapshot'},
      # Experimental regexp engine.
      {'name': 'mjsunit', 'variant': 'experimental_regexp'},
    ],
  },
  'v8_linux64_msan_rel_ng_triggered': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'test262', 'variant': 'default', 'shards': 2},
      {'name': 'v8testing', 'shards': 5},
    ],
  },
  'v8_linux64_nodcheck_rel_ng_triggered': {
    'swarming_dimensions' : {
      'cpu': 'x86-64-avx2',
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'benchmarks'},
      {'name': 'benchmarks', 'variant': 'assert_types'},
      {'name': 'benchmarks', 'variant': 'extra'},
      {'name': 'check-bytecode-baseline'},
      {'name': 'mozilla'},
      {'name': 'mozilla', 'variant': 'assert_types'},
      {'name': 'mozilla', 'variant': 'extra'},
      {'name': 'perf_integration'},
      {'name': 'test262', 'shards': 2},
      {'name': 'test262', 'variant': 'assert_types', 'shards': 2},
      {'name': 'test262', 'variant': 'extra', 'shards': 2},
      {'name': 'v8testing', 'shards': 2},
      {'name': 'v8testing', 'variant': 'assert_types'},
      {'name': 'v8testing', 'variant': 'extra'},
      {'name': 'v8testing', 'variant': 'no_lfa'},
      {'name': 'v8testing', 'variant': 'stress_instruction_scheduling'},
    ],
  },
  'v8_linux64_perfetto_dbg_ng_triggered': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'v8testing', 'shards': 3},
    ],
  },
  'v8_linux64_pointer_compression_rel_ng_triggered': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'v8testing', 'shards': 3},
    ],
  },
  'v8_linux64_rel_ng_triggered': {
    'swarming_dimensions' : {
      'cpu': 'x86-64-avx2',
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      # TODO(machenbach): Add benchmarks.
      # TODO(machenbach): Add mozilla tests.
      {'name': 'mjsunit_sp_frame_access'},
      {'name': 'optimize_for_size'},
      {'name': 'test262', 'shards': 4},
      {'name': 'test262', 'variant': 'extra', 'shards': 3},
      {'name': 'v8initializers'},
      {'name': 'v8testing', 'shards': 2},
      {'name': 'v8testing', 'variant': 'extra', 'shards': 2},
      {'name': 'v8testing', 'variant': 'minor_mc'},
      {'name': 'v8testing', 'variant': 'no_lfa'},
      {'name': 'v8testing', 'variant': 'slow_path'},
      {'name': 'v8testing', 'variant': 'stress_instruction_scheduling'},
    ],
  },
  'v8_linux64_tsan_rel_ng_triggered': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'benchmarks'},
      {'name': 'mozilla'},
      {'name': 'test262', 'variant': 'default', 'shards': 3},
      {'name': 'v8testing', 'shards': 5},
      {'name': 'v8testing', 'variant': 'extra', 'shards': 3},
      {'name': 'v8testing', 'variant': 'no_local_heaps'},
      {'name': 'v8testing', 'variant': 'slow_path'},
      {'name': 'v8testing', 'variant': 'stress_concurrent_allocation'},
    ],
  },
  'v8_linux64_tsan_no_cm_rel_ng_triggered': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {
        'name': 'v8testing',
        'shards': 6,
      },
      {
        'name': 'v8testing',
        'suffix': 'future',
        'test_args': ['--extra-flags=--future'],
        'shards': 6,
      },
    ],
  },
  'v8_linux64_tsan_isolates_rel_ng_triggered': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'v8testing', 'test_args': ['--isolates'], 'shards': 7},
    ],
  },
  'v8_linux64_ubsan_rel_ng_triggered': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'v8testing', 'shards': 2},
    ],
  },
  'v8_linux64_verify_csa_rel_ng_triggered': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'v8testing', 'shards': 2},
    ],
  },
  ##############################################################################
  # Linux64 with arm64 simulators
  'v8_linux_arm64_dbg_ng_triggered': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'mjsunit_sp_frame_access'},
      {'name': 'mozilla', 'shards': 4},
      {'name': 'test262', 'variant': 'default', 'shards': 4},
      {'name': 'v8testing', 'shards': 14},
      {'name': 'v8testing', 'variant': 'extra', 'shards': 10},
      {'name': 'v8testing', 'variant': 'trusted', 'shards': 5},
    ],
  },
  'v8_linux_arm64_gc_stress_dbg_ng_triggered': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'd8testing', 'test_args': ['--gc-stress'], 'shards': 12},
    ],
  },
  'v8_linux_arm64_rel_ng_triggered': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'mjsunit_sp_frame_access', 'shards': 4},
      {'name': 'mozilla', 'shards': 4},
      {'name': 'test262', 'variant': 'default', 'shards': 4},
      {'name': 'v8testing', 'shards': 14},
      {'name': 'v8testing', 'variant': 'extra', 'shards': 10},
      {'name': 'v8testing', 'variant': 'trusted', 'shards': 5},
    ],
  },
  'v8_linux_arm64_cfi_rel_ng_triggered': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'test262', 'variant': 'default', 'shards': 3},
      {'name': 'v8testing', 'shards': 4},
    ],
  },
  'v8_linux64_arm64_pointer_compression_rel_ng_triggered': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'v8testing', 'shards': 12},
    ],
  },
  ##############################################################################
  # Linux64 with RISC-V simulators
  'v8_linux64_riscv64_rel_ng_triggered': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'v8testing', 'shards': 3},
    ],
  },
  ##############################################################################
  # Odroids with native arm
  'v8_odroid_arm_rel_ng_triggered': {
    'swarming_dimensions' : {
      'cores': '8',
      'cpu': 'armv7l-32-ODROID-XU4',
      'os': 'Ubuntu-16.04',
    },
    'swarming_task_attrs': {
      # Use same prio as CI due to limited resources.
      'priority': 25,
    },
    'tests': [
      {'name': 'benchmarks'},
      {'name': 'optimize_for_size'},
      {'name': 'v8testing', 'shards': 2},
    ],
  },
  ##############################################################################
  # Win32
  'v8_win_dbg_ng_triggered': {
    'swarming_dimensions' : {
      'cpu': 'x86-64',
      'os': 'Windows-7-SP1',
    },
    'tests': [
      {'name': 'mozilla'},
      {'name': 'v8testing', 'shards': 3},
    ],
  },
  'v8_win_rel_ng_triggered': {
    'swarming_dimensions' : {
      'cpu': 'x86-64',
      'os': 'Windows-7-SP1',
    },
    'tests': [
      {'name': 'mozilla'},
      {'name': 'test262', 'variant': 'default', 'shards': 2},
      {'name': 'v8testing', 'shards': 2},
    ],
  },
  ##############################################################################
  # Win64
  'v8_win64_asan_rel_ng_triggered': {
    'swarming_dimensions' : {
      'os': 'Windows-10-15063',
    },
    'tests': [
      {'name': 'v8testing', 'shards': 5},
    ],
  },
  'v8_win64_dbg_ng_triggered': {
    'swarming_dimensions' : {
      'cpu': 'x86-64',
      'os': 'Windows-10-15063',
    },
    'tests': [
      {'name': 'mozilla'},
      {'name': 'test262', 'variant': 'default', 'shards': 2},
      {'name': 'v8testing', 'shards': 3},
      {'name': 'v8testing', 'variant': 'extra', 'shards': 2},
    ],
  },
  'v8_win64_msvc_rel_ng_triggered': {
    'swarming_dimensions' : {
      'cpu': 'x86-64',
      'os': 'Windows-10-15063',
    },
    'tests': [
      {'name': 'mozilla'},
      {'name': 'test262', 'variant': 'default'},
      {'name': 'v8testing', 'shards': 2},
    ],
  },
  'v8_win64_rel_ng_triggered': {
    'swarming_dimensions' : {
      'cpu': 'x86-64',
      'os': 'Windows-10-15063',
    },
    'tests': [
      {'name': 'mozilla'},
      {'name': 'test262', 'variant': 'default'},
      {'name': 'v8testing', 'shards': 2},
      {'name': 'v8testing', 'variant': 'extra'},
    ],
  },
  ##############################################################################
  # Mac64
  'v8_mac64_asan_rel_ng_triggered': {
    'swarming_dimensions' : {
      'cpu': 'x86-64',
      'os': 'Mac-10.13',
    },
    'tests': [
      {'name': 'v8testing', 'shards': 4},
    ],
  },
  'v8_mac64_dbg_ng_triggered': {
    'swarming_dimensions' : {
      'cpu': 'x86-64',
      'os': 'Mac-10.13',
    },
    'tests': [
      {'name': 'mozilla'},
      {'name': 'test262', 'variant': 'default', 'shards': 2},
      {'name': 'v8testing', 'shards': 3},
      {'name': 'v8testing', 'variant': 'extra', 'shards': 2},
    ],
  },
  'v8_mac64_gc_stress_dbg_ng_triggered': {
    'swarming_dimensions' : {
      'cpu': 'x86-64',
      'os': 'Mac-10.13',
    },
    'tests': [
      {'name': 'd8testing', 'test_args': ['--gc-stress'], 'shards': 4},
    ],
  },
  'v8_mac64_rel_ng_triggered': {
    'swarming_dimensions' : {
      'cpu': 'x86-64',
      'os': 'Mac-10.13',
    },
    'tests': [
      {'name': 'mozilla'},
      {'name': 'test262', 'variant': 'default', 'shards': 2},
      {'name': 'v8testing', 'shards': 2},
      {'name': 'v8testing', 'variant': 'extra'},
    ],
  },
  'v8_mac_arm64_rel_ng_triggered': {
    'swarming_dimensions' : {
      'cpu': 'arm64',
      'os': 'Mac-11.0',
      'pool': 'chromium.tests.mac-arm64',
    },
    'tests': [
      {'name': 'v8testing'},
    ],
  },
  'v8_mac_arm64_dbg_ng_triggered': {
    'swarming_dimensions' : {
      'cpu': 'arm64',
      'os': 'Mac-11.0',
      'pool': 'chromium.tests.mac-arm64',
    },
    'tests': [
      {'name': 'v8testing'},
    ],
  },
  'v8_mac_arm64_full_dbg_ng_triggered': {
    'swarming_dimensions' : {
      'cpu': 'arm64',
      'os': 'Mac-11.0',
      'pool': 'chromium.tests.mac-arm64',
    },
    'tests': [
      {'name': 'v8testing'},
    ],
  },
  'v8_mac_arm64_sim_rel_ng_triggered': {
    'swarming_dimensions' : {
      'cpu': 'x86-64',
      'os': 'Mac-10.13',
    },
    'tests': [
      {'name': 'v8testing', 'shards': 8},
    ],
  },
  'v8_mac_arm64_sim_dbg_ng_triggered': {
    'swarming_dimensions' : {
      'cpu': 'x86-64',
      'os': 'Mac-10.13',
    },
    'tests': [
      {'name': 'v8testing', 'shards': 8},
    ],
  },
  'v8_mac_arm64_sim_nodcheck_rel_ng_triggered': {
    'swarming_dimensions' : {
      'cpu': 'x86-64',
      'os': 'Mac-10.13',
    },
    'tests': [
      {'name': 'v8testing', 'shards': 8},
    ],
  },
  ##############################################################################
  ### luci.v8.ci
  ##############################################################################
  # Main.
  'V8 Fuzzer': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'swarming_task_attrs': {
      'expiration': 14400,
      'hard_timeout': 3600,
      'priority': 35,
    },
    'tests': [
      {'name': 'jsfunfuzz'},
    ],
  },
  'V8 Linux': {
    'swarming_dimensions': {
      'cpu': 'x86-64-avx2',
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'benchmarks'},
      {'name': 'benchmarks', 'variant': 'extra'},
      {'name': 'gcmole'},
      {'name': 'mjsunit_sp_frame_access'},
      {'name': 'mozilla'},
      {'name': 'mozilla', 'variant': 'extra'},
      {'name': 'optimize_for_size'},
      {'name': 'test262', 'shards': 2},
      {'name': 'test262', 'variant': 'extra'},
      {'name': 'v8initializers'},
      {'name': 'v8testing'},
      {'name': 'v8testing', 'suffix': 'isolates', 'test_args': ['--isolates']},
      {'name': 'v8testing', 'variant': 'extra'},
      # Nosse3.
      {
        'name': 'mozilla',
        'suffix': 'nosse3',
        'test_args': ['--extra-flags', '--noenable-sse3 --noenable-ssse3 --noenable-sse4-1 --noenable-avx']
      },
      {
        'name': 'v8testing',
        'suffix': 'nosse3',
        'test_args': ['--extra-flags', '--noenable-sse3 --noenable-ssse3 --noenable-sse4-1 --noenable-avx']
      },
      # Nosse4.
      {
        'name': 'mozilla',
        'suffix': 'nosse4',
        'test_args': ['--extra-flags', '--noenable-sse4-1 --noenable-avx']
      },
      {
        'name': 'v8testing',
        'suffix': 'nosse4',
        'test_args': ['--extra-flags', '--noenable-sse4-1 --noenable-avx']
      },
      # Noavx.
      {
        'name': 'mozilla',
        'suffix': 'noavx',
        'test_args': ['--extra-flags', '--noenable-avx']
      },
      {
        'name': 'test262',
        'suffix': 'noavx',
        'variant': 'default',
        'test_args': ['--extra-flags', '--noenable-avx']
      },
      {
        'name': 'v8testing',
        'suffix': 'noavx',
        'test_args': ['--extra-flags', '--noenable-avx'],
        'shards': 2
      },
    ],
  },
  'V8 Linux - arm64 - sim - CFI': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'test262', 'variant': 'default', 'shards': 3},
      {'name': 'v8testing', 'shards': 4},
    ],
  },
  'V8 Linux - arm64 - sim - MSAN': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'test262', 'variant': 'default', 'shards': 3},
      {'name': 'v8testing', 'shards': 4},
    ],
  },
  'V8 Linux - debug': {
    'swarming_dimensions': {
      'cpu': 'x86-64-avx2',
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'benchmarks'},
      {'name': 'benchmarks', 'variant': 'code_serializer', 'shards': 1},
      {'name': 'benchmarks', 'variant': 'extra'},
      {'name': 'd8testing', 'variant': 'code_serializer', 'shards': 1},
      {'name': 'mjsunit_sp_frame_access'},
      {'name': 'mozilla'},
      {'name': 'mozilla', 'variant': 'code_serializer', 'shards': 1},
      {'name': 'mozilla', 'variant': 'extra'},
      {'name': 'optimize_for_size'},
      {'name': 'test262', 'shards': 6},
      {'name': 'test262', 'variant': 'code_serializer', 'shards': 2},
      {'name': 'test262', 'variant': 'extra', 'shards': 3},
      {'name': 'v8testing', 'shards': 3},
      {
        'name': 'v8testing',
        'suffix': 'isolates',
        'test_args': ['--isolates'],
        'shards': 4
      },
      {'name': 'v8testing', 'variant': 'extra', 'shards': 2},
      # Nosse3.
      {
        'name': 'mozilla',
        'suffix': 'nosse3',
        'test_args': ['--extra-flags', '--noenable-sse3 --noenable-ssse3 --noenable-sse4-1 --noenable-avx']
      },
      {
        'name': 'test262',
        'suffix': 'nosse3',
        'variant': 'default',
        'test_args': ['--extra-flags', '--noenable-sse3 --noenable-ssse3 --noenable-sse4-1 --noenable-avx']
      },
      {
        'name': 'v8testing',
        'suffix': 'nosse3',
        'test_args': ['--extra-flags', '--noenable-sse3 --noenable-ssse3 --noenable-sse4-1 --noenable-avx'],
        'shards': 3
      },
      # Nosse4.
      {
        'name': 'mozilla',
        'suffix': 'nosse4',
        'test_args': ['--extra-flags', '--noenable-sse4-1 --noenable-avx']
      },
      {
        'name': 'test262',
        'suffix': 'nosse4',
        'variant': 'default',
        'test_args': ['--extra-flags', '--noenable-sse4-1 --noenable-avx']
      },
      {
        'name': 'v8testing',
        'suffix': 'nosse4',
        'test_args': ['--extra-flags', '--noenable-sse4-1 --noenable-avx'],
        'shards': 3
      },
      # Noavx.
      {
        'name': 'mozilla',
        'suffix': 'noavx',
        'test_args': ['--extra-flags', '--noenable-avx']
      },
      {
        'name': 'test262',
        'suffix': 'noavx',
        'variant': 'default',
        'test_args': ['--extra-flags', '--noenable-avx']
      },
      {
        'name': 'v8testing',
        'suffix': 'noavx',
        'test_args': ['--extra-flags', '--noenable-avx'],
        'shards': 2
      },
    ],
  },
  'V8 Linux - full debug': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'swarming_task_attrs': {
      'expiration': 14400,
      'hard_timeout': 3600,
      'priority': 35,
    },
    'tests': [
      {'name': 'v8testing', 'variant': 'default', 'shards': 4},
    ],
  },
  'V8 Linux - gc stress': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {
        'name': 'd8testing',
        'test_args': ['--gc-stress'],
        'shards': 5,
      },
      {
        'name': 'mjsunit',
        'variant': 'slow_path',
        'test_args': ['--gc-stress'],
        'shards': 2,
      },
    ],
  },
  'V8 Linux - noi18n - debug': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'mozilla', 'variant': 'default'},
      {'name': 'test262', 'variant': 'default'},
      {'name': 'v8testing', 'variant': 'default'},
    ],
  },
  'V8 Linux - predictable': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'benchmarks'},
      {'name': 'd8testing'},
      {'name': 'mozilla'},
    ],
  },
  'V8 Linux - shared': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'mozilla'},
      {'name': 'test262', 'variant': 'default'},
      {'name': 'v8testing'},
    ],
  },
  'V8 Linux - verify csa': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'v8testing'},
    ],
  },
  'V8 Linux gcc': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'v8testing'},
    ],
  },
  'V8 Linux64': {
    'swarming_dimensions': {
      'cpu': 'x86-64-avx2',
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'benchmarks'},
      {'name': 'benchmarks', 'variant': 'assert_types'},
      {'name': 'benchmarks', 'variant': 'extra'},
      {'name': 'check-bytecode-baseline'},
      {'name': 'mjsunit_sp_frame_access'},
      {'name': 'mozilla'},
      {'name': 'mozilla', 'variant': 'assert_types'},
      {'name': 'mozilla', 'variant': 'extra'},
      {'name': 'optimize_for_size'},
      {'name': 'perf_integration'},
      {'name': 'test262', 'shards': 2},
      {'name': 'test262', 'variant': 'assert_types'},
      {'name': 'test262', 'variant': 'extra'},
      {'name': 'v8initializers'},
      {'name': 'v8testing'},
      {'name': 'v8testing', 'variant': 'assert_types'},
      {'name': 'v8testing', 'variant': 'extra'},
      {'name': 'v8testing', 'variant': 'minor_mc'},
      {'name': 'v8testing', 'variant': 'no_lfa'},
      {'name': 'v8testing', 'variant': 'stress_instruction_scheduling'},
      # Noavx.
      {
        'name': 'mozilla',
        'suffix': 'noavx',
        'test_args': ['--extra-flags', '--noenable-avx']
      },
      {
        'name': 'test262',
        'suffix': 'noavx',
        'variant': 'default',
        'test_args': ['--extra-flags', '--noenable-avx']
      },
      {
        'name': 'v8testing',
        'suffix': 'noavx',
        'test_args': ['--extra-flags', '--noenable-avx']
      },
    ],
  },
  'V8 Linux64 - cfi': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'benchmarks'},
      {'name': 'mozilla'},
      {'name': 'optimize_for_size'},
      {'name': 'test262', 'variant': 'default'},
      {'name': 'v8testing', 'shards': 2},
    ],
  },
  'V8 Linux64 - custom snapshot - debug': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'mjsunit', 'test_args': ['--no-harness']},
    ],
  },
  'V8 Linux64 - debug': {
    'swarming_dimensions': {
      'cpu': 'x86-64-avx2',
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'benchmarks'},
      {'name': 'benchmarks', 'variant': 'extra'},
      {'name': 'mjsunit_sp_frame_access'},
      {'name': 'mozilla'},
      {'name': 'mozilla', 'variant': 'extra'},
      {'name': 'optimize_for_size'},
      {'name': 'test262', 'shards': 5},
      {'name': 'test262', 'variant': 'extra', 'shards': 3},
      {'name': 'v8testing', 'shards': 2},
      {'name': 'v8testing', 'variant': 'extra', 'shards': 2},
      {'name': 'v8testing', 'variant': 'minor_mc'},
      {'name': 'v8testing', 'variant': 'no_lfa'},
      {'name': 'v8testing', 'variant': 'slow_path'},
      {'name': 'v8testing', 'variant': 'stress_instruction_scheduling'},
      {'name': 'v8testing', 'variant': 'stress_concurrent_allocation'},
      # Noavx.
      {
        'name': 'mozilla',
        'suffix': 'noavx',
        'test_args': ['--extra-flags', '--noenable-avx']
      },
      {
        'name': 'test262',
        'suffix': 'noavx',
        'variant': 'default',
        'test_args': ['--extra-flags', '--noenable-avx']
      },
      {
        'name': 'v8testing',
        'suffix': 'noavx',
        'test_args': ['--extra-flags', '--noenable-avx'],
        'shards': 2
      },
    ],
  },
  'V8 Linux64 - debug - fyi': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      # Infra staging.
      {'name': 'v8testing', 'variant': 'infra_staging', 'shards': 2},
      # Native context independent code.
      {'name': 'v8testing', 'variant': 'nci'},
      {'name': 'v8testing', 'variant': 'nci_as_midtier'},
      # Stress sampling.
      {'name': 'mjsunit', 'variant': 'stress_sampling'},
      {'name': 'webkit', 'variant': 'stress_sampling'},
      # Stress snapshot.
      {'name': 'mjsunit', 'variant': 'stress_snapshot'},
      # Experimental regexp engine.
      {'name': 'mjsunit', 'variant': 'experimental_regexp'},
    ],
  },
  'V8 Linux64 - debug - perfetto': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'swarming_task_attrs': {
      'expiration': 14400,
      'hard_timeout': 3600,
      'priority': 35,
    },
    'tests': [
      {'name': 'v8testing', 'shards': 2},
    ],
  },
  'V8 Linux64 - fyi': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      # Infra staging.
      {'name': 'v8testing', 'variant': 'infra_staging'},
      # Native context independent code.
      {'name': 'v8testing', 'variant': 'nci'},
      {'name': 'v8testing', 'variant': 'nci_as_midtier'},
      # Stress sampling.
      {'name': 'mjsunit', 'variant': 'stress_sampling'},
      {'name': 'webkit', 'variant': 'stress_sampling'},
      # Stress snapshot.
      {'name': 'mjsunit', 'variant': 'stress_snapshot'},
      # Experimental regexp engine.
      {'name': 'mjsunit', 'variant': 'experimental_regexp'},
    ],
  },
  'V8 Linux64 - gcov coverage': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'v8testing'},
    ],
  },
  'V8 Linux64 - internal snapshot': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'v8testing'},
    ],
  },
  'V8 Linux64 - pointer compression': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'v8testing', 'shards': 2},
    ],
  },
  'V8 Linux64 - shared': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'mozilla'},
      {'name': 'test262', 'variant': 'default'},
      {'name': 'v8testing'},
    ],
  },
  'V8 Linux64 - verify csa': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'v8testing'},
    ],
  },
  'V8 Linux64 ASAN': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'test262', 'shards': 5},
      {'name': 'v8testing', 'shards': 2},
      {'name': 'v8testing', 'variant': 'extra', 'shards': 2},
      {'name': 'v8testing', 'variant': 'no_local_heaps', 'shards': 1},
      {'name': 'v8testing', 'variant': 'slow_path', 'shards': 1},
    ],
  },
  'V8 Linux64 GC Stress - custom snapshot': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {
        'name': 'mjsunit',
        'test_args': ['--gc-stress', '--no-harness'],
        'shards': 3,
      },
    ],
  },
  'V8 Linux64 TSAN': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'benchmarks'},
      {'name': 'mozilla'},
      {'name': 'test262', 'variant': 'default', 'shards': 3},
      {'name': 'v8testing', 'shards': 5},
      {'name': 'v8testing', 'variant': 'extra', 'shards': 3},
      {'name': 'v8testing', 'variant': 'no_local_heaps', 'shards': 1},
      {'name': 'v8testing', 'variant': 'slow_path', 'shards': 1},
      {'name': 'v8testing', 'variant': 'stress_concurrent_allocation', 'shards': 1},
    ],
  },
  'V8 Linux64 TSAN - stress-incremental-marking': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'swarming_task_attrs': {
      'expiration': 14400,
      'hard_timeout': 3600,
      'priority': 35,
    },
    'tests': [
      {
        'name': 'benchmarks',
        'test_args': ['--extra-flags=--stress-incremental-marking'],
      },
      {
        'name': 'mozilla',
        'test_args': ['--extra-flags=--stress-incremental-marking'],
      },
      {
        'name': 'test262',
        'variant': 'default',
        'test_args': ['--extra-flags=--stress-incremental-marking'],
        'shards': 4,
      },
      {
        'name': 'v8testing',
        'test_args': ['--extra-flags=--stress-incremental-marking'],
        'shards': 6,
      },
    ],
  },
  'V8 Linux64 TSAN - isolates': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'v8testing', 'test_args': ['--isolates'], 'shards': 7},
    ],
  },
  'V8 Linux64 TSAN - no-concurrent-marking': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {
        'name': 'v8testing',
        'shards': 6,
      },
      {
        'name': 'v8testing',
        'suffix': 'future',
        'test_args': ['--extra-flags=--future'],
        'shards': 6,
      },
    ],
  },
  'V8 Linux64 UBSan': {
    'swarming_dimensions' : {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'mozilla'},
      {'name': 'test262', 'variant': 'default', 'shards': 2},
      {'name': 'v8testing'},
      {'name': 'v8testing', 'variant': 'extra'},
    ],
  },
  'V8 Mac64': {
    'swarming_dimensions': {
      'cpu': 'x86-64',
      'os': 'Mac-10.13',
    },
    'tests': [
      {'name': 'mozilla'},
      {'name': 'test262', 'variant': 'default', 'shards': 2},
      {'name': 'v8testing', 'shards': 2},
      {'name': 'v8testing', 'variant': 'extra'},
    ],
  },
  'V8 Mac64 - debug': {
    'swarming_dimensions': {
      'cpu': 'x86-64',
      'os': 'Mac-10.13',
    },
    'tests': [
      {'name': 'mozilla'},
      {'name': 'test262', 'variant': 'default', 'shards': 2},
      {'name': 'v8testing', 'shards': 4},
      {'name': 'v8testing', 'variant': 'extra', 'shards': 2},
    ],
  },
  'V8 Official Mac ARM64': {
    'swarming_dimensions': {
      'cpu': 'x86-64',
      'os': 'Mac-10.15',
    },
    'tests': [
      {'name': 'mozilla'},
      {'name': 'test262', 'variant': 'default', 'shards': 2},
      {'name': 'v8testing', 'shards': 2},
      {'name': 'v8testing', 'variant': 'extra'},
    ],
  },
  'V8 Official Mac ARM64 Debug': {
    'swarming_dimensions': {
      'cpu': 'x86-64',
      'os': 'Mac-10.15',
    },
    'tests': [
      {'name': 'mozilla'},
      {'name': 'test262', 'variant': 'default', 'shards': 2},
      {'name': 'v8testing', 'shards': 4},
      {'name': 'v8testing', 'variant': 'extra', 'shards': 2},
    ],
  },
  'V8 Mac64 ASAN': {
    'swarming_dimensions': {
      'cpu': 'x86-64',
      'os': 'Mac-10.13',
    },
    'tests': [
      {'name': 'v8testing', 'shards': 5},
    ],
  },
  'V8 Mac64 GC Stress': {
    'swarming_dimensions': {
      'cpu': 'x86-64',
      'os': 'Mac-10.13',
    },
    'tests': [
      {'name': 'd8testing', 'test_args': ['--gc-stress'], 'shards': 4},
    ],
  },
  'V8 Mac - arm64 - release': {
    'swarming_dimensions' : {
      'os': 'Mac-11.0',
      'cpu': 'arm64',
      'pool': 'chromium.tests.mac-arm64',
    },
    'swarming_task_attrs': {
      'expiration': 14400,
      'hard_timeout': 3600,
      'priority': 35,
    },
    'tests': [
      {'name': 'd8testing'},
      {'name': 'd8testing', 'variant': 'extra'},
    ],
  },
  'V8 Mac - arm64 - sim - debug': {
    'swarming_dimensions' : {
      'cpu': 'x86-64',
      'os': 'Mac-10.13',
    },
    'swarming_task_attrs': {
      'expiration': 14400,
      'hard_timeout': 3600,
      'priority': 35,
    },
    'tests': [
      {'name': 'v8testing', 'shards': 8},
    ],
  },
  'V8 Mac - arm64 - sim - release': {
    'swarming_dimensions' : {
      'cpu': 'x86-64',
      'os': 'Mac-10.13',
    },
    'swarming_task_attrs': {
      'expiration': 14400,
      'hard_timeout': 3600,
      'priority': 35,
    },
    'tests': [
      {'name': 'v8testing', 'shards': 8},
    ],
  },
  'V8 Win32': {
    'swarming_dimensions': {
      'cpu': 'x86-64',
      'os': 'Windows-7-SP1',
    },
    'tests': [
      {'name': 'mozilla'},
      {'name': 'test262', 'variant': 'default'},
      {'name': 'v8testing'},
    ],
  },
  'V8 Win32 - debug': {
    'swarming_dimensions': {
      'cpu': 'x86-64',
      'os': 'Windows-7-SP1',
    },
    'tests': [
      {'name': 'mozilla'},
      {'name': 'test262', 'variant': 'default'},
      {'name': 'v8testing', 'shards': 5},
    ],
  },
  'V8 Win64': {
    'swarming_dimensions': {
      'os': 'Windows-10-15063',
    },
    'tests': [
      {'name': 'mozilla'},
      {'name': 'test262', 'variant': 'default'},
      {'name': 'v8testing'},
      {'name': 'v8testing', 'variant': 'extra'},
    ],
  },
  'V8 Win64 - debug': {
    'swarming_dimensions': {
      'os': 'Windows-10-15063',
    },
    'tests': [
      {'name': 'mozilla'},
      {'name': 'test262', 'variant': 'default'},
      {'name': 'v8testing', 'shards': 4},
      {'name': 'v8testing', 'variant': 'extra', 'shards': 3},
    ],
  },
  'V8 Win64 - msvc': {
    'swarming_dimensions': {
      'os': 'Windows-10-15063',
    },
    'tests': [
      {'name': 'mozilla'},
      {'name': 'test262', 'variant': 'default'},
      {'name': 'v8testing'},
    ],
  },
  'V8 Win64 ASAN': {
    'swarming_dimensions': {
      'os': 'Windows-10-15063',
    },
    'tests': [
      {'name': 'v8testing', 'shards': 5},
    ],
  },
  ##############################################################################
  # Ports.
  'V8 Android Arm64 - N5X': {
    'swarming_dimensions': {
      'device_os': 'MMB29Q',
      'device_type': 'bullhead',
      'os': 'Android',
    },
    'tests': [
      {'name': 'mozilla', 'variant': 'default'},
      {'name': 'test262', 'variant': 'default', 'shards': 8},
      {'name': 'v8testing', 'variant': 'default', 'shards': 3},
      {'name': 'v8testing', 'variant': 'trusted', 'shards': 3},
    ],
  },
  'V8 Arm': {
    'swarming_dimensions': {
      'cores': '8',
      'cpu': 'armv7l-32-ODROID-XU4',
      'os': 'Ubuntu-16.04',
    },
    'swarming_task_attrs': {
      'expiration': 21600,
      'hard_timeout': 5400,
    },
    'tests': [
      # Odroid.
      {
        'name': 'benchmarks',
        'suffix': 'ODROID',
        # Less parallelism to prevent OOMs in benchmarks.
        'test_args': ['-j2'],
      },
      {
        'name': 'optimize_for_size',
        'suffix': 'ODROID',
      },
      {
        'name': 'v8testing',
        'suffix': 'ODROID',
        'shards': 2,
      },
    ],
  },
  'V8 Arm - debug': {
    'swarming_dimensions': {
      'cores': '8',
      'cpu': 'armv7l-32-ODROID-XU4',
      'os': 'Ubuntu-16.04',
    },
    'swarming_task_attrs': {
      'expiration': 21600,
      'hard_timeout': 3600,
    },
    'tests': [
      # Odroid.
      {
        'name': 'optimize_for_size',
        'suffix': 'ODROID',
        'variant': 'default',
        'test_args': ['--extra-flags=--verify-heap-skip-remembered-set'],
        'shards': 2,
      },
      {
        'name': 'v8testing',
        'suffix': 'ODROID',
        'variant': 'default',
        'test_args': ['--extra-flags=--verify-heap-skip-remembered-set'],
        'shards': 3,
      },
    ],
  },
  'V8 Arm GC Stress': {
    'swarming_dimensions': {
      'cores': '8',
      'cpu': 'armv7l-32-ODROID-XU4',
      'os': 'Ubuntu-16.04',
    },
    'swarming_task_attrs': {
      'expiration': 21600,
      'hard_timeout': 7200,
    },
    'tests': [
      {
        'name': 'd8testing',
        'suffix': 'ODROID',
        'variant': 'default',
        'test_args': ['--gc-stress', '--extra-flags=--verify-heap-skip-remembered-set'],
        'shards': 3,
      },
    ],
  },
  'V8 Linux - arm - sim': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'mjsunit_sp_frame_access'},
      {'name': 'mozilla'},
      {'name': 'test262', 'variant': 'default'},
      {'name': 'v8testing', 'shards': 6},
      {'name': 'v8testing', 'variant': 'extra', 'shards': 3},
      {'name': 'v8testing', 'variant': 'trusted'},
      # Armv8-a.
      {
        'name': 'mozilla',
        'suffix': 'armv8-a',
        'test_args': ['--extra-flags', '--enable-armv8']
      },
      {
        'name': 'test262',
        'suffix': 'armv8-a',
        'variant': 'default',
        'test_args': ['--extra-flags', '--enable-armv8']
      },
      {
        'name': 'v8testing',
        'suffix': 'armv8-a',
        'test_args': ['--extra-flags', '--enable-armv8'],
        'shards': 4
      },
      # Novfp3.
      {
        'name': 'mozilla',
        'suffix': 'novfp3',
        'test_args': ['--novfp3'],
      },
      {
        'name': 'test262',
        'suffix': 'novfp3',
        'variant': 'default',
        'test_args': ['--novfp3'],
      },
      {
        'name': 'v8testing',
        'suffix': 'novfp3',
        'test_args': ['--novfp3'],
        'shards': 6
      },
    ],
  },
  'V8 Linux - arm - sim - debug': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'mjsunit_sp_frame_access', 'shards': 6},
      {'name': 'mozilla', 'shards': 6},
      {'name': 'test262', 'variant': 'default'},
      {'name': 'v8testing', 'shards': 10},
      {'name': 'v8testing', 'variant': 'extra', 'shards': 8},
      {'name': 'v8testing', 'variant': 'trusted', 'shards': 4},
      # Armv8-a.
      {
        'name': 'mozilla',
        'suffix': 'armv8-a',
        'test_args': ['--extra-flags', '--enable-armv8'],
        'shards': 5,
      },
      {
        'name': 'test262',
        'suffix': 'armv8-a',
        'variant': 'default',
        'test_args': ['--extra-flags', '--enable-armv8'],
        'shards': 5,
      },
      {
        'name': 'v8testing',
        'suffix': 'armv8-a',
        'test_args': ['--extra-flags', '--enable-armv8'],
        'shards': 8
      },
      # Novfp3.
      {
        'name': 'mozilla',
        'suffix': 'novfp3',
        'variant': 'default',
        'test_args': ['--novfp3']
      },
      {
        'name': 'test262',
        'suffix': 'novfp3',
        'variant': 'default',
        'test_args': ['--novfp3']
      },
      {
        'name': 'v8testing',
        'suffix': 'novfp3',
        'variant': 'default',
        'test_args': ['--novfp3'],
        'shards': 8
      },
    ],
  },
  'V8 Linux - arm - sim - lite': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'v8testing', 'variant': 'default', 'shards': 2},
    ],
  },
  'V8 Linux - arm - sim - lite - debug': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'v8testing', 'variant': 'default', 'shards': 4},
    ],
  },
  'V8 Linux - arm64 - sim': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'mjsunit_sp_frame_access'},
      {'name': 'mozilla'},
      {'name': 'test262', 'variant': 'default'},
      {'name': 'v8testing', 'shards': 3},
      {'name': 'v8testing', 'variant': 'extra', 'shards': 2},
      {'name': 'v8testing', 'variant': 'trusted'},
    ],
  },
  'V8 Linux - arm64 - sim - debug': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    # TODO(machenbach): Remove longer timeout when this builder scales better.
    'swarming_task_attrs': {
      'hard_timeout': 3600,
    },
    'tests': [
      {'name': 'mjsunit_sp_frame_access'},
      {'name': 'mozilla', 'shards': 2},
      {'name': 'test262', 'variant': 'default', 'shards': 2},
      {'name': 'v8testing', 'shards': 12},
      {'name': 'v8testing', 'variant': 'extra', 'shards': 9},
      {'name': 'v8testing', 'variant': 'trusted', 'shards': 2},
    ],
  },
  'V8 Linux - arm64 - sim - gc stress': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'swarming_task_attrs': {
      'expiration': 14400,
      'hard_timeout': 7200,
      'priority': 35,
    },
    'tests': [
      {
        'name': 'd8testing',
        'test_args': ['--gc-stress', '--extra-flags=--verify-heap-skip-remembered-set'],
        'shards': 5
      },
    ],
  },
  'V8 Linux - mips64el - sim': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'swarming_task_attrs': {
      'expiration': 14400,
      'hard_timeout': 3600,
      'priority': 35,
    },
    'tests': [
      {'name': 'test262', 'variant': 'default'},
      {'name': 'v8testing', 'shards': 4},
    ],
  },
  'V8 Linux - mipsel - sim': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'swarming_task_attrs': {
      'expiration': 14400,
      'hard_timeout': 3600,
      'priority': 35,
    },
    'tests': [
      {'name': 'test262', 'variant': 'default'},
      {'name': 'v8testing', 'shards': 4},
    ],
  },
  'V8 Linux - ppc64 - sim': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'swarming_task_attrs': {
      'expiration': 14400,
      'hard_timeout': 3600,
      'priority': 35,
    },
    'tests': [
      {'name': 'v8testing', 'shards': 3},
    ],
  },
  'V8 Linux - riscv64 - sim': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'swarming_task_attrs': {
      'expiration': 14400,
      'hard_timeout': 3600,
      'priority': 35,
    },
    'tests': [
      {'name': 'v8testing', 'shards': 3},
    ],
  },
  'V8 Linux - s390x - sim': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'swarming_task_attrs': {
      'expiration': 14400,
      'hard_timeout': 3600,
      'priority': 35,
    },
    'tests': [
      {'name': 'v8testing', 'shards': 3},
    ],
  },
  'V8 Linux64 - arm64 - sim - pointer compression': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'swarming_task_attrs': {
      'expiration': 14400,
      'hard_timeout': 3600,
      'priority': 35,
    },
    'tests': [
      {'name': 'v8testing', 'shards': 7},
    ],
  },
  ##############################################################################
  # Clusterfuzz.
  'V8 NumFuzz': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'swarming_task_attrs': {
      'expiration': 13800,
      'hard_timeout': 4200,
      'priority': 35,
    },
    'tests': [
      {
        'name': 'numfuzz',
        'suffix': 'deopt',
        'test_args': ['--total-timeout-sec=2100', '--stress-deopt=1']
      },
    ],
  },
  'V8 NumFuzz - TSAN': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'swarming_task_attrs': {
      'expiration': 13800,
      'hard_timeout': 4200,
      'priority': 35,
    },
    'tests': [
      {'name': 'd8testing_random_gc', 'shards': 2},
      {
        'name': 'numfuzz',
        'suffix': 'marking',
        'test_args': ['--total-timeout-sec=2100', '--stress-marking=1']
      },
      {
        'name': 'numfuzz',
        'suffix': 'delay',
        'test_args': ['--total-timeout-sec=2100', '--stress-delay-tasks=1']
      },
      {
        'name': 'numfuzz',
        'suffix': 'threads',
        'test_args': ['--total-timeout-sec=2100', '--stress-thread-pool-size=1']
      },
      {
        'name': 'numfuzz',
        'suffix': 'combined',
        'test_args': [
          '--total-timeout-sec=2100',
          '--stress-delay-tasks=4',
          '--stress-deopt=2',
          '--stress-compaction=2',
          '--stress-gc=4',
          '--stress-marking=4',
          '--stress-scavenge=4',
          '--stress-thread-pool-size=2',
        ],
        'shards': 4
      },
      {
        'name': 'numfuzz',
        'suffix': 'scavenge',
        'test_args': ['--total-timeout-sec=2100', '--stress-scavenge=1']
      },
    ],
  },
  'V8 NumFuzz - debug': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'swarming_task_attrs': {
      'expiration': 13800,
      'hard_timeout': 4200,
      'priority': 35,
    },
    'tests': [
      {'name': 'd8testing_random_gc'},
      {
        'name': 'numfuzz',
        'suffix': 'marking',
        'test_args': ['--total-timeout-sec=2100', '--stress-marking=1'],
        'shards': 2
      },
      {
        'name': 'numfuzz',
        'suffix': 'delay',
        'test_args': ['--total-timeout-sec=2100', '--stress-delay-tasks=1']
      },
      {
        'name': 'numfuzz',
        'suffix': 'threads',
        'test_args': ['--total-timeout-sec=2100', '--stress-thread-pool-size=1']
      },
      {
        'name': 'numfuzz',
        'suffix': 'combined',
        'test_args': [
          '--total-timeout-sec=2100',
          '--stress-delay-tasks=4',
          '--stress-deopt=2',
          '--stress-compaction=2',
          '--stress-gc=4',
          '--stress-marking=4',
          '--stress-scavenge=4',
          '--stress-thread-pool-size=2',
        ],
        'shards': 3
      },
      {
        'name': 'numfuzz',
        'suffix': 'scavenge',
        'test_args': ['--total-timeout-sec=2100', '--stress-scavenge=1']
      },
      {
        'name': 'numfuzz',
        'suffix': 'deopt',
        'test_args': ['--total-timeout-sec=2100', '--stress-deopt=1'],
        'shards': 2
      },
    ],
  },
  ##############################################################################
  # Branches.
  'V8 Linux - beta branch': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'mozilla'},
      {'name': 'test262', 'variant': 'default'},
      {'name': 'v8testing'},
    ],
  },
  'V8 Linux - beta branch - debug': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'mozilla'},
      {'name': 'test262', 'variant': 'default'},
      {'name': 'v8testing', 'shards': 3},
    ],
  },
  'V8 Linux - stable branch': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'mozilla'},
      {'name': 'test262', 'variant': 'default'},
      {'name': 'v8testing'},
    ],
  },
  'V8 Linux - stable branch - debug': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'mozilla'},
      {'name': 'test262', 'variant': 'default'},
      {'name': 'v8testing', 'shards': 3},
    ],
  },
  'V8 Linux - previous branch': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'mozilla'},
      {'name': 'test262', 'variant': 'default'},
      {'name': 'v8testing'},
    ],
  },
  'V8 Linux - previous branch - debug': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'mozilla'},
      {'name': 'test262', 'variant': 'default'},
      {'name': 'v8testing', 'shards': 3},
    ],
  },
  'V8 Linux64 - beta branch': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'mozilla'},
      {'name': 'test262', 'variant': 'default'},
      {'name': 'v8testing'},
    ],
  },
  'V8 Linux64 - beta branch - debug': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'mozilla'},
      {'name': 'test262', 'variant': 'default'},
      {'name': 'v8testing', 'shards': 3},
    ],
  },
  'V8 Linux64 - stable branch': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'mozilla'},
      {'name': 'test262', 'variant': 'default'},
      {'name': 'v8testing'},
    ],
  },
  'V8 Linux64 - stable branch - debug': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'mozilla'},
      {'name': 'test262', 'variant': 'default'},
      {'name': 'v8testing', 'shards': 3},
    ],
  },
  'V8 Linux64 - previous branch': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'mozilla'},
      {'name': 'test262', 'variant': 'default'},
      {'name': 'v8testing'},
    ],
  },
  'V8 Linux64 - previous branch - debug': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'mozilla'},
      {'name': 'test262', 'variant': 'default'},
      {'name': 'v8testing', 'shards': 3},
    ],
  },
  'V8 arm - sim - beta branch': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'mozilla'},
      {'name': 'test262', 'variant': 'default'},
      {'name': 'v8testing', 'shards': 4},
    ],
  },
  'V8 arm - sim - beta branch - debug': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'mozilla', 'shards': 2},
      {'name': 'test262', 'variant': 'default', 'shards': 2},
      {'name': 'v8testing', 'shards': 10},
    ],
  },
  'V8 arm - sim - stable branch': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'mozilla'},
      {'name': 'test262', 'variant': 'default'},
      {'name': 'v8testing', 'shards': 4},
    ],
  },
  'V8 arm - sim - stable branch - debug': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'mozilla', 'shards': 2},
      {'name': 'test262', 'variant': 'default', 'shards': 2},
      {'name': 'v8testing', 'shards': 10},
    ],
  },
  'V8 arm - sim - previous branch': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'mozilla'},
      {'name': 'test262', 'variant': 'default'},
      {'name': 'v8testing', 'shards': 4},
    ],
  },
  'V8 arm - sim - previous branch - debug': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'mozilla', 'shards': 2},
      {'name': 'test262', 'variant': 'default', 'shards': 2},
      {'name': 'v8testing', 'shards': 10},
    ],
  },
  'V8 mips64el - sim - beta branch': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'unittests'},
    ],
  },
  'V8 mips64el - sim - stable branch': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'unittests'},
    ],
  },
  'V8 mips64el - sim - previous branch': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'unittests'},
    ],
  },
  'V8 mipsel - sim - beta branch': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'v8testing', 'shards': 4},
    ],
  },
  'V8 mipsel - sim - stable branch': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'v8testing', 'shards': 4},
    ],
  },
  'V8 mipsel - sim - previous branch': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'v8testing', 'shards': 4},
    ],
  },
  'V8 ppc64 - sim - beta branch': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'unittests'},
    ],
  },
  'V8 ppc64 - sim - stable branch': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'unittests'},
    ],
  },
  'V8 ppc64 - sim - previous branch': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'unittests'},
    ],
  },
  'V8 s390x - sim - beta branch': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'unittests'},
    ],
  },
  'V8 s390x - sim - stable branch': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'unittests'},
    ],
  },
  'V8 s390x - sim - previous branch': {
    'swarming_dimensions': {
      'os': 'Ubuntu-16.04',
    },
    'tests': [
      {'name': 'unittests'},
    ],
  },
}