# 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.
{
  'accessibility_unittests': {
    'remove_from': [
      'Mac ASan 64 Tests (1)',
    ],
  },
  '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,
      },
    },
  },
  'boringssl_crypto_tests': {
    'remove_from': [
      # chromium.chromiumos
      'linux-chromeos-dbg',
      'linux-chromeos-rel',
      # On chromium.mac, unclear why these aren't run on "Mac10.12 Tests".
      'Mac10.12 Tests',
    ],
  },
  'boringssl_ssl_tests': {
    'remove_from': [
      # chromium.chromiumos
      'linux-chromeos-dbg',
      'linux-chromeos-rel',
      # On chromium.mac, unclear why these aren't run on "Mac10.12 Tests".
      'Mac10.12 Tests',
    ],
  },
  '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',
      'UBSanVptr Linux',
      # chromium.memory
      'Linux TSan Tests',  # https://crbug.com/368525
      # 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,
        },
      },
      'Mac10.11 Tests': {
        'args': [
          '--test-launcher-filter-file=../../testing/buildbot/filters/mac_window_server_killers.browser_tests.filter',
        ],
      },
      'Mac10.12 Tests': {
        'args': [
          '--test-launcher-filter-file=../../testing/buildbot/filters/mac_window_server_killers.browser_tests.filter',
        ],
      },
      # chromium.memory
      'Linux ASan LSan Tests (1)': {
        # These are very slow on the ASAN trybot for some reason.
        # crbug.com/794372
        'swarming': {
          'shards': 30,
        },
      },
      'Linux Chromium OS ASan LSan Tests (1)': {
        'args': [
          '--test-launcher-filter-file=../../testing/buildbot/filters/browser_tests_cros_asan.filter',
        ],
      },
      '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': {
    '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)',
    ],
  },
  'display_unittests': {
    'remove_from': [
      # chromium.fyi, unclear why these aren't run.
      'mac-views-rel',
      # chromium.win
      'Win7 Tests (dbg)(1)',
    ],
  },
  '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
      'Linux Chromium OS ASan LSan Tests (1)',
      'Linux TSan Tests',
      'Mac ASan 64 Tests (1)',
      # chromium.win
      'Win10 Tests x64 (dbg)',
    ],
  },
  'filesystem_service_unittests': {
    'remove_from': [
      'Linux Tests (dbg)(1)(32)',
    ],
  },
  'gin_unittests': {
    'remove_from': [
      # chromium.chromiumos
      'linux-chromeos-dbg',
      'linux-chromeos-rel',
      # chromium.clang
      'ToTLinuxASan',  # https://crbug.com/831667
      # 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 Cast.
      'Cast Audio Linux',
      'Cast Linux',
      'Linux Tests (dbg)(1)(32)',
      # 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
      'Linux ASan LSan Tests (1)',  # https://crbug.com/831667
      'Linux Chromium OS ASan LSan Tests (1)',  # https://crbug.com/831667
      # On chromium.win, unclear why these only run on "Win7 Tests (1)".
      'Win 7 Tests x64 (1)',
      'Win10 Tests x64',
      'Win7 Tests (dbg)(1)',
      # 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
      # chromium.memory
      'Linux TSan Tests',
    ],
    'modifications': {
      # chromium.clang
      'CFI Linux (icall)': {
        'swarming': {
          'shards': 1,
        },
      },
      # chromium.linux
      # Unclear why this isn't sharded.
      'Linux Tests': {
        'swarming': {
          'shards': 1,
        },
      },
      'Linux Tests (dbg)(1)': {
        'swarming': {
          'shards': 3,
        },
      },
      'Linux Tests (dbg)(1)(32)': {
        'swarming': {
          'shards': 3,
        },
      },
      # chromium.chromiumos
      'linux-chromeos-dbg': {
        'swarming': {
          'shards': 3,
        },
      },
      'linux-chromeos-rel': {
        'swarming': {
          'shards': 3,
        },
      },
      # chromium.fyi
      'Out of Process Profiling Mac': {
        'swarming': {
          'shards': 1,
        },
      },
      # chromium.mac
      # Unclear why this isn't swarmed.
      'Mac10.10 Tests': {
        'swarming': {
          'can_use_on_swarming_builders': False,
        },
      },
      # Unclear why this isn't sharded.
      'Mac10.11 Tests': {
        'swarming': {
          'shards': 1,
        },
      },
      # Unclear why this isn't sharded.
      'Mac10.12 Tests': {
        'swarming': {
          'shards': 1,
        },
      },
      # 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 CFI': {
        'swarming': {
          'shards': 1,
        },
      },
      # 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',
        ],
      },
    },
  },
  'keyboard_unittests': {
    'remove_from': [
      'Win7 Tests (dbg)(1)',
      # On chromium.linux, unclear why these aren't run.
      'Linux Tests',
      'Linux Tests (dbg)(1)',
      'Linux Tests (dbg)(1)(32)',
    ],
  },
  'latency_unittests': {
    'remove_from': [
      # chromium.fyi
      'Out of Process Profiling Android',
      'Out of Process Profiling Linux',
      # On chromium.linux, unclear why these aren't run.
      'Linux Tests (dbg)(1)',
      'Linux Tests (dbg)(1)(32)',
    ],
    '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',
    ],
  },
  'message_center_unittests': {
    'remove_from': [
      'Win7 Tests (dbg)(1)',
      # 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.fyi
      'mac-views-rel',
      'Chromium Mac 10.13',
      'Out of Process Profiling Mac',

      # On chromium.linux, unclear why these aren't run.
      'Linux Tests',

      # On chromium.linux, unclear why these aren't run.
      'Linux Tests (dbg)(1)',
      'Linux Tests (dbg)(1)(32)',
    ],
  },
  'metrics_python_tests': {
    'remove_from': [
      # chromium.fyi
      'Chromium Mac 10.13',
      'Out of Process Profiling Mac',
    ],
  },
  'mojo_core_unittests': {
    'remove_from': [
      # chromium.clang
      'CFI Linux (icall)',  # https://crbug.com/850464
      'CFI Linux ToT',  # https://crbug.com/850464
      # chromium.memory
      'Linux CFI',  # https://crbug.com/850464
    ],
  },
  '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.fyi
      'mac-views-rel',
      'Chromium Mac 10.13',
      'Out of Process Profiling Mac',
      # 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.win
      'Win10 Tests x64 (dbg)',
    ],
  },
  'network_service_components_browsertests': {
    'remove_from': [
      # chromium.win
      'Win10 Tests x64 (dbg)',
    ],
  },
  'network_service_extensions_browsertests': {
    'remove_from': [
      # chromium.win
      'Win10 Tests x64 (dbg)',
    ],
  },
  'network_service_interactive_ui_tests': {
    'modifications': {
      # chromium.win; temporary, https://crbug.com/818832
      'Win10 Tests x64 (dbg)': {
        'experiment_percentage': 100,
      },
    },
  },
  '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': [
      # On chromium.linux, unclear why these aren't run on 32-bit.
      'Linux Tests (dbg)(1)(32)',
    ],
  },
  '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,
        },
      },
    },
  },
  'service_manager_unittests': {
    'remove_from': [
      # chromium.chromiumos
      'linux-chromeos-dbg',
      'linux-chromeos-rel',
      # chromium.linux
      'Linux Tests (dbg)(1)(32)',
      # 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)',
      'Win7 Tests (dbg)(1)',
      'Win10 Tests x64',
      # chromium.win
      'Win10 Tests x64 (dbg)',
    ],
  },
  '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)',
    ],
    '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)',
    ],
  },
  'site_per_process_components_unittests': {
    'remove_from': [
      # chromium.linux
      'Linux Tests (dbg)(1)(32)',
    ],
  },
  'site_per_process_content_browsertests': {
    'remove_from': [
      # chromium.linux
      'Linux Tests (dbg)(1)(32)',
    ],
    'modifications': {
      # chromium.fyi
      'Site Isolation Android': {
        'swarming': {
          'shards': 6,
        },
      },
    },
  },
  'site_per_process_content_unittests': {
    'remove_from': [
      # chromium.linux
      'Linux Tests (dbg)(1)(32)',
    ],
  },
  'site_per_process_extensions_browsertests': {
    'remove_from': [
      # chromium.linux
      'Linux Tests (dbg)(1)(32)',
    ],
  },
  'site_per_process_extensions_unittests': {
    'remove_from': [
      # chromium.linux
      'Linux Tests (dbg)(1)(32)',
    ],
  },
  'not_site_per_process_interactive_ui_tests': {
    'remove_from': [
      # chromium.linux
      'Linux Tests (dbg)(1)(32)',
    ],
  },
  'not_site_per_process_sync_integration_tests': {
    'remove_from': [
      # chromium.linux
      'Linux Tests (dbg)(1)(32)',
    ],
  },
  'not_site_per_process_unit_tests': {
    'remove_from': [
      # chromium.fyi
      'Site Isolation Android',
      # chromium.linux
      'Linux Tests (dbg)(1)(32)',
    ],
  },
  '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 ASan LSan Tests (1)',
      'Linux CFI',
      'Linux Chromium OS ASan LSan Tests (1)',
      'Linux ChromiumOS MSan Tests',
      'Linux MSan Tests',
      'Linux TSan Tests',
    ],
  },
  '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',
        ],
      },
    },
  },
  '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 Chromium OS ASan LSan Tests (1)': {
        'args': [
          '--test-launcher-filter-file=../../testing/buildbot/filters/unit_tests_cros_asan.filter',
        ],
      },
      '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)',
    ],
  },
  'views_unittests': {
    'remove_from': [
      # chromium.linux
      'Linux Tests (dbg)(1)(32)',
    ],
  },
  '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': 5,
        },
      },
    },
  },
  'viz_browser_tests': {
    'remove_from': [
      # chromium.memory
      'Linux TSan Tests',  # https://crbug.com/368525
      # chromium.win
      # Currently too flaky on Windows.
      'Win 7 Tests x64 (1)',
      'Win10 Tests x64',
      'Win7 Tests (1)',
      'Win7 Tests (dbg)(1)',
      'Win10 Tests x64 (dbg)',
    ],
    'modifications': {
      # 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)',
      'Linux Tests (dbg)(1)(32)',
      # chromium.mac
      'Mac10.13 Tests (dbg)',
      # chromium.win
      'Win 7 Tests x64 (1)',
      'Win10 Tests x64 (dbg)',
    ],
    'modifications': {
      # chromium.fyi
      'Dummy WebKit Mac10.13': {
        'swarming': {
          'shards': 12,
        },
      },
      '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',
        ],
      },
      '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,
        },
      },
      # 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,
        },
      },

      # TODO(dpranke): Clean up all of the unneeded exceptions on
      # chromium.webkit.
      'WebKit Linux Trusty': {
        'swarming': {
          'dimension_sets': [
            {
              'os': 'Ubuntu-14.04',
            },
          ],
        },
      },
      'WebKit Linux Trusty (dbg)': {
        'args': [
          '--debug',
        ],
        'swarming': {
          'dimension_sets': [
            {
              'os': 'Ubuntu-14.04',
            },
          ],
          'shards': 20,
        },
      },
      '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 Mac10.11 (dbg)': {
        'args': [
          '--debug',
        ],
      },
      'WebKit Win10': {
        'swarming': {
          'dimension_sets': [
            {
              'os': 'Windows-10-15063',
            },
          ],
        },
      },
      'WebKit Win7': {
        'swarming': {
          'dimension_sets': [
            {
              'os': 'Windows-7-SP1',
            },
          ],
        },
      },
      'WebKit Win7 (dbg)': {
        'swarming': {
          'dimension_sets': [
            {
              'os': 'Windows-7-SP1',
            },
          ]
        },
      },

      'Win7 Tests (1)': {
      },

      # 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',
    ],
  },
}
