# Copyright 2017 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# This is a .pyl, or "Python Literal", file. You can treat it just like a
# .json file, with the following exceptions:
# * all keys must be quoted (use single quotes, please);
# * comments are allowed, using '#' syntax; and
# * trailing commas are allowed.

# Exceptions to the common test suites can only include removal from
# particular bots, and modifications on particular bots. By design,
# it's not possible to add one-off tests to bots. Instead they have to
# be added to one of the test suites in test_suites.pyl.
#
# The goal is to drive the number of exceptions to zero, to make all
# the bots behave similarly.
{
  'android_webview_unittests': {
    'remove_from': [
      # On chromium.android, these do not need to run prior to M.
      'android-kitkat-arm-rel',
      'KitKat Phone Tester (dbg)',
      'KitKat Tablet Tester',
      # chromium.android.fyi
      'x64 Device Tester',
      # chromium.fyi
      'Out of Process Profiling Android',
    ],
    'modifications': {
      'Lollipop Tablet Tester': {
        'swarming': {
          'hard_timeout': 900,
        },
      },
      'Marshmallow Tablet Tester': {
        'swarming': {
          'hard_timeout': 900,
        },
      },
    },
  },
  'angle_end2end_tests': {
    'remove_from': [
      # chromium.gpu.fyi
      # TODO(ynovikov) Investigate why the test breaks on older devices.
      'Android FYI Release (Nexus 5)',
      'Android FYI Release (Nexus 6)',
      'Android FYI Release (Nexus 9)',
      # Temporarily disabled due to AMDGPU-PRO issues crbug.com/786219
      'Linux FYI Release (AMD R7 240)',
    ],
  },
  'angle_perftests': {
    'remove_from': [
      # anglebug.com/2433
      'Android FYI Release (Nexus 6)',
    ],
  },
  'angle_unittests': {
    'remove_from': [
      # chromium.fyi
      'mac-views-rel',
      'Chromium Mac 10.13',
      # chromium.gpu.fyi
      # On Android, these are already run on the main waterfall.
      'Android FYI Release (Nexus 5X)',
    ],
    'modifications': {
      'Linux ASan LSan Tests (1)': {
        'swarming': {
          'shards': 10,
        },
      },
    },
  },
  'app_shell_unittests': {
    'remove_from': [
      # chromium.fyi
      'Out of Process Profiling Windows',
      'Win 10 Fast Ring',
    ],
  },
  'aura_unittests': {
    'remove_from': [
      # chromium.fyi
      'Out of Process Profiling Windows',
      'Win 10 Fast Ring',
    ],
  },
  'base_unittests': {
    'modifications': {
      # chromium.android
      'android-marshmallow-arm64-rel': {
        'swarming': {
          'hard_timeout': 960,
        },
      },
      'KitKat Tablet Tester': {
        'swarming': {
          'hard_timeout': 300,
        },
      },
      'Lollipop Tablet Tester': {
        'swarming': {
          'hard_timeout': 600,
        },
      },
      'Marshmallow Tablet Tester': {
        'swarming': {
          'hard_timeout': 600,
        },
      },
      # chromium.clang
      'ToTMac': {
        'swarming': {
          'shards': 5,
        },
      },
      # chromium.fyi
      'Out of Process Profiling Mac': {
        'swarming': {
          'shards': 5,
        },
      },
    },
  },
  'blink_heap_unittests': {
    'remove_from': [
      # chromium.memory
      'Linux TSan Tests',  # https://crbug.com/831674
    ],
    'modifications': {
      # chromium.android
      'android-kitkat-arm-rel': {
        'swarming': {
          'hard_timeout': 180,
        },
      },
      'android-marshmallow-arm64-rel': {
        'swarming': {
          'hard_timeout': 960,
        },
      },
      'KitKat Phone Tester (dbg)': {
        'swarming': {
          'hard_timeout': 180,
        },
      },
      # chromium.android.fyi
      'x86 Cloud Tester': {
        'swarming': {
          'hard_timeout': 120,
        },
      },
    },
  },
  'blink_platform_unittests': {
    'modifications': {
      'android-kitkat-arm-rel': {
        'experiment_percentage': 100,
      },
      'android-marshmallow-arm64-rel': {
        'experiment_percentage': 100,
      },
    },
  },
  'breakpad_unittests': {
    'modifications': {
      'KitKat Tablet Tester': {
        'swarming': {
          'hard_timeout': 60,
        },
      },
      'Lollipop Tablet Tester': {
        'swarming': {
          'hard_timeout': 60,
        },
      },
      'Marshmallow Tablet Tester': {
        'swarming': {
          'hard_timeout': 60,
        },
      },
    },
  },
  'browser_tests': {
    'remove_from': [
      # chromium.clang
      'CrWinAsanCov',
      'linux-win_cross-rel',
      'ToTLinuxUBSanVptr',
      'ToTMac', # https://crbug.com/828031
      'ToTMacASan', # https://crbug.com/828031
      'UBSanVptr Linux',
      # chromium.fyi
      'Chromium Mac 10.13', # https://crbug.com/828031
      'Out of Process Profiling Mac', # https://crbug.com/828031
      'mac-views-rel', # https://crbug.com/828031
      # chromium.mac
      'Mac10.10 Tests', # https://crbug.com/828031
      # chromium.memory
      'Linux TSan Tests',  # https://crbug.com/368525
      'Mac ASan 64 Tests (1)', # https://crbug.com/828031
      # chromium.win
      'Win10 Tests x64 (dbg)',
    ],
    'modifications': {
      # chromium.chromiumos
      'linux-chromeos-dbg': {
        'swarming': {
          'shards': 20,
        },
      },
      # chromium.clang
      'ToTWin(dbg)': {
        'swarming': {
          'shards': 20,
        },
      },
      'ToTWin64(dbg)': {
        'swarming': {
          'shards': 20,
        },
      },
      # chromium.fyi
      'Out of Process Profiling Linux': {
        'swarming': {
          'shards': 5,
        },
      },
      # chromium.mac
      'Mac10.11 Tests': {
        # A subset of tests seem to cause WindowServer deaths on VMs.
        # crbug.com/828031 et al.
        'args': [
          '--test-launcher-filter-file=../../testing/buildbot/filters/mac_window_server_killers.browser_tests.filter',
          '--gtest_shuffle',
        ],
        'swarming': {
          'dimension_sets': [
            {
              'pool': 'Chrome-quarantine',
              'gpu': 'none',
            },
          ],
        },
      },
      'Mac10.12 Tests': {
        # A subset of tests seem to cause WindowServer deaths on VMs.
        # crbug.com/828031 et al.
        'args': [
          '--test-launcher-filter-file=../../testing/buildbot/filters/mac_window_server_killers.browser_tests.filter',
          '--gtest_shuffle',
        ],
        'swarming': {
          'dimension_sets': [
            {
              'pool': 'Chrome-quarantine',
              'gpu': 'none',
            },
          ],
        },
      },
      'Mac10.13 Tests': {
        # A subset of tests seem to cause WindowServer deaths on VMs.
        # crbug.com/828031 et al.
        'args': [
          '--test-launcher-filter-file=../../testing/buildbot/filters/mac_window_server_killers.browser_tests.filter',
          '--gtest_shuffle',
        ],
        'experiment_percentage': 50,
        'swarming': {
          'dimension_sets': [
            {
              'pool': 'Chrome-quarantine',
              'gpu': 'none',
            },
          ],
        },
      },
      'Mac10.13 Tests (dbg)': {
        # A subset of tests seem to cause WindowServer deaths on VMs.
        # crbug.com/828031 et al.
        'args': [
          '--test-launcher-filter-file=../../testing/buildbot/filters/mac_window_server_killers.browser_tests.filter',
          '--gtest_shuffle',
        ],
        'swarming': {
          'dimension_sets': [
            {
              'pool': 'Chrome-quarantine',
              'gpu': 'none',
            },
          ],
        },
      },
      # chromium.memory
      'Linux ASan LSan Tests (1)': {
        # These are very slow on the ASAN trybot for some reason.
        # crbug.com/794372
        'swarming': {
          'shards': 30,
        },
      },
      'Mac ASan 64 Tests (1)': {
        'swarming': {
          'shards': 20,
        },
      },
      # client.v8.chromium
      'Linux - Future (dbg)': {
        'swarming': {
          'shards':  10,
        },
      },
      # chromium.win
      'Win7 Tests (dbg)(1)': {
        'swarming': {
          'shards': 20,
        },
      },
    },
  },
  'capture_unittests': {
    'modifications': {
      'KitKat Tablet Tester': {
        'swarming': {
          'hard_timeout': 120,
        },
      },
      'Marshmallow Tablet Tester': {
        'swarming': {
          'hard_timeout': 120,
        },
      },
    },
  },
  'cast_shell_browsertests': {
    'modifications': {
      'Cast Audio Linux': {
        'args': [
          '--enable-local-file-accesses',
          '--ozone-platform=headless',
          '--no-sandbox',
          '--test-launcher-jobs=1',
        ],
        'swarming': {
          'can_use_on_swarming_builders': False,
        },
      },
      'Cast Linux': {
        'args': [
          '--enable-local-file-accesses',
          '--ozone-platform=cast',
          '--no-sandbox',
          '--test-launcher-jobs=1',
        ],
        'swarming': {
          'can_use_on_swarming_builders': False,
        },
      },
    },
  },
  'cast_unittests': {
    'remove_from': [
      # chromium.chromiumos
      'linux-chromeos-dbg',
      'linux-chromeos-rel',
      # Unclear why these largely aren't run on Android.
      # TODO(kbr): why are the cast unit tests not run on the Cast bots?!
      'Cast Audio Linux',
      'Cast Linux',
      # chromium.clang
      'ToTAndroidCFI',
      'ToTLinuxThinLTO',
    ],
  },
  'cc_unittests': {
    'remove_from': [
      # chromium.chromiumos
      'linux-chromeos-dbg',
      'linux-chromeos-rel',
    ],
  },
  'checkbins': {
    'remove_from': [
      'Linux x64',
      'Mac',
    ],
  },
  'chrome_app_unittests': {
    'remove_from': [
      # chromium.fyi
      'mac-views-rel',
      'Chromium Mac 10.13',
      'Out of Process Profiling Mac',
    ],
  },
  'chrome_elf_import_unittests': {
    'remove_from': [
      # chromium.fyi
      'Out of Process Profiling Windows',
      'Win 10 Fast Ring',
    ],
  },
  'chrome_public_test_apk': {
    'remove_gtest_from': [
      # chromium.android.fyi
      'Unswarmed N5 Tests Dummy Builder',
      'Unswarmed N5X Tests Dummy Builder',
    ],
    'remove_from': [
      # chromium.clang
      'ToTAndroidCFI',
      # chromium.memory
      'Android CFI',
    ],
    'key_removals': {
      # chromium.android.fyi
      'Nougat Phone Tester': [
        'args',
      ],
      'x86 Cloud Tester': [
        'args',
      ],
    },
    'modifications': {
      # chromium.android
      'android-kitkat-arm-rel': {
        'swarming': {
          'shards': 12,
        },
      },
      'android-marshmallow-arm64-rel': {
        # TODO(crbug.com/731759): Enable this once we're confident that it
        # passes.
        'experiment_percentage': 100,
      },
      'KitKat Phone Tester (dbg)': {
        'swarming': {
          'shards': 20,
        },
      },
      'KitKat Tablet Tester': {
        'swarming': {
          'hard_timeout': 2400,
        },
      },
      'Lollipop Phone Tester': {
        'swarming': {
          'hard_timeout': 1800,
        },
      },
      'Lollipop Tablet Tester': {
        'swarming': {
          'hard_timeout': 1800,
        },
      },
      'Marshmallow 64 bit Tester': {
        # TODO(crbug.com/731759): Enable this once we're confident that it
        # passes.
        'experiment_percentage': 100,
        'swarming': {
          'hard_timeout': 1200,
          'shards': 14,
        },
      },
      'Marshmallow Tablet Tester': {
        'swarming': {
          'hard_timeout': 1800,
        },
      },
      # chromium.android.fyi
      'Nougat Phone Tester': {
        'swarming': {
          'hard_timeout': 1200,
          'shards': 8,
        },
      },
      'x64 Device Tester': {
        'swarming': {
          'hard_timeout': 0,
          'shards': 1,
        },
      },
      'x86 Cloud Tester': {
        'swarming': {
          'hard_timeout': 1200,
          'shards': 1,
        },
      },
      # chromium.clang
      'ToTAndroid x64': {
        'swarming': {
          'shards': 1,
          'hard_timeout': 0,
        },
      },
      # chromium.fyi
      'Out of Process Profiling Android': {
        'swarming': {
          'shards': 1,
          'hard_timeout': 0,
        },
      },
      # chromium.swarm
      'Android N5X Swarm': {
        # TODO(crbug.com/731759): Enable this once we're confident that it
        # passes.
        'experiment_percentage': 100,
      },
    },
  },
  'chrome_public_test_vr_apk': {
    'remove_gtest_from': [
      # chromium.android
      'KitKat Tablet Tester',
      'Lollipop Tablet Tester',
      'Marshmallow Tablet Tester',
    ],
    'modifications': {
      'android-kitkat-arm-rel': {
        'args': [
          '--shared-prefs-file=//chrome/android/shared_preference_files/test/vr_cardboard_skipdon_setupcomplete.json',
          '--additional-apk=//third_party/gvr-android-sdk/test-apks/vr_services/vr_services_current.apk',
        ],
        'swarming': {
          'hard_timeout': 1920,
        },
      },
      'android-marshmallow-arm64-rel': {
        'args': [
          '--shared-prefs-file=//chrome/android/shared_preference_files/test/vr_cardboard_skipdon_setupcomplete.json',
          '--additional-apk=//third_party/gvr-android-sdk/test-apks/vr_services/vr_services_current.apk',
        ],
        'swarming': {
          'hard_timeout': 1200,
        },
      },
      'Lollipop Phone Tester': {
        'args': [
          '--shared-prefs-file=//chrome/android/shared_preference_files/test/vr_cardboard_skipdon_setupcomplete.json',
          '--additional-apk=//third_party/gvr-android-sdk/test-apks/vr_services/vr_services_current.apk',
        ],
        'swarming': {
          'hard_timeout': 1920,
        },
      },
      'Marshmallow 64 bit Tester': {
        'args': [
          '--shared-prefs-file=//chrome/android/shared_preference_files/test/vr_cardboard_skipdon_setupcomplete.json',
          '--additional-apk=//third_party/gvr-android-sdk/test-apks/vr_services/vr_services_current.apk',
        ],
      },
    },
  },
  'chrome_sync_shell_test_apk': {
    'remove_gtest_from': [
      # chromium.android.fyi
      'Unswarmed N5 Tests Dummy Builder',
      'Unswarmed N5X Tests Dummy Builder',
    ],
    'key_removals': {
      # chromium.android.fyi
      'Nougat Phone Tester': [
        'args',
      ],
      'x64 Device Tester': [
        'args',
      ],
      'x86 Cloud Tester': [
        'args',
      ],
    },
    'modifications': {
      # chromium.android
      'KitKat Phone Tester (dbg)': {
        'swarming': {
          'shards': 2,
        },
      },
      'KitKat Tablet Tester': {
        'swarming': {
          'hard_timeout': 1200,
        },
      },
      'Lollipop Tablet Tester': {
        'swarming': {
          'hard_timeout': 1200,
        },
      },
      'Marshmallow Tablet Tester': {
        'swarming': {
          'hard_timeout': 1200,
        },
      },
      # chromium.android.fyi
      'x64 Device Tester': {
        'swarming': {
          'hard_timeout': 0,
        },
      },
      'x86 Cloud Tester': {
        'swarming': {
          'hard_timeout': 600,
        },
      },
      # chromium.clang
      'ToTAndroid x64': {
        'swarming': {
          'hard_timeout': 0,
        },
      },
      'ToTAndroidCFI': {
        'swarming': {
          'hard_timeout': 0,
        },
      },
      # chromium.fyi
      'Out of Process Profiling Android': {
        'swarming': {
          'hard_timeout': 0,
        },
      },
      # chromium.memory
      'Android CFI': {
        'swarming': {
          'hard_timeout': 0,
        },
      },
    },
  },
  'chromedriver_unittests': {
    'remove_from': [
      # chromium.chromiumos
      'linux-chromeos-dbg',
      'linux-chromeos-rel',
    ],
  },
  'components_browsertests': {
    'remove_from': [
      # chromium.chromiumos
      'linux-chromeos-dbg',
      'linux-chromeos-rel',
      # chromium.fyi
      'mac-views-rel',
      'Chromium Mac 10.13',
      'Out of Process Profiling Linux',
      'Out of Process Profiling Mac',
      # On chromium.linux, unclear why these aren't run on the Cast bots.
      'Cast Audio Linux',
      'Cast Linux',
      'Linux Tests (dbg)(1)(32)',
      # chromium.win
      'Win7 Tests (dbg)(1)',
      'Win10 Tests x64 (dbg)',
    ],
    'modifications': {
      'android-marshmallow-arm64-rel': {
        'swarming': {
          'hard_timeout': 960,
        },
      },
      'KitKat Tablet Tester': {
        'swarming': {
          'hard_timeout': 600,
        },
      },
      'Lollipop Tablet Tester': {
        'swarming': {
          'hard_timeout': 600,
        },
      },
      'Marshmallow Tablet Tester': {
        'swarming': {
          'hard_timeout': 600,
        },
      },
    },
  },
  'components_unittests': {
    'remove_from': [
      # On chromium.linux, unclear why these aren't run on the Cast bots.
      'Cast Audio Linux',
      'Cast Linux',
    ],
    'modifications': {
      # chromium.android
      'android-marshmallow-arm64-rel': {
        'swarming': {
          'hard_timeout': 960,
        },
      },
      'KitKat Tablet Tester': {
        'swarming': {
          'hard_timeout': 1500,
        },
      },
      'Lollipop Phone Tester': {
        'swarming': {
          'hard_timeout': 960,
        },
      },
      'Lollipop Tablet Tester': {
        'swarming': {
          'hard_timeout': 1200,
        },
      },
      'Marshmallow 64 bit Tester': {
        'swarming': {
          'hard_timeout': 960,
        },
      },
      'Marshmallow Tablet Tester': {
        'swarming': {
          'hard_timeout': 1500,
        },
      },
      # chromium.android.fyi
      'Nougat Phone Tester': {
        'swarming': {
          'hard_timeout': 960,
          'shards': 1,
        },
      },
      'x64 Device Tester': {
        'swarming': {
          'hard_timeout': 0,
          'shards': 1,
        },
      },
      'x86 Cloud Tester': {
        'swarming': {
          'hard_timeout': 0,
          'shards': 1,
        },
      },
      # chromium.memory
      'Linux ASan LSan Tests (1)': {
        # These are very slow on the ASAN trybot for some reason.
        # crbug.com/794372
        'swarming': {
          'shards': 5,
        },
      },
    },
  },
  'compositor_unittests': {
    'remove_from': [
      # chromium.fyi
      'Out of Process Profiling Windows',
      'Win 10 Fast Ring',
    ],
  },
  'content_browsertests': {
    'modifications': {
      # chromium.android
      'android-marshmallow-arm64-rel': {
        'swarming': {
          'hard_timeout': 1200,
          'shards': 6,
        },
      },
      'KitKat Tablet Tester': {
        'swarming': {
          'hard_timeout': 1800,
          'shards': 6,
        },
      },
      'Lollipop Phone Tester': {
        'swarming': {
          'hard_timeout': 1800,
          'shards': 6,
        },
      },
      'Lollipop Tablet Tester': {
        'swarming': {
          'hard_timeout': 1800,
          'shards': 6,
        },
      },
      'Marshmallow 64 bit Tester': {
        'swarming': {
          'hard_timeout': 1200,
          'shards': 6,
        },
      },
      'Marshmallow Tablet Tester': {
        'swarming': {
          'hard_timeout': 1800,
          'shards': 6,
        },
      },
      # chromium.android.fyi
      'Nougat Phone Tester': {
        'swarming': {
          'hard_timeout': 1200,
          'shards': 6,
        },
      },
      'Unswarmed N5 Tests Dummy Builder': {
        'args': [
          '--shard-timeout',
          '600',
        ],
      },
      'Unswarmed N5X Tests Dummy Builder': {
        'args': [
          '--shard-timeout',
          '600',
        ],
      },
      'x64 Device Tester': {
        'swarming': {
          'hard_timeout': 0,
          'shards': 1,
        },
      },
      'x86 Cloud Tester': {
        'swarming': {
          'hard_timeout': 960,
          'shards': 1,
        },
      },
      # chromium.chromiumos
      'linux-chromeos-dbg': {
        'swarming': {
          'shards': 2,
        },
      },
      'linux-chromeos-rel': {
        'swarming': {
          'shards': 2,
        },
      },
      # chromium.clang
      'ToTLinuxUBSanVptr': {
        'swarming': {
          'shards': 5,
        },
      },
      'linux-win_cross-rel': {
        # content_browsertests sometimes times out without this override on
        # the cross bot, probably because of https://crbug.com/803591,
        # see also https://crbug.com/838559
        # TODO(thakis): Remove this once 803591 is fixed.
        'swarming': {
          'shards': 5,
        },
      },
      # chromium.linux
      'Cast Audio Linux': {
        'args': [
          '--test-launcher-filter-file=src/testing/buildbot/filters/cast-linux.content_browsertests.filter',
        ],
        'swarming': {
          'can_use_on_swarming_builders': False,
        },
      },
      'Cast Linux': {
        'args': [
          '--test-launcher-filter-file=src/testing/buildbot/filters/cast-linux.content_browsertests.filter',
        ],
        'swarming': {
          'can_use_on_swarming_builders': False,
        },
      },
      # chromium.memory
      'Linux ASan LSan Tests (1)': {
        # These are very slow on the ASAN trybot for some reason.
        # crbug.com/794372
        'swarming': {
          'shards': 8,
        },
      },
      'Linux Chromium OS ASan LSan Tests (1)': {
        # content_browsertests is slow on ASAN try bot. crbug.com/822461.
        'swarming': {
          'shards': 4,
        }
      },
      'Linux TSan Tests': {
        'swarming': {
          'shards': 5,
        },
      },
      'Mac ASan 64 Tests (1)': {
        'swarming': {
          'shards': 2,
        },
      },
      # chromium.win
      'Win7 Tests (dbg)(1)': {
        'swarming': {
          'shards': 2,
        },
      },
      # chromium.win
      'Win10 Tests x64 (dbg)': {
        'experiment_percentage': 100,
      },
    },
  },
  'content_browsertests --mus': {
    'remove_from': [
      # chromium.memory
      'Linux Chromium OS ASan LSan Tests (1)',
    ],
  },
  'content_shell_crash_test': {
    'remove_from': [
      # chromium.fyi
      'Chromium Mac 10.13',
      'Out of Process Profiling Mac',
      # On chromium.linux, unclear why these only run on "Linux Tests".
      'Linux Tests (dbg)(1)',
      'Linux Tests (dbg)(1)(32)',
      # On chromium.mac, unclear why these only run on "Mac10.13 Tests".
      'Mac10.10 Tests',
      'Mac10.11 Tests',
      'Mac10.12 Tests',
      'Mac10.13 Tests (dbg)',
      # crbug.com/846729 - re-enable when this passes reliably.
      'Win7 Tests (1)',
      # On chromium.win, unclear why these only run on "Win7 Tests (1)".
      'Win 7 Tests x64 (1)',
      'Win10 Tests x64 (dbg)',
      'Win7 Tests (dbg)(1)',
      # client.v8.chromium
      'Linux - Future (dbg)',
    ],
    'modifications': {
      'Mac10.13 Tests': {
        # Remove this once the tests is not flaky on Mac os 10.13
        # See crbug.com/813163
        'experiment_percentage': 100,
      },
    }
  },
  'content_shell_test_apk': {
    'remove_gtest_from': [
      # chromium.android.fyi
      'Unswarmed N5 Tests Dummy Builder',
      'Unswarmed N5X Tests Dummy Builder',
    ],
    'key_removals': {
      # chromium.android.fyi
      'Nougat Phone Tester': [
        'args',
      ],
      'x86 Cloud Tester': [
        'args',
      ],
    },
    'modifications': {
      # chromium.android
      'KitKat Tablet Tester': {
        'swarming': {
          'hard_timeout': 1800,
          'shards': 2,
        },
      },
      'Lollipop Phone Tester': {
        'swarming': {
          'shards': 2,
        },
      },
      'Lollipop Tablet Tester': {
        'swarming': {
          'hard_timeout': 1200,
          'shards': 2,
        },
      },
      'Marshmallow Tablet Tester': {
        'swarming': {
          'hard_timeout': 1500,
          'shards': 2,
        },
      },
      # chromium.android.fyi
      'Nougat Phone Tester': {
        'swarming': {
          'hard_timeout': 1200,
          'shards': 4,
        },
      },
      'x64 Device Tester': {
        'swarming': {
          'hard_timeout': 0,
          'shards': 1,
        },
      },
      'x86 Cloud Tester': {
        'swarming': {
          'hard_timeout': 1920,
          'shards': 1,
        },
      },
      # chromium.clang
      'ToTAndroid x64': {
        'swarming': {
          'hard_timeout': 0,
          'shards': 1,
        },
      },
      'ToTAndroidCFI': {
        'swarming': {
          'hard_timeout': 0,
          'shards': 1,
        },
      },
      # chromium.fyi
      'Out of Process Profiling Android': {
        'swarming': {
          'hard_timeout': 0,
          'shards': 1,
        },
      },
      # chromium.memory
      'Android CFI': {
        'swarming': {
          'hard_timeout': 0,
          'shards': 1,
        },
      },
    },
  },
  'content_unittests': {
    'remove_from': [
      # chromium.fyi
      'Fuchsia (dbg)',
      'Fuchsia ARM64',
    ],
    'modifications': {
      # TODO(dpranke) - on chromium.swarm, remove this exception.
      'Android N5X Swarm': {
        'swarming': {
          'shards': 4,
        },
      },
      # chromium.android
      'KitKat Tablet Tester': {
        'swarming': {
          'hard_timeout': 1200,
        },
      },
      'Lollipop Tablet Tester': {
        'swarming': {
          'hard_timeout': 1200,
        },
      },
      'Marshmallow Tablet Tester': {
        'swarming': {
          'hard_timeout': 1500,
        },
      },
      # chromium.android.fyi
      'Nougat Phone Tester': {
        'swarming': {
          'hard_timeout': 1200,
          'shards': 2,
        },
      },
      'x64 Device Tester': {
        'swarming': {
          'hard_timeout': 0,
        },
      },
      'x86 Cloud Tester': {
        'swarming': {
          'hard_timeout': 0,
        },
      },
      # chromium.fyi
      'Site Isolation Android': {
        'swarming': {
          'hard_timeout': 0,
        },
      },
      # chromium.memory
      'Linux ASan LSan Tests (1)': {
        # These are slow on the ASAN trybot for some reason.
        # crbug.com/794372
        'swarming': {
          'shards': 2,
        },
      },
    },
  },
  'crashpad_tests': {
    'remove_from': [
      # chromium.clang
      'linux-win_cross-rel', # https://crbug.com/762167
    ],
  },
  'cronet_test_instrumentation_apk': {
    'modifications': {
      'Android Cronet Builder (dbg) chromium.android.fyi': {
        'swarming': {
          'hard_timeout': 1200,
          'shards': 2,
        },
      },
      'Android Cronet KitKat Builder chromium.android.fyi': {
        'swarming': {
          'hard_timeout': 1200,
          'shards': 2,
        },
      },
    },
  },
  'dbus_unittests': {
    'remove_from': [
      # chromium.linux
      'Linux Tests (dbg)(1)(32)',
    ],
  },
  'device_unittests': {
    'remove_from': [
      # chromium.fyi
      'mac-views-rel',
      'Chromium Mac 10.13',
      'Out of Process Profiling Mac',
      # chromium.win
      'Win7 Tests (dbg)(1)',
    ],
    'modifications': {
      'android-marshmallow-arm64-rel': {
        'swarming': {
          'hard_timeout': 960,
        },
      },
      'KitKat Tablet Tester': {
        'swarming': {
          'hard_timeout': 120,
        },
      },
      'Marshmallow Tablet Tester': {
        'swarming': {
          'hard_timeout': 120,
        },
      },
    },
  },
  'devtools_closure_compile': {
    'remove_from': [
      # On chromium.linux, unclear why these only run on "Linux Tests".
      'Linux Tests (dbg)(1)',
      'Linux Tests (dbg)(1)(32)',
      # client.v8.chromium
      'Linux - Future (dbg)',
    ],
  },
  'devtools_eslint': {
    'remove_from': [
      # On chromium.linux, unclear why these only run on "Linux Tests".
      'Linux Tests (dbg)(1)',
      'Linux Tests (dbg)(1)(32)',
      # client.v8.chromium
      'Linux - Future (dbg)',
    ],
  },
  'events_unittests': {
    'modifications': {
      'KitKat Tablet Tester': {
        'swarming': {
          'hard_timeout': 60,
        },
      },
      'Lollipop Tablet Tester': {
        'swarming': {
          'hard_timeout': 60,
        },
      },
      'Marshmallow Tablet Tester': {
        'swarming': {
          'hard_timeout': 120,
        },
      },
    },
  },
  'extensions_browsertests': {
    'remove_from': [
      # chromium.fyi
      'mac-views-rel',
      'Chromium Mac 10.13',
      'Out of Process Profiling Linux',
      'Out of Process Profiling Mac',
      # On chromium.mac, unclear why these aren't run.
      'Mac10.10 Tests',
      'Mac10.11 Tests',
      'Mac10.12 Tests',
      'Mac10.13 Tests',
      'Mac10.13 Tests (dbg)',
      # chromium.memory
      'Mac ASan 64 Tests (1)',  # https://crbug.com/853172
      # chromium.win
      'Win10 Tests x64 (dbg)',
    ],
  },
  'filesystem_service_unittests': {
    'remove_from': [
      'Linux Tests (dbg)(1)(32)',
    ],
  },
  'gin_unittests': {
    'remove_from': [
      # chromium.clang
      'ToTLinuxASan',  # https://crbug.com/831667
      # chromium.memory
      'Linux ASan LSan Tests (1)',  # https://crbug.com/831667
      'Linux Chromium OS ASan LSan Tests (1)',  # https://crbug.com/831667
      # client.v8.chromium
      'Linux - Future (dbg)',
    ],
  },
  'gl_tests': {
    'remove_from': [
      # chromium.clang
      'CFI Linux (icall)',
      'CFI Linux ToT',
      # chromium.gpu.fyi
      'Android FYI Release (Nexus 5X)',
      # chromium.memory
      # Can't run on MSAN because gl_tests uses the hardware driver,
      # which isn't instrumented.
      'Linux MSan Tests',
    ],
    'modifications': {
      'KitKat Tablet Tester': {
        'swarming': {
          'hard_timeout': 120,
        },
      },
      'Marshmallow Tablet Tester': {
        'swarming': {
          'hard_timeout': 120,
        },
      },
      # chromium.memory
      # TODO(kbr): figure out a better way to specify blocks of
      # arguments like this for tests on multiple machines.
      'Linux ASan LSan Tests (1)': {
        'args': [
          '--use-gpu-in-tests',
          '--no-xvfb',
        ],
        'swarming': {
          'dimension_sets': [
            {
              'gpu': '10de:1cb3',
              'os': 'Ubuntu',
              'pool': 'Chrome-GPU',
            },
          ],
        },
        'use_xvfb': False,
      },
      'Linux ASan LSan Tests (1)': {
        'args': [
          '--use-gpu-in-tests',
          '--no-xvfb',
        ],
        'swarming': {
          'dimension_sets': [
            {
              'gpu': '10de:1cb3',
              'os': 'Ubuntu',
              'pool': 'Chrome-GPU',
            },
          ],
        },
        'use_xvfb': False,
      },
      'Linux CFI': {
        'args': [
          '--use-gpu-in-tests',
          '--no-xvfb',
        ],
        'swarming': {
          'dimension_sets': [
            {
              'gpu': '10de:1cb3',
              'os': 'Ubuntu',
              'pool': 'Chrome-GPU',
            },
          ],
        },
        'use_xvfb': False,
      },
      'Linux TSan Tests': {
        'args': [
          '--use-gpu-in-tests',
          '--no-xvfb',
        ],
        'swarming': {
          'dimension_sets': [
            {
              'gpu': '10de:1cb3',
              'os': 'Ubuntu',
              'pool': 'Chrome-GPU',
            },
          ],
        },
        'use_xvfb': False,
      },
    },
  },
  'gl_unittests': {
    'remove_from': [
      # chromium.gpu.fyi
      # On Android, these are already run on the main waterfall.
      # Run them on the one-off Android FYI bots, though.
      'Android FYI Release (Nexus 5X)',
      # Temporarily disabled due to AMDGPU-PRO issues crbug.com/786219
      'Linux FYI Release (AMD R7 240)',
    ],
    'modifications': {
      # chromium.android
      'android-marshmallow-arm64-rel': {
        'swarming': {
          'hard_timeout': 120,
        },
      },
      'Lollipop Phone Tester': {
        'swarming': {
          'hard_timeout': 960,
        },
      },
      'Marshmallow 64 bit Tester': {
        'swarming': {
          'hard_timeout': 960,
        },
      },
      # chromium.android.fyi
      'Nougat Phone Tester': {
        'swarming': {
          'hard_timeout': 960,
        },
      },
      # chromium.clang
      'CFI Linux (icall)': {
        'args': [
          '--use-gpu-in-tests',
          '--no-xvfb',
        ],
        'swarming': {
          'dimension_sets': [
            {
              'gpu': '10de:1cb3',
              'os': 'Ubuntu',
              'pool': 'Chrome-GPU',
            },
          ],
        },
        'use_xvfb': False,
      },
      'CFI Linux ToT': {
        'args': [
          '--use-gpu-in-tests',
          '--no-xvfb',
        ],
        'swarming': {
          'dimension_sets': [
            {
              'gpu': '10de:1cb3',
              'os': 'Ubuntu',
              'pool': 'Chrome-GPU',
            },
          ],
        },
        'use_xvfb': False,
      },
      # chromium.memory
      'Linux CFI': {
        'args': [
          '--use-gpu-in-tests',
          '--no-xvfb',
        ],
        'swarming': {
          'dimension_sets': [
            {
              'gpu': '10de:1cb3',
              'os': 'Ubuntu',
              'pool': 'Chrome-GPU',
            },
          ],
        },
        'use_xvfb': False,
      },
    },
  },
  'gn_unittests': {
    'remove_from': [
      # chromium.fyi
      'mac-views-rel',
      'Chromium Mac 10.13',
      'Out of Process Profiling Linux',
      'Out of Process Profiling Mac',
    ],
  },
  'headless_browsertests': {
    'remove_from': [
      # chromium.clang
      'ToTLinuxASan',  # https://crbug.com/843732
      # chromium.linux
      'Linux Tests (dbg)(1)(32)',
      # On chromium.mac, unclear why these aren't run on "Mac10.11 Tests".
      'Mac10.11 Tests',
      # chromium.memory
      'Linux ASan LSan Tests (1)',  # https://crbug.com/843732
      'Linux TSan Tests',  # https://crbug.com/843734
      # client.v8.chromium
      'Linux - Future (dbg)',
      # chromium.win
      'Win10 Tests x64 (dbg)',
    ],
  },
  'headless_unittests': {
    'remove_from': [
      # chromium.clang
      'ToTLinuxASan',  # https://crbug.com/843732
      # chromium.linux
      'Linux Tests (dbg)(1)(32)',
      # On chromium.mac, unclear why these aren't run on "Mac10.11 Tests".
      'Mac10.11 Tests',
      # chromium.memory
      'Linux ASan LSan Tests (1)',  # https://crbug.com/843732
      # client.v8.chromium
      'Linux - Future (dbg)'
    ],
  },
  'info_collection_tests': {
    'remove_from': [
      # chromium.gpu.fyi
      # The Mac ASAN swarming bot runs tests on two different GPU
      # types, so we can't have one expected vendor ID / device ID.
      'Mac FYI GPU ASAN Release',
      # client.v8.fyi
      'Android V8 FYI Release (Nexus 5X)',
      'Linux V8 FYI Release (NVIDIA)',
      'Linux V8 FYI Release - concurrent marking (NVIDIA)',
      'Mac V8 FYI Release (Intel)',
      'Win V8 FYI Release (NVIDIA)',
    ],
  },
  'install_static_unittests': {
    'remove_from': [
      # chromium.fyi
      'Out of Process Profiling Windows',
      'Win 10 Fast Ring',
    ],
  },
  'interactive_ui_tests': {
    'remove_from': [
      # chromium.clang
      'ToTLinuxUBSanVptr',  # https://crbug.com/815190
      'UBSanVptr Linux',  # https://crbug.com/815190
    ],
    'modifications': {
      # chromium.win
      'Win7 Tests (dbg)(1)': {
        'swarming': {
          'shards': 4,
        },
      },
      # chromium.memory
      'Linux ASan LSan Tests (1)': {
        # These are slow on the ASan trybot for some reason, crbug.com/794372
        'swarming': {
          'shards': 6,
        },
      },
      'Linux TSan Tests': {
        # These are slow on the TSan trybot for some reason, crbug.com/794372
        'swarming': {
          'shards': 6,
        },
      },
      # client.v8.chromium
      'Linux - Future (dbg)': {
        'swarming': {
          'shards': 3,
        },
      },
      # chromium.win; temporary, https://crbug.com/818832
      'Win10 Tests x64 (dbg)': {
        'experiment_percentage': 100,
      },
    },
  },
  'ipc_tests': {
    'remove_from': [
      # chromium.linux
      'Fuchsia x64',
    ],
    'modifications': {
      # chromium.android
      'KitKat Tablet Tester': {
        'swarming': {
          'hard_timeout': 60,
        },
      },
      'Lollipop Tablet Tester': {
        'swarming': {
          'hard_timeout': 60,
        },
      },
      'Marshmallow Tablet Tester': {
        'swarming': {
          'hard_timeout': 120,
        },
      },
      # chromium.android.fyi
      'Unswarmed N5 Tests Dummy Builder': {
        'args': [
          '--shard-timeout',
          '600',
        ],
      },
      'Unswarmed N5X Tests Dummy Builder': {
        'args': [
          '--shard-timeout',
          '600',
        ],
      },
    },
  },
  'latency_unittests': {
    'modifications': {
      'KitKat Tablet Tester': {
        'swarming': {
          'hard_timeout': 60,
        },
      },
    },
  },
  'mash_browser_tests': {
    'remove_from': [
      # chromium.memory
      # Unclear why this isn't run. http://crbug.com/814403
      'Linux Chromium OS ASan LSan Tests (1)',
      'Linux ChromiumOS MSan Tests',  # https://crbug.com/830944
      # Not needed on chromium.fyi because suite is on main waterfall.
      'Mojo ChromiumOS',
    ],
  },
  'mash_unittests': {
    'remove_from': [
      # chromium.fyi
      'Mojo ChromiumOS',
    ],
  },
  'mac_installer_unittests': {
    'remove_from': [
      # chromium.fyi
      'mac-views-rel',
      'Chromium Mac 10.13',
      'Out of Process Profiling Mac',
    ],
  },
  'media_blink_unittests': {
    'modifications': {
      'Lollipop Tablet Tester': {
        'swarming': {
          'hard_timeout': 300,
        },
      },
      'Marshmallow Tablet Tester': {
        'swarming': {
          'hard_timeout': 300,
        },
      },
    },
  },
  'media_unittests': {
    'remove_from': [
      # chromium.linux
      'Fuchsia x64',
      # chromium.fyi
      'Fuchsia ARM64',
    ],
  },
  'metrics_python_tests': {
    'remove_from': [
      # chromium.fyi
      'Chromium Mac 10.13',
      'Out of Process Profiling Mac',
    ],
  },
  'mojo_test_apk': {
    'modifications': {
      # chromium.clang
      'ToTAndroidCFI': {
        'swarming': {
          'hard_timeout': 0,
        },
      },
      # chromium.clang
      'Android CFI': {
        'swarming': {
          'hard_timeout': 0,
        },
      },
    },
  },
  'nacl_helper_nonsfi_unittests': {
    'remove_from': [
      # chromium.memory
      'Linux TSan Tests',  # Sets enable_nacl=false.
    ],
  },
  'nacl_loader_unittests': {
    'remove_from': [
      # chromium.clang
      'ToTMacASan',  # The mac asan tot bot sets enable_nacl=false
      'linux-win_cross-rel',  # Sets enable_nacl=false, https://crbug.com/774186
      # chromium.memory
      'Linux TSan Tests',  # The TSan bot sets enable_nacl=false
      'Mac ASan 64 Tests (1)',  # The mac asan bot sets enable_nacl=false
    ],
  },
  'native_theme_unittests': {
    'remove_from': [
      # chromium.linux
      'Linux Tests (dbg)(1)(32)',
    ],
  },
  'net_unittests': {
    'remove_from': [
      # chromium.fyi
      'Fuchsia (dbg)',
      'Fuchsia ARM64',
      # chromium.linux
      'Fuchsia x64',
    ],
    'modifications': {
      # chromium.clang
      'ToTLinuxASan': {
        # TODO(crbug.com/794372): net_unittests is slow under ASan.
        'swarming': {
          'shards': 16,
        },
      },
      # chromium.memory
      'Linux ASan LSan Tests (1)': {
        # These are very slow on the ASAN trybot for some reason.
        # crbug.com/794372
        'swarming': {
          'shards': 16,
        },
      },
      'Linux Chromium OS ASan LSan Tests (1)': {
        'swarming': {
          'shards': 8,
        }
      },
      'Linux TSan Tests': {
        'swarming': {
          'shards': 4,
        }
      },
      # The suite runs signficantly slower on linux dbg, so increase shards.
      'Linux Tests (dbg)(1)': {
        'swarming': {
          'shards': 2,
        },
      },
      'Linux Tests (dbg)(1)(32)': {
        'swarming': {
          'shards': 2,
        },
      },
      'linux-chromeos-dbg': {
        'swarming': {
          'shards': 2,
        },
      },
    },
  },
  'network_service_browser_tests': {
    'remove_from': [
      # chromium.memory
      'Linux ASan LSan Tests (1)',  # No capacity, https://crbug.com/852442
      'Linux TSan Tests',  # No capacity, https://crbug.com/852442
      # chromium.win
      'Win7 Tests (1)',  # For swarming capacity reasons.
      'Win10 Tests x64 (dbg)',  # Matches browser_tests.
    ],
  },
  'network_service_components_browsertests': {
    'remove_from': [
      # chromium.memory
      'Linux ASan LSan Tests (1)',  # No capacity, https://crbug.com/852442
      'Linux TSan Tests',  # No capacity, https://crbug.com/852442
      # chromium.win
      'Win7 Tests (1)',  # For swarming capacity reasons.
      'Win10 Tests x64 (dbg)',  # Matches components_browsertests.
    ],
  },
  'network_service_content_browsertests': {
    'remove_from': [
      # chromium.memory
      'Linux ASan LSan Tests (1)',  # No capacity, https://crbug.com/852442
      'Linux TSan Tests',  # No capacity, https://crbug.com/852442
      # chromium.win
      'Win7 Tests (1)',  # For swarming capacity reasons.
      'Win10 Tests x64 (dbg)',  # flaky: https://crbug.com/852786
    ],
  },
  'network_service_extensions_browsertests': {
    'remove_from': [
      # chromium.memory
      'Linux ASan LSan Tests (1)',  # No capacity, https://crbug.com/852442
      'Linux TSan Tests',  # No capacity, https://crbug.com/852442
      # chromium.win
      'Win7 Tests (1)',  # For swarming capacity reasons.
      'Win10 Tests x64 (dbg)',  # Matches extensions_browsertests.
    ],
  },
  'network_service_interactive_ui_tests': {
    'remove_from': [
      # chromium.memory
      'Linux ASan LSan Tests (1)',  # No capacity, https://crbug.com/852442
      'Linux TSan Tests',  # No capacity, https://crbug.com/852442
      # chromium.win
      'Win7 Tests (1)',  # For swarming capacity reasons.
    ],
    'modifications': {
      # chromium.win
      'Win10 Tests x64 (dbg)': {
        'experiment_percentage': 100,  # https://crbug.com/852786
      },
    },
  },
  'notification_helper_unittests': {
    'remove_from': [
      # The test uses WinRT, which only exists in Windows 8 or above.
      # (https://crbug.com/813553)
      # chromium.win
      'Win 7 Tests x64 (1)',
      'Win7 Tests (1)',
      'Win7 Tests (dbg)(1)',
      # chromium.clang; all these bots run Windows 7.
      'CrWinAsan',
      'CrWinAsan(dll)',
      'CrWinAsanCov',
      'CrWinClangLLD',
      'CrWinClangLLD64',
      'CrWinClngLLD64dbg',
      'CrWinClngLLDdbg',
      'ToTWin',
      'ToTWin(dbg)',
      'ToTWin(dll)',
      'ToTWin64',
      'ToTWin64(dbg)',
      'ToTWin64(dll)',
      'ToTWinCFI',
      'ToTWinCFI64',
      'ToTWinLibcxx64',
      'ToTWinThinLTO64',
      # chromium.fyi; all these bots run Windows 7.
      'Out of Process Profiling Windows',
    ],
  },
  'printing_unittests': {
    'remove_from': [
      # chromium.chromiumos
      'linux-chromeos-dbg',
    ],
  },
 'remoting_unittests': {
    'remove_from': [
      # chromium.linux
      'Linux Tests (dbg)(1)(32)',  # https://crbug.com/852895
    ],
  },
  'sandbox_linux_unittests': {
    'modifications': {
      'KitKat Tablet Tester': {
        'swarming': {
          'hard_timeout': 60,
        },
      },
      'Marshmallow Tablet Tester': {
        'swarming': {
          'hard_timeout': 60,
        },
      },
      'linux-chromeos-dbg': {
        'args': [
          '--test-launcher-print-test-stdio=always',
        ],
      },
      'linux-chromeos-rel': {
        'args': [
          '--test-launcher-print-test-stdio=always',
        ],
      },
      'Linux Tests (dbg)(1)': {
        'args': [
          '--test-launcher-print-test-stdio=always',
        ],
      },
      'Linux Tests (dbg)(1)(32)': {
        'args': [
          '--test-launcher-print-test-stdio=always',
        ],
      },
      'Lollipop Tablet Tester': {
        'swarming': {
          'hard_timeout': 60,
        },
      },
    },
  },
  'services_unittests': {
    'remove_from': [
      # chromium.clang
      'ToTLinuxMSan',  # https://crbug.com/831676
      # chromium.gpu.fyi
      # The face and barcode detection tests fail on the Mac Pros.
      'Mac Pro FYI Release (AMD)',
      # chromium.fyi
      'mac-views-rel',
      'Chromium Mac 10.13',
      'Win 10 Fast Ring',
      # On chromium.linux, unclear why these aren't run on Cast.
      'Cast Audio Linux',
      'Cast Linux',
      # chromium.memory
      'Linux ChromiumOS MSan Tests',  # https://crbug.com/831676
      'Linux MSan Tests',  # https://crbug.com/831676
    ],
  },
  'not_site_per_process_browser_tests': {
    'remove_from': [
      # chromium.fyi
      'Site Isolation Android',
      # chromium.linux
      'Linux Tests (dbg)(1)(32)',
      # chromium.memory
      'Linux ASan LSan Tests (1)',  # No capacity, https://crbug.com/852442
      'Linux TSan Tests',  # No capacity, https://crbug.com/852442
    ],
    'modifications': {
      'Linux Tests (dbg)(1)': {
        'swarming': {
          'shards': 10,
        },
      },
      # client.v8.chromium
      'Linux - Future (dbg)': {
        'swarming': {
          'shards': 10,
        },
      },
    },
  },
  'site_per_process_components_browsertests': {
    'remove_from': [
      # chromium.linux
      'Linux Tests (dbg)(1)(32)',
      # chromium.memory
      'Linux ASan LSan Tests (1)',  # No capacity, https://crbug.com/852442
      'Linux TSan Tests',  # No capacity, https://crbug.com/852442
    ],
  },
  'site_per_process_components_unittests': {
    'remove_from': [
      # chromium.linux
      'Linux Tests (dbg)(1)(32)',
      # chromium.memory
      'Linux ASan LSan Tests (1)',  # No capacity, https://crbug.com/852442
      'Linux TSan Tests',  # No capacity, https://crbug.com/852442
    ],
  },
  'site_per_process_content_browsertests': {
    'remove_from': [
      # chromium.linux
      'Linux Tests (dbg)(1)(32)',
      # chromium.memory
      'Linux ASan LSan Tests (1)',  # No capacity, https://crbug.com/852442
      'Linux TSan Tests',  # No capacity, https://crbug.com/852442
    ],
    'modifications': {
      # chromium.fyi
      'Site Isolation Android': {
        'swarming': {
          'shards': 6,
        },
      },
    },
  },
  'site_per_process_content_unittests': {
    'remove_from': [
      # chromium.linux
      'Linux Tests (dbg)(1)(32)',
      # chromium.memory
      'Linux ASan LSan Tests (1)',  # No capacity, https://crbug.com/852442
      'Linux TSan Tests',  # No capacity, https://crbug.com/852442
    ],
  },
  'site_per_process_extensions_browsertests': {
    'remove_from': [
      # chromium.linux
      'Linux Tests (dbg)(1)(32)',
      # chromium.memory
      'Linux ASan LSan Tests (1)',  # No capacity, https://crbug.com/852442
      'Linux TSan Tests',  # No capacity, https://crbug.com/852442
    ],
  },
  'site_per_process_extensions_unittests': {
    'remove_from': [
      # chromium.linux
      'Linux Tests (dbg)(1)(32)',
      # chromium.memory
      'Linux ASan LSan Tests (1)',  # No capacity, https://crbug.com/852442
      'Linux TSan Tests',  # No capacity, https://crbug.com/852442
    ],
  },
  'not_site_per_process_interactive_ui_tests': {
    'remove_from': [
      # chromium.linux
      'Linux Tests (dbg)(1)(32)',
      # chromium.memory
      'Linux ASan LSan Tests (1)',  # No capacity, https://crbug.com/852442
      'Linux TSan Tests',  # No capacity, https://crbug.com/852442
    ],
  },
  'not_site_per_process_sync_integration_tests': {
    'remove_from': [
      # chromium.linux
      'Linux Tests (dbg)(1)(32)',
      # chromium.memory
      'Linux ASan LSan Tests (1)',  # No capacity, https://crbug.com/852442
      'Linux TSan Tests',  # No capacity, https://crbug.com/852442
    ],
  },
  'not_site_per_process_unit_tests': {
    'remove_from': [
      # chromium.fyi
      'Site Isolation Android',
      # chromium.linux
      'Linux Tests (dbg)(1)(32)',
      # chromium.memory
      'Linux ASan LSan Tests (1)',  # No capacity, https://crbug.com/852442
      'Linux TSan Tests',  # No capacity, https://crbug.com/852442
    ],
  },
  'site_per_process_webkit_layout_tests': {
    'remove_from': [
      # chromium.linux
      # TODO(dpranke): Should we be running this step on Linux Tests (dbg)(1)?
      'Linux Tests (dbg)(1)',
      'Linux Tests (dbg)(1)(32)',
    ],
  },
  'sizes': {
    'remove_from': [
      'Win',
      'Win x64',
    ],
    'modifications': {
      # chromium
      'Mac': {
        'args': [
          'mac-release/sizes',
        ],
      },
      'Linux x64': {
        'args': [
          'linux-release-64/sizes',
        ],
      },
      # chromium.android.fyi
      'Android Cronet KitKat Builder': {
        'args': [
          '--platform',
          'android-cronet',
          '--perf-id',
          'android_cronet_builder',
          'cronet-arm/sizes',
        ],
        'override_compile_targets': [
          'cronet',
        ],
      },
    },
  },
  'snapshot_unittests': {
    'remove_from': [
      # chromium.chromiumos
      'linux-chromeos-dbg',
      'linux-chromeos-rel',
      # chromium.fyi
      'mac-views-rel',
      'Chromium Mac 10.13',
      'Out of Process Profiling Mac',
    ],
  },
  'sql_unittests': {
    'remove_from': [
      # chromium.fyi
      'Fuchsia ARM64',
    ],
    'modifications': {
      'KitKat Tablet Tester': {
        'swarming': {
          'hard_timeout': 60,
        },
      },
      'Lollipop Tablet Tester': {
        'swarming': {
          'hard_timeout': 60,
        },
      },
      'Marshmallow Tablet Tester': {
        'swarming': {
          'hard_timeout': 120,
        },
      },
    },
  },
  'storage_unittests': {
    'remove_from': [
      # chromium.fyi
      'Out of Process Profiling Mac',
    ],
    'modifications': {
      # chromium.android
      'android-kitkat-arm-rel': {
        'swarming': {
          'hard_timeout': 180,
        },
      },
      'KitKat Phone Tester (dbg)': {
        'swarming': {
          'hard_timeout': 180,
        },
      },
      'KitKat Tablet Tester': {
        'swarming': {
          'hard_timeout': 120,
        },
      },
      'Lollipop Phone Tester': {
        'swarming': {
          'hard_timeout': 960,
        },
      },
      'Lollipop Tablet Tester': {
        'swarming': {
          'hard_timeout': 300,
        },
      },
      'Marshmallow 64 bit Tester': {
        'swarming': {
          'hard_timeout': 960,
        },
      },
      'Marshmallow Tablet Tester': {
        'swarming': {
          'hard_timeout': 300,
        },
      },
    },
  },
  'sync_integration_tests': {
    'modifications': {
      'Win7 Tests (dbg)(1)': {
        'swarming': {
          'shards': 2,
        },
      },
    },
    'remove_from': [
      # chromium.memory
      'Linux TSan Tests',  # https://crbug.com/852002
    ],
  },
  'performance_test_suite': {
    'modifications': {
      'Mac10.13 Tests (dbg)': {
        'args': [
          '--browser=debug',
        ],
      },
      'Win10 Tests x64 (dbg)': {
        'args': [
          '--browser=debug_x64',
        ],
        'experiment_percentage': 100,
      },
      'Win7 Tests (dbg)(1)': {
        'args': [
          '--browser=debug',
        ],
      },
    },
  },
  'surface_sync_browser_tests': {
    'remove_from': [
      # chromium.fyi
      'Chromium Mac 10.13', # https://crbug.com/828031
      'Out of Process Profiling Mac', # https://crbug.com/828031
      'mac-views-rel', # https://crbug.com/828031
    ],
  },
  'swiftshader_unittests': {
    'remove_from': [
      # Save capacity on the hardware where we have only a few machines.
      'Mac FYI Experimental Release (Intel)',
      'Mac FYI Experimental Retina Release (AMD)',
      'Mac FYI Experimental Retina Release (NVIDIA)',
      'Mac Pro FYI Release (AMD)',
    ],
  },
  'tab_capture_end2end_tests': {
    # Run these only on Release bots, and don't run them on TSAN.
    'remove_from': [
      # chromium.gpu
      'Linux Debug (NVIDIA)',
      'Mac Debug (Intel)',
      'Mac Retina Debug (AMD)',
      'Win10 Debug (NVIDIA)',
      # chromium.gpu.fyi
      'Win10 FYI Debug (NVIDIA)',
      'Win7 FYI Debug (AMD)',
    ],
  },
  'telemetry_perf_unittests': {
    'modifications': {
      # chromium.android
      'android-kitkat-arm-rel': {
        'args': [
          '--browser=android-chromium',
          '--device=android',
        ],
        'swarming': {
          'dimension_sets': [
            {
              'temp_band': '<30',
            },
          ],
          'hard_timeout': 1500,
          'shards': 15,
        },
      },
      'android-marshmallow-arm64-rel': {
        'args': [
          '--browser=android-chromium',
          '--device=android',
        ],
        'swarming': {
          'dimension_sets': [
            {
              'temp_band': '<30',
            },
          ],
          'hard_timeout': 1500,
          'shards': 15,
        },
      },
      # chromium.android.fyi
      'x86 Cloud Tester': {
        'args': [
          '--browser=android-chromium',
          '--device=android',
        ],
        'swarming': {
          'shards': 1,
        },
      },
      # chromium.linux
      'Linux Tests': {
        'args': [
          '--xvfb',
          '--jobs=1',
        ],
      },
      'Linux Tests (dbg)(1)': {
        'args': [
          '--xvfb',
          '--jobs=1',
        ],
      },
      'linux-xenial-rel': {
        'args': [
          '--xvfb',
          '--jobs=1',
        ],
      },
      # chromium.mac
      # Disable parallelism on all Mac bots.
      'Mac10.10 Tests': {
        'args': [
          '--jobs=1',
        ],
      },
      'Mac10.11 Tests': {
        'args': [
          '--jobs=1',
        ],
      },
      'Mac10.12 Tests': {
        'args': [
          '--jobs=1',
        ],
      },
      'Win7 Tests (dbg)(1)': {
        'args': [
          '--jobs=1',
        ],
        'swarming': {
          'shards': 20,
        },
        'experiment_percentage': 100,
      },
    },
    'remove_from': [
      'Linux Tests (dbg)(1)(32)',
      'Mac10.13 Tests',
      'Mac10.13 Tests (dbg)',
      # client.v8.chromium
      'Linux - Future (dbg)',
      # chromium.win
      'Win10 Tests x64 (dbg)',
    ],
  },
  'telemetry_unittests': {
    'modifications': {
      'Out of Process Profiling Mac': {
        'swarming': {
          'shards': 2,
        },
      },
    },
    'remove_from': [
      # chromium.win
      'Win10 Tests x64 (dbg)',
    ],
  },
  'traffic_annotation_auditor_unittests': {
    'modifications': {
      'Linux Tests': {
        # Unclear why this isn't swarmed.
        'swarming': {
          'can_use_on_swarming_builders': False,
        },
      },
    },
    'remove_from': [
      # On chromium.linux, unclear why these only run on "Linux Tests".
      'Linux Tests (dbg)(1)',
      'Linux Tests (dbg)(1)(32)',
    ],
  },
  'ui_android_unittests': {
    'modifications': {
      'KitKat Tablet Tester': {
        'swarming': {
          'hard_timeout': 120,
        },
      },
      'Marshmallow Tablet Tester': {
        'swarming': {
          'hard_timeout': 120,
        },
      },
    },
  },
  'ui_base_unittests': {
    'modifications': {
      'KitKat Tablet Tester': {
        'swarming': {
          'hard_timeout': 120,
        },
      },
      'Marshmallow Tablet Tester': {
        'swarming': {
          'hard_timeout': 120,
        },
      },
    },
  },
  'ui_touch_selection_unittests': {
    'modifications': {
      'KitKat Tablet Tester': {
        'swarming': {
          'hard_timeout': 120,
        },
      },
      'Marshmallow Tablet Tester': {
        'swarming': {
          'hard_timeout': 120,
        },
      },
    },
  },
  'unit_tests': {
    'remove_from': [
      # On chromium.linux, unclear why these aren't run on Cast.
      'Cast Audio Linux',
      'Cast Linux',
      # chromium.win
      'Win10 Tests x64 (dbg)',
    ],
    'modifications': {
      # chromium.android
      'android-marshmallow-arm64-rel': {
        'swarming': {
          'hard_timeout': 960,
          'shards': 2,
        },
      },
      'KitKat Tablet Tester': {
        'swarming': {
          'hard_timeout': 1200,
          'shards': 2,
        },
      },
      'Lollipop Phone Tester': {
        'swarming': {
          'hard_timeout': 960,
          'shards': 2,
        },
      },
      'Lollipop Tablet Tester': {
        'swarming': {
          'hard_timeout': 1200,
          'shards': 2,
        },
      },
      'Marshmallow 64 bit Tester': {
        'swarming': {
          'hard_timeout': 960,
          'shards': 2,
        },
      },
      'Marshmallow Tablet Tester': {
        'swarming': {
          'hard_timeout': 1200,
          'shards': 2,
        },
      },
      # chromium.android.fyi
      'Nougat Phone Tester': {
        'swarming': {
          'hard_timeout': 1200,
          'shards': 2,
        },
      },
      'x64 Device Tester': {
        'swarming': {
          'hard_timeout': 0,
        },
      },
      'x86 Cloud Tester': {
        'swarming': {
          'hard_timeout': 0,
        },
      },
      # chromium.clang
      'ToTLinuxASan': {
        'swarming': {
          'shards': 2,
        },
      },
      # chromium.memory
      'Linux ASan LSan Tests (1)': {
        # These are slow on the ASAN trybot for some reason.
        # crbug.com/794372
        'swarming': {
          'shards': 4,
        },
      },
      'Linux TSan Tests': {
        'swarming': {
          'shards': 2,
        },
      },
      # chromium.swarm
      'Android N5X Swarm': {
        'swarming': {
          'shards': 8,
        },
      },
    },
  },
  'video_decode_accelerator_gl_unittest': {
    'remove_from': [
      # chromium.gpu.fyi
      # Windows Intel doesn't have the GL extensions to support this test.
      'Optional Win10 Release (Intel HD 630)',
      'Win10 FYI Release (Intel HD 630)',
      'Win10 FYI Exp Release (Intel HD 630)',
    ],
  },
  'viz_content_browsertests': {
    'remove_from': [
      # Currently flaky timeouts on Windows 10. crbug.com/839824
      'Win10 Tests x64 (dbg)',
    ],
    'modifications': {
      # chromium.clang
      'ToTLinuxUBSanVptr': {
        'swarming': {
          'shards': 5,
        },
      },
      'linux-win_cross-rel': {
        # content_browsertests sometimes times out without this override on
        # the cross bot, probably because of https://crbug.com/803591,
        # see also https://crbug.com/838559
        # TODO(thakis): Remove this once 803591 is fixed.
        'swarming': {
          'shards': 5,
        },
      },
      # chromium.memory
      'Linux ASan LSan Tests (1)': {
        # These are very slow on the ASAN trybot for some reason.
        # crbug.com/794372
        'swarming': {
          'shards': 8,
        },
      },
      'Linux Chromium OS ASan LSan Tests (1)': {
        # content_browsertests is slow on ASAN try bot. crbug.com/822461.
        'swarming': {
          'shards': 4,
        }
      },
      'Linux TSan Tests': {
        'swarming': {
          'shards': 7,
        },
      },
    },
  },
  'viz_browser_tests': {
    'remove_from': [
      # chromium.clang
      'ToTMac', # https://crbug.com/828031
      'ToTMacASan', # https://crbug.com/828031
      # chromium.fyi
      'Chromium Mac 10.13', # https://crbug.com/828031
      'Out of Process Profiling Mac', # https://crbug.com/828031
      'mac-views-rel', # https://crbug.com/828031
      # chromium.mac
      'Mac10.10 Tests', # https://crbug.com/828031
      'Mac10.11 Tests', # https://crbug.com/828031
      'Mac10.12 Tests', # https://crbug.com/828031
      'Mac10.13 Tests', # https://crbug.com/828031
      'Mac10.13 Tests (dbg)', # https://crbug.com/828031
      # chromium.memory
      'Linux TSan Tests',  # https://crbug.com/368525
      'Mac ASan 64 Tests (1)', # https://crbug.com/828031
      # chromium.win
      # Currently too flaky on Windows.
      'Win 7 Tests x64 (1)',
      'Win10 Tests x64',
      'Win7 Tests (1)',
      'Win10 Tests x64 (dbg)',
    ],
    'modifications': {
      # chromium.chromiumos
      'linux-chromeos-dbg': {
        'swarming': {
          'shards': 20,
        },
      },
      # chromium.clang
      'ToTWin(dbg)': {
        'swarming': {
          'shards': 20,
        },
      },
      'ToTWin64(dbg)': {
        'swarming': {
          'shards': 20,
        },
      },
      # chromium.memory
      'Linux ASan LSan Tests (1)': {
        # These are very slow on the ASAN trybot for some reason.
        # crbug.com/794372
        'swarming': {
          'shards': 20,
        },
      },
    },
  },
  'viz_screenshot_sync_tests': {
    'remove_from': [
      # These tests don't work on TSAN right now.
      'Linux FYI GPU TSAN Release',
    ],
  },
  'viz_unittests': {
    'remove_from': [
      # chromium.fyi
      'Out of Process Profiling Android',
      'Out of Process Profiling Linux',
      # chromium.win
      'Win10 Tests x64',
    ],
    'modifications': {
      'android-marshmallow-arm64-rel': {
        'swarming': {
          'hard_timeout': 960,
        },
      },
      'KitKat Tablet Tester': {
        'swarming': {
          'hard_timeout': 300,
        },
      },
      'Lollipop Tablet Tester': {
        'swarming': {
          'hard_timeout': 300,
        },
      },
      'Marshmallow Tablet Tester': {
        'swarming': {
          'hard_timeout': 300,
        },
      },
    },
  },
  'vr_common_unittests': {
    'remove_from': [
      'Out of Process Profiling Android',
      # chromium.win
      'Win 7 Tests x64 (1)',
      'Win10 Tests x64',
    ],
    'modifications': {
      'android-marshmallow-arm64-rel': {
        'swarming': {
          'hard_timeout': 960,
        },
      },
      'KitKat Tablet Tester': {
        'swarming': {
          'hard_timeout': 300,
        },
      },
      'Lollipop Tablet Tester': {
        'swarming': {
          'hard_timeout': 300,
        },
      },
      'Marshmallow Tablet Tester': {
        'swarming': {
          'hard_timeout': 300,
        },
      },
    },
  },
  'vr_browser_tests': {
    'remove_from': [
      # chromium.gpu.fyi
      # TODO(kbr): remove the following two exceptions after switching
      # to the new generate_buildbot_json script.
      'Win10 FYI Exp Release (Intel HD 630)',
      'Win7 FYI Release (AMD)',
      # This exception probably needs to stay due to lack of capacity
      # on the Win AMD bots.
      'Win7 FYI Debug (AMD)',
    ],
  },
  'vr_pixeltests': {
    'remove_from': [
      # chromium.fyi
      'Out of Process Profiling Android',
      'VR Linux',
      # chromium.win
      'Win 7 Tests x64 (1)',
      'Win10 Tests x64',
      'Win7 Tests (1)',
      'Win7 Tests (dbg)(1)',
    ],
  },
  'webgl_conformance_d3d9_passthrough_tests': {
    'remove_from': [
      # TODO(jdarpinian): Re-enable when http://crbug.com/841789 is fixed.
      'Win10 FYI Exp Release (Intel HD 630)',
    ],
  },
  'webgl_conformance_d3d9_tests': {
    'remove_from': [
      # TODO(jdarpinian): Re-enable when http://crbug.com/841789 is fixed.
      'Win10 FYI Exp Release (Intel HD 630)',
    ],
  },
  'webgl_conformance_tests': {
    'modifications': {
      # On desktop platforms these don't take very long (~7 minutes),
      # but on Android they take ~30 minutes and we want to use more
      # shards than on desktop.
      # chromium.gpu
      'Android Release (Nexus 5X)': {
        'swarming': {
          'shards': 6,
        },
      },
      'Mac FYI GPU ASAN Release': {
        'args': [
          '--is-asan',
        ]
      },
    },
  },
  'webgl_conformance_gl_passthrough_tests': {
    'remove_from': [
      # crbug.com/555545 and crbug.com/649824:
      # Disable webgl_conformance_gl_tests on some Win/AMD cards.
      # Always fails on older cards, flaky on newer cards.
      'Win7 FYI Debug (AMD)',
      'Win7 FYI Release (AMD)',
    ],
  },
  'webgl2_conformance_tests': {
    'remove_from': [
      # The Mac NVIDIA Retina bots don't have the capacity to run
      # this test suite on mac_optional_gpu_tests_rel.
      'Optional Mac Retina Release (NVIDIA)',
    ],
    'modifications': {
      'Mac FYI GPU ASAN Release': {
        'args': [
          '--is-asan',
        ]
      },
    },
  },
  'webkit_layout_tests': {
    'remove_from': [
      # chromium.fyi
      'Out of Process Profiling Mac',
      # chromium.linux
      'Linux Tests (dbg)(1)(32)', # 32-bit linux is unsupported
      # chromium.win
      'Win 7 Tests x64 (1)',  # 64-bit win is unsupported by the layout tests.
      'Win10 Tests x64 (dbg)',
    ],
    'modifications': {
      # chromium.fyi
      'linux-blink-gen-property-trees': {
        'args': [
          '--debug',
          '--additional-driver-flag=--enable-blink-gen-property-trees',
        ],
      },
      'linux-blink-heap-incremental-marking': {
        'args': [
          '--debug',
          '--additional-driver-flag=--enable-blink-features=HeapIncrementalMarkingStress',
        ],
      },
      'mac10.10-blink-rel-dummy': {
        'swarming': {
          'dimension_sets': [
            { # This should match Mac10.10 Tests on chromium.mac.
              'gpu': 'none',
              'os': 'Mac-10.10',
            }
          ]
        },
      },
      'mac10.11-blink-rel-dummy': {
        'swarming': {
          'dimension_sets': [
            { # This should match Mac10.11 Tests on chromium.mac.
              'gpu': 'none',
              'os': 'Mac-10.11',
            }
          ]
        },
      },
      'mac10.12-blink-rel-dummy': {
        'swarming': {
          'dimension_sets': [
            { # This should match Mac10.12 Tests on chromium.mac.
              'gpu': '8086:0a2e',
              'hidpi': '0',
              'os': 'Mac-10.12',
            },
          ],
        },
      },
      'mac10.12_retina-blink-rel-dummy': {
        'swarming': {
          'dimension_sets': [
            { # This should match WebKit Mac10.12 (retina) on chromium.webkit.
              'gpu': '8086:0a2e',
              'hidpi': '1',
              'os': 'Mac-10.12',
            },
          ],
        },
      },
      'mac10.13-blink-rel-dummy': {
        'swarming': {
          'dimension_sets': [
            { # This should match Chromium Mac 10.13 on chromium.fyi.
              'gpu': '8086:0a2e',
              'hidpi': '0',
              'os': 'Mac-10.13',
            },
          ],
          'shards': 12,
        },
      },
      'WebKit Linux layout_ng Dummy Builder': {
        'args': [
          '--additional-driver-flag=--enable-blink-features=LayoutNG',
          '--additional-driver-flag=--enable-slimming-paint-v175',
        ],
        'swarming': {
          'shards': 15,
        },
      },
      'WebKit Linux root_layer_scrolls Dummy Builder': {
        'args': [
          '--additional-driver-flag=--root-layer-scrolls',
        ],
        'swarming': {
          'shards': 15,
        },
      },
      'WebKit Linux slimming_paint_v2 Dummy Builder': {
        'args': [
          '--additional-driver-flag=--enable-slimming-paint-v2',
        ],
        'swarming': {
          'shards': 15,
        },
      },
      # chromium.linux
      'Linux Tests': {
        'swarming': {
          'dimension_sets': [
            {
              # TODO(kbr): this is essentially redundant.
              'os': 'Ubuntu-14.04',
            },
          ],
          'shards': 6,
        },
      },
      'Linux Tests (dbg)(1)': {
        'args': [
          '--debug',
        ],
        'swarming': {
          'dimension_sets': [
            {
              # TODO(kbr): this is essentially redundant.
              'os': 'Ubuntu-14.04',
            },
          ],
          'shards': 20,
        },
      },
      # chromium.mac
      'Mac10.10 Tests': {
        # TODO(kbr): this is essentially redundant.
        'swarming': {
          'dimension_sets': [
            {
              'gpu': 'none',
              'os': 'Mac-10.10.5',
            },
          ],
        },
      },
      'Mac10.11 Tests': {
        # TODO(kbr): this is essentially redundant.
        'swarming': {
          'dimension_sets': [
            {
              'gpu': 'none',
              'os': 'Mac-10.11.6',
            },
          ],
        },
      },
      'Mac10.12 Tests': {
        # TODO(kbr): if the Swarming dimensions were explicitly specified for
        # all jobs then this wouldn't be needed. However, note that this bot
        # implicitly specifies gpu:none rather than gpu:8086:0a2e.
        'swarming': {
          'dimension_sets': [
            {
              'gpu': '8086:0a2e',
              'hidpi': '0',
              'os': 'Mac-10.12.6',
            },
          ],
          'shards': 12,
        },
      },
      'Mac10.13 Tests': {
        # TODO(jbudorick,dpranke): Switch this to 10.13.

        # TODO(kbr): if the Swarming dimensions were explicitly specified for
        # all jobs then this wouldn't be needed. However, note that this bot
        # implicitly specifies gpu:none rather than gpu:8086:0a2e.
        'swarming': {
          'dimension_sets': [
            {
              'gpu': '8086:0a2e',
              'hidpi': '0',
              'os': 'Mac-10.12.6',
            },
          ],
          'shards': 12,
        },
      },
      'Mac10.13 Tests (dbg)': {
        'args': [
          '--debug',
        ],
      },
      # chromium.clang
      'ToTMac': {
        # TODO(thakis): Remove this once Mac10.13 Tests no longer runs tests on 10.12.
        'swarming': {
          'dimension_sets': [
            {
              'gpu': '8086:0a2e',
              'hidpi': '0',
              'os': 'Mac-10.12.6',
            },
          ],
          'shards': 12,
        },
      },

      # chromium.webkit.
      'WebKit Linux Trusty ASAN': {
        'args': [
          '--additional-expectations',
          '../../third_party/WebKit/LayoutTests/ASANExpectations',
          '--time-out-ms',
          '48000',
          '--enable-sanitizer',
        ],
        'swarming': {
          'dimension_sets': [
            {
              'os': 'Ubuntu-14.04',
            },
          ],
          'shards': 20,
        },
      },
      'WebKit Linux Trusty Leak': {
        'args': [
          '--additional-expectations',
          '../../third_party/WebKit/LayoutTests/LeakExpectations',
          '--time-out-ms',
          '48000',
          '--enable-leak-detection',
        ],
        'swarming': {
          'dimension_sets': [
            {
              'os': 'Ubuntu-14.04',
            },
          ],
          'shards': 10,
        },
      },
      'WebKit Linux Trusty MSAN': {
        'args': [
          '--additional-expectations',
          '../../third_party/WebKit/LayoutTests/MSANExpectations',
          '--time-out-ms',
          '66000',
          '--enable-sanitizer',
        ],
        'swarming': {
          'dimension_sets': [
            {
              'os': 'Ubuntu-14.04',
            },
          ],
          'expiration': 36000,
          'hard_timeout': 10800,
          'io_timeout': 3600,
          'shards': 20,
        },
      },
      'WebKit Win10': {
        'swarming': {
          'dimension_sets': [
            {
              'os': 'Windows-10-15063',
            },
          ],
        },
      },
      # chromium.win
      'Win7 Tests (dbg)(1)': {
        'args': [
          '--debug',
          '--time-out-ms',
          '60000'
        ],
        'experiment_percentage': 100,
        # TODO(kbr): the "Windows-7-SP1" Swarming dimension set is implicit,
        # from prefered_os_dimension in
        # tools/build/scripts/slave/recipe_modules/swarming/api.py. Ideally,
        # Swarming dimensions would be either specified for all testers on the
        # waterfall (and therefore, explicitly specified for all tests in the
        # generated JSON), or this would be removed, and the implicit one used.
        'swarming': {
          'dimension_sets': [
            {
              'os': 'Windows-7-SP1',
            }
          ],
        },
      },
      'Win10 Tests x64 (dbg)': {
        'args': [
          '--debug',
          '--target',
          'Debug_x64',
        ],
      },
    },
  },
  'webkit_unit_tests': {
    'modifications': {
      # chromium.memory
      'Linux ASan LSan Tests (1)': {
        # These are very slow on the ASAN trybot for some reason.
        # crbug.com/794372
        'swarming': {
          'shards': 5,
        },
      },
      'Marshmallow 64 bit Tester': {
        # Increase timeout. See https://crbug.com/847229.
        'swarming': {
          'hard_timeout': 1200,
        },
      },
    },
  },
  'webview_instrumentation_test_apk': {
    'remove_gtest_from': [
      'Unswarmed N5 Tests Dummy Builder',
      'Unswarmed N5X Tests Dummy Builder',
    ],
    'remove_from': [
      # This test frequently fails on Android, https://crbug.com/824959
      # chromium.android
      'android-kitkat-arm-rel',
      'KitKat Phone Tester (dbg)',
      'KitKat Tablet Tester',
      # chromium.android.fyi
      # chromium.clang; matching chromium.android, the test fails on these.
      'ToTAndroid',
      # On chromium.swarm, this should possibly be being run (or removed
      # from Android N5X Swarm).
      'Android N5 Swarm',
      # chromium.fyi
      'Out of Process Profiling Android',
    ],
    'key_removals': {
      # chromium.android.fyi
      'Nougat Phone Tester': [
        'args',
      ],
      'x86 Cloud Tester': [
        'args',
      ],
    },
    'modifications': {
      # chromium.android
      'android-marshmallow-arm64-rel': {
        'swarming': {
          'hard_timeout': 1200,
          'shards': 8,
        },
      },
      'Lollipop Phone Tester': {
        'swarming': {
          'shards': 6,
        },
      },
      'Lollipop Tablet Tester': {
        'swarming': {
          'hard_timeout': 1800,
          'shards': 6,
        },
      },
      'Marshmallow 64 bit Tester': {
        'swarming': {
          'hard_timeout': 1200,
          'shards': 8,
        },
      },
      'Marshmallow Tablet Tester': {
        'swarming': {
          'hard_timeout': 1800,
          'shards': 6,
        },
      },
      # chromium.android.fyi
      'Nougat Phone Tester': {
        'swarming': {
          'hard_timeout': 1500,
          'shards': 6,
        },
      },
      'x86 Cloud Tester': {
        'swarming': {
          'hard_timeout': 960,
        },
      },
    },
  },
  'wm_unittests': {
    'remove_from': [
      # chromium.fyi
      'Out of Process Profiling Windows',
      'Win 10 Fast Ring',
    ],
  },
  'zucchini_unittests': {
    'remove_from': [
      # chromium.win
      'Win10 Tests x64',
    ],
  },
}
