# 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',
    ],
  },
  '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': [
      'Android FYI Release (Nexus 5)',  # crbug.com/860800
      'Android FYI Release (Nexus 6)',  # anglebug.com/2433
    ],
  },
  'angle_unittests': {
    'remove_from': [
      # 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,
        },
      },
    },
  },
  'blink_heap_unittests': {
    'remove_from': [
      # chromium.memory
      'Linux TSan Tests',  # https://crbug.com/831674
    ],
  },
  'browser_tests': {
    'remove_from': [
      # chromium.clang
      'CrWinAsanCov',
      'linux-win_cross-rel',
      'ToTMac', # https://crbug.com/828031
      'ToTMacASan', # https://crbug.com/828031
      # chromium.fyi
      'Chromium Mac 10.13', # 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.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',
            },
          ],
        },
      },
      'mac-cocoa-rel': {
        # 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,
        },
      },
    },
  },
  '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,  # https://crbug.com/861753
        },
      },
      'Cast Linux': {
        'args': [
          '--enable-local-file-accesses',
          '--ozone-platform=cast',
          '--no-sandbox',
          '--test-launcher-jobs=1',
        ],
        'swarming': {
          'can_use_on_swarming_builders': False,  # https://crbug.com/861753
        },
      },
    },
  },
  'checkbins': {
    'remove_from': [
      'Linux x64',
      'Mac',
    ],
  },
  'chrome_public_test_apk': {
    'remove_from': [
      # chromium.clang
      'ToTAndroidCFI',  # https://crbug.com/862581
      # chromium.memory
      'Android CFI',  # https://crbug.com/862581
    ],
    '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,
        },
      },
      'Marshmallow 64 bit Tester': {
        # TODO(crbug.com/731759): Enable this once we're confident that it
        # passes.
        'experiment_percentage': 100,
        'swarming': {
          'shards': 14,
        },
      },
      'Oreo Phone Tester': {
        'experiment_percentage': 100,
      },
      # 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_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',
        ],
      },
      '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',
        ],
      },
      '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',
        ],
      },
      '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': {
    'modifications': {
      # chromium.android
      'KitKat Phone Tester (dbg)': {
        'swarming': {
          'shards': 2,
        },
      },
    },
  },
  'chromevox_tests': {
    'modifications': {
      # Takes a long time under msan for some reason.
      'Linux ChromiumOS MSan Tests': {
        'swarming': {
          'shards': 4,
        },
      },
    },
  },
  'components_unittests': {
    '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,
        },
      },
    },
  },
  'content_browsertests': {
    'modifications': {
      # 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,  # https://crbug.com/861843
        },
      },
      'Cast Linux': {
        'args': [
          '--test-launcher-filter-file=src/testing/buildbot/filters/cast-linux.content_browsertests.filter',
        ],
        'swarming': {
          'can_use_on_swarming_builders': False,  # https://crbug.com/861843
        },
      },
      # 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_shell_crash_test': {
    'remove_from': [
      # chromium.linux
      'Linux Tests (dbg)(1)(32)',  # https://crbug.com/859264
    ],
    'modifications': {
      # chromium.win
      'Win10 Tests x64 (dbg)': {
        'experiment_percentage': 100,  # https://crbug.com/861730
      },
    },
  },
  'content_unittests': {
    'modifications': {
      # chromium.memory
      'Linux ASan LSan Tests (1)': {
        # These are slow on the ASAN trybot for some reason.
        # crbug.com/794372
        'swarming': {
          'shards': 2,
        },
      },
    },
  },
  'context_lost_tests': {
    'modifications': {
      'Mac FYI GPU ASAN Release': {
        'args': [
          '--is-asan',
        ]
      },
    },
  },
  'crashpad_tests': {
    'remove_from': [
      # chromium.clang
      'linux-win_cross-rel', # https://crbug.com/762167
    ],
  },
  '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
    ],
  },
  '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': {
      # 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.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,
      },
    },
  },
  'gl_unittests_ozone': {
    'remove_from': [
      # Can't run on MSAN because gl_unittests_ozone uses the hardware driver,
      # which isn't instrumented.
      'Linux ChromiumOS MSan Tests',
    ],
  },
  'headless_browsertests': {
    'remove_from': [
      # chromium.clang
      'ToTLinuxASan',  # https://crbug.com/843732
      # chromium.memory
      'Linux ASan LSan Tests (1)',  # https://crbug.com/843732
      'Linux TSan Tests',  # https://crbug.com/843734
    ],
  },
  'headless_unittests': {
    'remove_from': [
      # chromium.clang
      'ToTLinuxASan',  # https://crbug.com/843732
      # chromium.memory
      'Linux ASan LSan Tests (1)',  # https://crbug.com/843732
    ],
  },
  '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)',
    ],
  },
  'interactive_ui_tests': {
    '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,
      },
    },
  },
  'mash_browser_tests': {
    'remove_from': [
      # Not needed on chromium.fyi because suite is on main waterfall.
      'Mojo ChromiumOS',
    ],
    'modifications': {
      # chromium.chromiumos
      'linux-chromeos-dbg': {
        'swarming': {
          'shards': 20,
        },
      },
      # chromium.memory
      'Linux Chromium OS ASan LSan Tests (1)': {
        'swarming': {
          'shards': 20,
        },
      },
      'Linux ChromiumOS MSan Tests': {
        'swarming': {
          'shards': 20,
        },
      },
    },
  },
  '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
    ],
  },
  'net_unittests': {
    'remove_from': [
      # chromium.fyi
      'fuchsia-fyi-arm64-rel',  # https://crbug.com/847915
      'fuchsia-fyi-x64-dbg',  # https://crbug.com/844416 (and 847915)
      # chromium.linux
      'Fuchsia x64',  # https://crbug.com/847915
    ],
    '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',
    ],
  },
 'remoting_unittests': {
    'remove_from': [
      # chromium.linux
      'Linux Tests (dbg)(1)(32)',  # https://crbug.com/852895
    ],
  },
  '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.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',
        ],
      },
    },
  },
  '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',
        ],
      },
    },
  },
  '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.
    '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',
            },
          ],
          'shards': 15,
        },
      },
      'android-marshmallow-arm64-rel': {
        'args': [
          '--browser=android-chromium',
          '--device=android',
        ],
        'swarming': {
          'dimension_sets': [
            {
              'temp_band': '<30',
            },
          ],
          '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)',
    ],
  },
  'unit_tests': {
    'modifications': {
      # 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
      '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_unittests': {
    'remove_from': [
      # chromium.win
      'Win10 Tests x64',
    ],
  },
  'vr_common_unittests': {
    'remove_from': [
      # chromium.win
      'Win 7 Tests x64 (1)',
      'Win10 Tests x64',
    ],
  },
  '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
      'VR Linux',
      # chromium.win
      'Win 7 Tests x64 (1)',
      'Win10 Tests x64',
      'Win7 Tests (1)',
      'Win7 Tests (dbg)(1)',
    ],
  },
  'wayland_client_perftests': {
    'remove_from': [
      'linux-chromeos-dbg',  # https://crbug.com/859307
    ],
  },
  '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.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.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_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',
    ],
    'modifications': {
      'Oreo Phone Tester': {
        # TODO(crbug.com/863089): Enable this once it's passing.
        'experiment_percentage': 100,
      },
    },
  },
}
