# Copyright 2017 The Chromium Authors
# 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.

# The test suites understood by the waterfalls. Two kinds of entries
# are supported here:
#  1. Dictionaries that directly define test suites.
#  2. Compositions, in the form of lists which refer to other test
#     suites.
#
# This file must be sorted by key. Run ./generate_buildbot_json.py -c to check
# your ordering; it will print out incorrectly sorted keys if there are any.

{
  # Test suites.
  'basic_suites': {
    'android_ar_gtests': {
      'monochrome_public_test_ar_apk': {},
      # Name is vr_*, but actually has AR tests.
      'vr_android_unittests': {},
    },

    'android_ddready_vr_gtests': {
      'chrome_public_test_vr_apk-ddready-cardboard': {
        'args': [
          '--shared-prefs-file=//chrome/android/shared_preference_files/test/vr_cardboard_skipdon_setupcomplete.json',
        ],
        'mixins': [
          'vr_instrumentation_test',
        ],
        'swarming': {
          'shards': 2,
        },
        'test': 'chrome_public_test_vr_apk',
      },
      'chrome_public_test_vr_apk-ddready-ddview': {
        'args': [
          '--shared-prefs-file=//chrome/android/shared_preference_files/test/vr_ddview_skipdon_setupcomplete.json',
          '--additional-apk=//third_party/gvr-android-sdk/test-apks/vr_keyboard/vr_keyboard_current.apk',
        ],
        'mixins': [
          'skia_gold_test',
          'vr_instrumentation_test',
        ],
        'swarming': {
          'shards': 4,
        },
        'test': 'chrome_public_test_vr_apk',
      },
      'chrome_public_test_vr_apk-ddready-don-enabled': {
        'args': [
          '--shared-prefs-file=//chrome/android/shared_preference_files/test/vr_ddview_don_setupcomplete.json',
          '--additional-apk=//third_party/gvr-android-sdk/test-apks/vr_keyboard/vr_keyboard_current.apk',
          '--annotation=Restriction=VR_DON_Enabled',
          '--vr-don-enabled',
        ],
        'mixins': [
          'vr_instrumentation_test',
        ],
        'test': 'chrome_public_test_vr_apk',
      },
    },

    'android_emulator_specific_chrome_public_tests': {
      'chrome_public_test_apk': {
        'args': [
            # These tests launch external intent thus require playstore to be
            # present. See crbug.com/1056330 for more details.
            # Exclude them here since this test suite will run on emulator
            # on images that do not have playstore.
            # They will be ran in chrome_public_test_apk_with_playstore below.
            '--gtest_filter=-'
            'org.chromium.chrome.browser.contextualsearch.ContextualSearchManagerTest.test*ExternalNavigationWithUserGesture*:'
            'org.chromium.shape_detection.*'
        ],
        'swarming': {
          'shards': 20,
        },
        'mixins': [
          'skia_gold_test',
          'emulator-8-cores',  # Use 8-core to shorten test runtime.
        ],
      },
      'chrome_public_test_apk_with_playstore': {
        'args': [
            # These tests launch external intent thus require playstore to be
            # present. See crbug.com/1056330 for more details.
            # They should be ran in emulator on images that have playstore.
            '--gtest_filter='
            'org.chromium.chrome.browser.contextualsearch.ContextualSearchManagerTest.test*ExternalNavigationWithUserGesture*:'
            'org.chromium.shape_detection.*'
        ],
        'mixins': [
          'skia_gold_test',
        ],
        'test': 'chrome_public_test_apk',
      },
      'chrome_public_unit_test_apk': {
        'swarming': {
          'shards': 4,
        },
        'mixins': [
          'skia_gold_test',
        ],
      },
    },

    'android_isolated_scripts': {
      'content_shell_crash_test': {
        'args': [
          '--platform=android',
        ],
        'resultdb': {
          'enable': True,
          'result_format': 'single'
        },
      },
    },

    'android_monochrome_smoke_tests': {
      'monochrome_public_bundle_smoke_test': {},
      'monochrome_public_smoke_test': {},
    },

    'android_oreo_standard_gtests': {
      'chrome_public_test_apk': {
        'swarming': {
          'shards': 5,
        },
        'mixins': [
          'skia_gold_test',
        ],
      },
      'chrome_public_unit_test_apk': {
        'mixins': [
          'skia_gold_test',
        ],
      },
      'webview_instrumentation_test_apk': {
        'swarming': {
          'expiration': 10800,
          'shards': 5,
        },
      },
    },

    'android_pagecontroller_self_tests': {
      'chrome_java_test_pagecontroller_tests': {},
    },

    # TODO(crbug.com/1111436): Deprecate this group in favor of
    # android_pie_rel_gtests if/when android Pie capacity is fully restored.
    'android_pie_rel_reduced_capacity_gtests': {
      'android_browsertests': {},
      'blink_platform_unittests': {},
      'cc_unittests': {},
      'content_browsertests': {
        'swarming': {
          'shards': 20,
        },
      },
      'viz_unittests': {},
      'webengine_support_instrumentation_test_apk': {},
      'webview_instrumentation_test_apk': {
        'swarming': {
          'shards': 7,
        },
      },
    },

    'android_smoke_tests': {
      'chrome_public_smoke_test': {},
    },

    'android_specific_chromium_gtests': {
      'android_browsertests': {
        'swarming': {
          'shards': 2,
        },
      },
      'android_sync_integration_tests': {
        'swarming': {
          'shards': 1,
        },
        'args': [
          '--test-launcher-batch-limit=1',
        ],
      },
      'android_webview_unittests': {},
      'content_shell_test_apk': {
        'swarming': {
          'shards': 3,
        },
      },
      'gl_tests_validating': {
        'test': 'gl_tests',
        # TODO(kbr): these are actually run on many of the GPU bots, which have
        # physical hardware for several of the desktop OSs. Once the GPU JSON
        # generation script is merged with this one, this should be promoted from
        # the Android-specific section.
        'args': [
          '--use-cmd-decoder=validating',
        ],
      },
      'gl_unittests': {
        # TODO(kbr): these are actually run on many of the GPU bots, which have
        # physical hardware for several of the desktop OSs. Once the GPU JSON
        # generation script is merged with this one, this should be promoted from
        # the Android-specific section.
      },
      'mojo_test_apk': {},
      'ui_android_unittests': {},
      'webview_instrumentation_test_apk': {
        'swarming': {
          'shards': 7,
        },
      },
    },

    'android_specific_coverage_java_tests': {
      'content_shell_test_apk': {
        'swarming': {
          'shards': 3,
        },
      },
      'mojo_test_apk': {},
      'webview_instrumentation_test_apk': {
        'swarming': {
          'shards': 7,
        },
      },
    },

    'android_trichrome_smoke_tests': {
      'trichrome_chrome_bundle_smoke_test': {},
    },

    'android_webview_gpu_telemetry_tests': {
      'pixel_skia': {
        'name': 'android_webview_pixel_skia_gold_test',
        'args': [
          '--dont-restore-color-profile-after-test',
          '--test-machine-name',
          '${buildername}',
          '$$MAGIC_SUBSTITUTION_GPUTelemetryNoRootForUnrootedDevices',
        ],
        'mixins': [
          'skia_gold_test',
          'has_native_resultdb_integration',
        ],
        'telemetry_test_name': 'pixel',
      },
    },

    'android_wpr_record_replay_tests': {
      'chrome_java_test_wpr_tests': {
        'mixins': [
          'skia_gold_test',
        ],
      },
    },

    'ash_pixel_gtests': {
      'ash_pixeltests': {
         'args': [
          '--enable-pixel-output-in-tests',
        ],
        'experiment_percentage': 100,
        'mixins': [
          'skia_gold_test',
        ],
      },
    },

    'aura_gtests': {
      'aura_unittests': {},
      'compositor_unittests': {},
      'wm_unittests': {},
    },

    'backuprefptr_generic_gtests': {
      'base_unittests': {},
      'blink_common_unittests': {},
      'blink_platform_unittests': {},
      'cast_unittests': {},
      'cc_unittests': {},
      'components_unittests': {
        'android_swarming': {
          'shards': 6,
        },
      },
      'content_browsertests': {
        'android_swarming': {
          'shards': 15,
        },
        'swarming': {
          'shards': 8,
        },
      },
      'content_unittests': {
        'android_swarming': {
          'shards': 3,
        },
      },
      'unit_tests': {
        'android_swarming': {
          'shards': 2,
        },
      },
      'webkit_unit_tests': {
        'test': 'blink_unittests',
        'android_swarming': {
          'shards': 6,
        },
      },
      'wtf_unittests': {},
    },

    'bfcache_android_specific_gtests': {
      'bf_cache_android_browsertests': {
        'args': [
          '--disable-features=BackForwardCache',
        ],
        'swarming': {
          'shards': 2,
        },
        'test': 'android_browsertests',
      },
      'bf_cache_chrome_public_test_apk': {
        'args': [
          '--disable-features=BackForwardCache',
          '--test-launcher-filter-file=../../testing/buildbot/filters/android.emulator_n.chrome_public_test_apk.filter',
        ],
        'swarming': {
          'shards': 12,
        },
        'mixins': [
          'skia_gold_test',
        ],
        'test': 'chrome_public_test_apk',
      },
      'bf_cache_chrome_public_unit_test_apk': {
        'args': [
          '--disable-features=BackForwardCache',
        ],
        'mixins': [
          'skia_gold_test',
        ],
        'test': 'chrome_public_unit_test_apk',
      },
      'bf_cache_content_shell_test_apk': {
        'args': [
          '--disable-features=BackForwardCache',
          '--test-launcher-filter-file=../../testing/buildbot/filters/android.emulator_n.content_shell_test_apk.filter',
        ],
        'test': 'content_shell_test_apk',
      },
    },

    'bfcache_generic_gtests': {
      'bf_cache_content_browsertests': {
        'args': [
          '--disable-features=BackForwardCache',
        ],
        'swarming': {
          'shards': 20,
        },
        'test': 'content_browsertests',
      },
      'bf_cache_content_unittests': {
        'args': [
          '--disable-features=BackForwardCache',
        ],
        'swarming': {
          'shards': 10,
        },
        'test': 'content_unittests',
      },
      'bf_cache_unit_tests': {
        'args': [
          '--disable-features=BackForwardCache',
          '--test-launcher-filter-file=../../testing/buildbot/filters/bfcache.unit_tests.filter'
        ],
        'swarming': {
          'shards': 10,
        },
        'test': 'unit_tests',
      },
    },

    'bfcache_linux_specific_gtests': {
      'bf_cache_browser_tests': {
        'args': [
          '--disable-features=BackForwardCache',
        ],
        'swarming': {
          'shards': 10,
        },
       'test': 'browser_tests',
      },
    },

    'blink_unittests': {
      'blink_unit_tests': {
        'test': 'blink_unittests',
      },
    },

    'cast_audio_specific_chromium_gtests': {
      'cast_audio_backend_unittests': {},
      'cast_base_unittests': {},
      'cast_cast_core_unittests': {},
      'cast_crash_unittests': {},
      'cast_media_unittests': {},
      'cast_shell_browsertests': {
        '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_shell_unittests': {},
    },

    'cast_junit_tests': {
      'cast_base_junit_tests': {},
      'cast_shell_junit_tests': {},
    },

    'cast_video_specific_chromium_gtests': {
      'cast_display_settings_unittests': {
        'experiment_percentage': 100,
      },
      'cast_graphics_unittests': {},
      'views_unittests': {
        'experiment_percentage': 100,
      },
    },

    'chrome_finch_smoke_tests': {
      'variations_smoke_tests': {
        'isolate_name': 'variations_smoke_tests',
        'mixins': [
          'skia_gold_test',
        ],
        'resultdb': {
          'enable': True,
          'result_format': 'single'
        },
      },
    },

    'chrome_isolated_script_tests': {
      'chrome_sizes': {
        'merge': {
          'script': '//tools/perf/process_perf_results.py',
        },
        'mixins': [
          'has_native_resultdb_integration',
        ],
      },
      'variations_smoke_tests': {
        'isolate_name': 'variations_smoke_tests',
        'mixins': [
          'skia_gold_test',
        ],
        'resultdb': {
          'enable': True,
          'result_format': 'single'
        },
      },
    },

    # TODO(crbug/1239300): Remove when persistent_shell experiment is over.
    'chrome_persistent_shell_tests': {
      'components_browsertests_persistent_shell': {
        'args': [
          '--use-persistent-shell',
        ],
        'ci_only': True,
        'test': 'components_browsertests',
        'experiment_percentage': 100,
      },
      'content_unittests_persistent_shell': {
        'args': [
          '--use-persistent-shell',
        ],
        'ci_only': True,
        'test': 'content_unittests',
        'experiment_percentage': 100,
        'swarming': {
          'shards': 3,
        },
      },
      'webview_instrumentation_test_apk_persistent_shell': {
        'args': [
          '--use-persistent-shell',
        ],
        'ci_only': True,
        'test': 'webview_instrumentation_test_apk',
        'experiment_percentage': 100,
        'swarming': {
          'shards': 10,
        },
      },
    },

    'chrome_private_code_test_isolated_scripts': {
      'chrome_private_code_test': {},
    },

    'chrome_public_tests': {
      'chrome_public_test_apk': {
        'swarming': {
          'shards': 19,
        },
        'mixins': [
          'skia_gold_test',
        ],
      },
      'chrome_public_unit_test_apk': {
        'swarming': {
          'shards': 2,
        },
        'mixins': [
          'skia_gold_test',
        ],
      },
      'chrome_webapk_integration_tests': {},
    },

    'chrome_public_wpt': {
      'chrome_public_wpt': {
        'args': [
          '--no-wpt-internal',
          '--log-wptreport',
        ],
        'swarming': {
          'shards': 36,
          'expiration': 18000,
          'hard_timeout': 14400,
        },
        'merge': {
          'args': [
            '--verbose',
          ],
          'script': '//third_party/blink/tools/merge_web_test_results.py',
        },
        'results_handler': 'layout tests',
      },
    },

    'chrome_sizes': {
      'chrome_sizes': {
        'merge': {
          'script': '//tools/perf/process_perf_results.py',
        },
        'mixins': [
          'has_native_resultdb_integration',
        ],
      },
    },

    'chrome_sizes_android': {
      'chrome_sizes': {
        'merge': {
          'script': '//tools/perf/process_perf_results.py',
        },
        'mixins': [
          'has_native_resultdb_integration',
        ],
        'args': [
          '--platform=android',
        ],
        'swarming': {
          "dimension_sets": [
            {
              "cpu": "x86-64",
              "os": "Ubuntu-18.04"
            }
          ],
        },
        'remove_mixins': [
          'android_r',
          'bullhead',
          'flame',
          'marshmallow',
          'mdarcy',
          'oreo_fleet',
          'pie_fleet',
          'walleye',
        ],
      },
    },

    'chromedriver_py_tests_isolated_scripts': {
      'chromedriver_py_tests': {
        'args': [
          '--test-type=integration',
        ],
        'resultdb': {
          'enable': True,
        },
        'mixins': [
          'disable_check_flakiness_web_tests',
        ],
      },
      'chromedriver_replay_unittests': {},
    },

    'chromeos_annotation_scripts': {
      'check_network_annotations': {
        'script': 'check_network_annotations.py',
      },
    },

    'chromeos_browser_all_tast_tests': {
      'chrome_all_tast_tests': {
        'swarming': {
          'idempotent': False,  # https://crbug.com/923426#c27
          # Tast test doesn't always output. See crbug.com/1306300
          'io_timeout': 3600,
          'shards': 10,
        },
        'args': [
          '--tast-retries=1',
        ],
        'mixins': [
          'has_native_resultdb_integration',
        ],
      },
    },

    'chromeos_browser_finch_tests': {
      'chrome_variations_tast_tests': {
        'swarming': {
          'idempotent': False,  # https://crbug.com/923426#c27
        },
        'mixins': [
          'has_native_resultdb_integration',
        ],
      },
    },

    'chromeos_browser_integration_tests': {
      'disk_usage_tast_test': {
        "args": [
          # Stripping gives more accurate disk usage data.
          "--strip-chrome",
        ],
        'merge': {
          'script': '//tools/perf/process_perf_results.py',
        },
        'swarming': {
          'idempotent': False,  # https://crbug.com/923426#c27
        },
        'mixins': [
          'has_native_resultdb_integration',
        ],
      },
    },

    'chromeos_chrome_all_tast_tests': {
      'chrome_all_tast_tests': {
        'tast_expr': '("group:mainline" && "dep:chrome" && !informational)',
        'timeout_sec': 21600,
      },
    },

    # GTests to run on Chrome OS devices, but not Chrome OS VMs. Any differences
    # between this and chromeos_system_friendly_gtests below should only be due
    # to resource constraints (ie: not enough devices).
    'chromeos_device_only_gtests': {
      'base_unittests': {
        'args': [
          '--test-launcher-filter-file=../../testing/buildbot/filters/chromeos.base_unittests.filter',
        ],
      },
    },

    'chromeos_isolated_scripts': {
      'telemetry_perf_unittests': {
        'args': [
          '--browser=cros-chrome',
          '$$MAGIC_SUBSTITUTION_ChromeOSTelemetryRemote',
          '--xvfb',
          # 3 is arbitrary, but if we're having more than 3 of these tests
          # fail in a single shard, then something is probably wrong, so fail
          # fast.
          '--typ-max-failures=3',
        ],
        'swarming': {
          'idempotent': False,  # https://crbug.com/549140
          'shards': 12,
        },
        'mixins': [
          'has_native_resultdb_integration',
        ],
      },
      'telemetry_unittests': {
        'args': [
          '--jobs=1',
          '--browser=cros-chrome',
          '$$MAGIC_SUBSTITUTION_ChromeOSTelemetryRemote',
          # 3 is arbitrary, but if we're having more than 3 of these tests
          # fail in a single shard, then something is probably wrong, so fail
          # fast.
          '--typ-max-failures=3',
        ],
        'swarming': {
          'idempotent': False,  # https://crbug.com/549140
          'shards': 24,
        },
        'mixins': [
          'has_native_resultdb_integration',
        ],
      },
    },

    'chromeos_js_code_coverage_browser_tests' : {
      'chromeos_js_code_coverage_browser_tests': {
        'args': [
          "--gtest_filter=*PersonalizationApp*"
        ],
        'test': 'browser_tests',
      }
    },

    'chromeos_remote_device_isolated_tests': {
      'telemetry_perf_unittests': {
        'args': [
          '--browser=cros-chrome',
          '$$MAGIC_SUBSTITUTION_ChromeOSTelemetryRemote',
          '--xvfb',
        ],
        'swarming': {
          'idempotent': False,  # https://crbug.com/549140
          'shards': 2,
        },
        'mixins': [
          'has_native_resultdb_integration',
        ],
      },
      'telemetry_unittests': {
        'args': [
          '--browser=cros-chrome',
          '$$MAGIC_SUBSTITUTION_ChromeOSTelemetryRemote',
          '--jobs=1',
        ],
        'swarming': {
          'idempotent': False,  # https://crbug.com/549140
          'shards': 10,
        },
        'mixins': [
          'has_native_resultdb_integration',
        ],
      },
    },

    # Tests that run on Chrome OS systems (ie: VMs, Chromebooks), *not*
    # linux-chromeos.
    # NOTE: We only want a small subset of test suites here, because most
    # suites assume that they stub out the underlying device hardware.
    # https://crbug.com/865693
    'chromeos_system_friendly_gtests': {
      'aura_unittests': {
        'args': [
          '--ozone-platform=headless',
        ],
      },
      'base_unittests': {},
      'capture_unittests': {
        'args': [
          '--test-launcher-jobs=1',
          # Don't run CaptureMJpeg tests on ChromeOS VM because vivid,
          # which is the virtual video capture device, doesn't support MJPEG.
          '--gtest_filter=-*UsingRealWebcam_CaptureMjpeg*',
        ],
      },
      'cc_unittests': {},
      'crypto_unittests': {},
      'display_unittests': {},
      'fake_libva_driver_unittest': {
        'args': [
          '--env-var', 'LIBVA_DRIVERS_PATH', './',
          '--env-var', 'LIBVA_DRIVER_NAME', 'libfake',
        ],
        'experiment_percentage': 100,
      },
      'google_apis_unittests': {},
      'ipc_tests': {},
      'latency_unittests': {},
      'libcups_unittests': {},
      'media_unittests': {
        'args': [
          '--test-launcher-filter-file=../../testing/buildbot/filters/chromeos.media_unittests.filter',
        ],
      },
      'midi_unittests': {},
      'mojo_unittests': {},
      # net_unittests has a test-time dependency on vpython. So add a CIPD'ed
      # vpython of the right arch to the task, and tell the test runner to copy
      # it over to the VM before the test runs.
      'net_unittests': {
        'args': [
          '--vpython-dir=../../vpython_dir_linux_amd64',
          # PythonUtils.PythonRunTime (as opposed to Python3RunTime) requires a
          # copy of Python 2, but it's testing test helpers that are only used
          # outside of net_unittests. This bot runs out of space if trying to
          # ship two vpythons, so we exclude Python 2 and the one test which
          # uses it.
          '--gtest_filter=-PythonUtils.PythonRunTime',
        ],
        'swarming': {
          'cipd_packages': [
            {
              "cipd_package": 'infra/3pp/tools/cpython3/linux-amd64',
              'location': 'vpython_dir_linux_amd64',
              'revision': 'version:2@3.8.10.chromium.21',
            },
            {
              "cipd_package": 'infra/tools/luci/vpython/linux-amd64',
              'location': 'vpython_dir_linux_amd64',
              'revision': 'git_revision:0f694cdc06ba054b9960aa1ae9766e45b53d02c1',
            }
          ],
          'shards': 3,
        },
      },
      'ozone_gl_unittests': {
        'args': [
          '--stop-ui',
        ],
      },
      'ozone_unittests': {},
      'pdf_unittests': {},
      'printing_unittests': {},
      'profile_provider_unittest': {
        'args': [
          '--stop-ui',
          '--test-launcher-jobs=1',
        ],
      },
      'sql_unittests': {},
      'url_unittests': {},
      'vaapi_unittest': {
        'args': [
          '--stop-ui',
          # Tell libva to do dummy encoding/decoding. For more info, see:
          # https://github.com/intel/libva/blob/master/va/va_fool.c#L47
          '--env-var', 'LIBVA_DRIVERS_PATH', './',
          '--env-var', 'LIBVA_DRIVER_NAME', 'libfake',
          '--gtest_filter="VaapiTest.*"',
        ],
      },
    },

    'chromium_android_asan_gtests': {
      # TODO(kbr): reduce duplication among these tests, and with other
      # test suites.
      'base_unittests': {
        'args': [
          '--tool=asan',
        ],
      },
    },

    'chromium_android_asan_junit_tests': {
      'base_junit_tests': {},
    },

    'chromium_android_scripts': {
      'check_network_annotations': {
        'script': 'check_network_annotations.py',
      },
    },

    'chromium_android_webkit_gtests': {
      'blink_heap_unittests': {},
      'webkit_unit_tests': {
        'test': 'blink_unittests',
      },
    },

    'chromium_browser_tests': {
      'browser_tests': {
        'swarming': {
          'shards': 10,
        },
      },
      'components_browsertests': {},
      'content_browsertests': {},
      'interactive_ui_tests': {
        'swarming': {
          'shards': 10,
        },
      },
    },

    'chromium_dev_android_gtests': {
      'chrome_public_smoke_test': {},
    },

    'chromium_dev_desktop_gtests': {
      'base_unittests': {},
      'content_browsertests': {},
      'content_unittests': {},
      'interactive_ui_tests': {},
      'net_unittests': {},
      'unit_tests': {},
    },

    'chromium_dev_linux_gtests': {
      'base_unittests': {
        'swarming': {
          'dimension_sets': [
            {
              'cores': '8',
            },
          ],
        },
      },
      'browser_tests': {
        'swarming': {
          'dimension_sets': [
            {
              'cores': '8',
            },
          ],
          'shards': 8,
        },
      },
      'content_browsertests': {
        'swarming': {
          'dimension_sets': [
            {
              'cores': '8',
            },
          ],
          'shards': 5,
        },
      },
      'content_unittests': {
        'swarming': {
          'dimension_sets': [
            {
              'cores': '2',
            },
          ],
        },
      },
      'interactive_ui_tests': {
        'swarming': {
          'dimension_sets': [
            {
              'cores': '8',
            },
          ],
          'shards': 3,
        },
      },
      'net_unittests': {
        'swarming': {
          'dimension_sets': [
            {
              'cores': '8',
            },
          ],
        },
      },
      'unit_tests': {
        'swarming': {
          'dimension_sets': [
            {
              'cores': '2',
            },
          ],
        },
      },
    },

    'chromium_gtests': {
      'absl_hardening_tests': {},
      'angle_unittests': {
        'android_args': [
          '-v',
        ],
        'use_isolated_scripts_api': True,
      },
      'base_unittests': {},
      'blink_common_unittests': {},
      'blink_heap_unittests': {},
      'blink_platform_unittests': {},
      'boringssl_crypto_tests': {},
      'boringssl_ssl_tests': {},
      'capture_unittests': {
        'args': [
          '--gtest_filter=-*UsingRealWebcam*',
        ],
      },
      'cast_unittests': {},
      'components_browsertests': {},
      'components_unittests': {
        'android_swarming': {
          'shards': 6,
        },
      },
      'content_browsertests': {
        'android_swarming': {
          'shards': 15,
        },
        'swarming': {
          'shards': 8,
        },
      },
      'content_unittests': {
        'android_swarming': {
          'shards': 3,
        },
      },
      'crashpad_tests': {},
      'crypto_unittests': {},
      'env_chromium_unittests': {
        'ci_only': True,
      },
      'events_unittests': {},
      'gcm_unit_tests': {},
      'gin_unittests': {},
      'google_apis_unittests': {},
      'gpu_unittests': {},
      'gwp_asan_unittests': {},
      'ipc_tests': {},
      'latency_unittests': {},
      'leveldb_unittests': {
        'ci_only': True,
      },
      'libjingle_xmpp_unittests': {},
      'liburlpattern_unittests': {},
      'media_unittests': {},
      'midi_unittests': {},
      'mojo_unittests': {},
      'net_unittests': {
        'android_swarming': {
          'shards': 3,
        },
      },
      'perfetto_unittests': {},
      'services_unittests': {},
      'shell_dialogs_unittests': {},
      'skia_unittests': {},
      'sql_unittests': {},
      'storage_unittests': {},
      'ui_base_unittests': {},
      'ui_touch_selection_unittests': {},
      'url_unittests': {},
      'webkit_unit_tests': {
        'test': 'blink_unittests',
        'android_swarming': {
          'shards': 6,
        },
      },
      'wtf_unittests': {},
      'zlib_unittests': {},
    },

    'chromium_gtests_for_devices_with_graphical_output': {
      'cc_unittests': {},
      'device_unittests': {},
      'display_unittests': {},
      'gfx_unittests': {},
      'unit_tests': {
        'android_swarming': {
          'shards': 2,
        },
      },
      'viz_unittests': {},
    },

    'chromium_gtests_for_linux_and_chromeos_only': {
      'dbus_unittests': {},
    },

    'chromium_gtests_for_linux_and_mac_only': {
      'openscreen_unittests': {},
    },

    'chromium_gtests_for_linux_only': {
      'ozone_unittests': {},
      'ozone_x11_unittests': {},
    },

    'chromium_gtests_for_win_and_linux_only': {
    },

    'chromium_ios_scripts': {
      'check_static_initializers': {
        'script': 'check_static_initializers.py',
      },
    },

    'chromium_junit_tests_no_swarming': {
      'android_webview_junit_tests': {
        'remove_mixins': [
          'nougat-x86-emulator',
        ],
      },
      'base_junit_tests': {
        'remove_mixins': [
          'nougat-x86-emulator',
        ],
      },
      'build_junit_tests':{
        'remove_mixins': [
          'nougat-x86-emulator',
        ],
      },
      'chrome_java_test_pagecontroller_junit_tests': {
        'remove_mixins': [
          'nougat-x86-emulator',
        ],
      },
      'chrome_junit_tests': {
        'remove_mixins': [
          'nougat-x86-emulator',
        ],
      },
      'components_junit_tests': {
        'remove_mixins': [
          'nougat-x86-emulator',
        ],
      },
      'content_junit_tests': {
        'remove_mixins': [
          'nougat-x86-emulator',
        ],
      },
      'device_junit_tests': {
        'remove_mixins': [
          'nougat-x86-emulator',
        ],
      },
      'junit_unit_tests': {
        'remove_mixins': [
          'nougat-x86-emulator',
        ],
      },
      'keyboard_accessory_junit_tests': {
        'remove_mixins': [
          'nougat-x86-emulator',
        ],
      },
      'media_base_junit_tests': {
        'remove_mixins': [
          'nougat-x86-emulator',
        ],
      },
      'module_installer_junit_tests': {
        'remove_mixins': [
          'nougat-x86-emulator',
        ],
      },
      'net_junit_tests': {
        'remove_mixins': [
          'nougat-x86-emulator',
        ],
      },
      'paint_preview_junit_tests': {
        'remove_mixins': [
          'nougat-x86-emulator',
        ],
      },
      'password_check_junit_tests': {
        'remove_mixins': [
          'nougat-x86-emulator',
        ],
      },
      'password_manager_junit_tests': {
        'remove_mixins': [
          'nougat-x86-emulator',
        ],
      },
      'services_junit_tests': {
        'remove_mixins': [
          'nougat-x86-emulator',
        ],
      },
      'touch_to_fill_junit_tests': {
        'remove_mixins': [
          'nougat-x86-emulator',
        ],
      },
      'ui_junit_tests': {
        'remove_mixins': [
          'nougat-x86-emulator',
        ],
      },
      'webapk_client_junit_tests': {
        'remove_mixins': [
          'nougat-x86-emulator',
        ],
      },
      'webapk_shell_apk_h2o_junit_tests': {
        'remove_mixins': [
          'nougat-x86-emulator',
        ],
      },
      'webapk_shell_apk_junit_tests': {
        'remove_mixins': [
          'nougat-x86-emulator',
        ],
      },
      'weblayer_junit_tests': {
        'remove_mixins': [
          'nougat-x86-emulator',
        ],
        # Experimental until we're sure these are stable.
        'experiment_percentage': 100
      },
    },

    'chromium_junit_tests_scripts': {
      'android_webview_junit_tests': {
        'mixins': [
          'x86-64',
          'linux-bionic',
          'junit-swarming',
        ],
        'remove_mixins': [
          'emulator-4-cores',
          'nougat-x86-emulator',
        ],
        'use_isolated_scripts_api': True,
      },
      'base_junit_tests': {
        'mixins': [
          'x86-64',
          'linux-bionic',
          'junit-swarming',
        ],
        'remove_mixins': [
          'emulator-4-cores',
          'nougat-x86-emulator',
        ],
        'use_isolated_scripts_api': True,
      },
      'build_junit_tests':{
        'mixins': [
          'x86-64',
          'linux-bionic',
          'junit-swarming',
        ],
        'remove_mixins': [
          'emulator-4-cores',
          'nougat-x86-emulator',
        ],
        'use_isolated_scripts_api': True,
      },
      'chrome_java_test_pagecontroller_junit_tests': {
        'mixins': [
          'x86-64',
          'linux-bionic',
          'junit-swarming',
        ],
        'remove_mixins': [
          'emulator-4-cores',
          'nougat-x86-emulator',
        ],
        'use_isolated_scripts_api': True,
      },
      'chrome_junit_tests': {
        'mixins': [
          'x86-64',
          'linux-bionic',
          'junit-swarming',
        ],
        'remove_mixins': [
          'emulator-4-cores',
          'nougat-x86-emulator',
        ],
        'use_isolated_scripts_api': True,
      },
      'components_junit_tests': {
        'mixins': [
          'x86-64',
          'linux-bionic',
          'junit-swarming',
        ],
        'remove_mixins': [
          'emulator-4-cores',
          'nougat-x86-emulator',
        ],
        'use_isolated_scripts_api': True,
      },
      'content_junit_tests': {
        'mixins': [
          'x86-64',
          'linux-bionic',
          'junit-swarming',
        ],
        'remove_mixins': [
          'emulator-4-cores',
          'nougat-x86-emulator',
        ],
        'use_isolated_scripts_api': True,
      },
      'device_junit_tests': {
        'mixins': [
          'x86-64',
          'linux-bionic',
          'junit-swarming',
        ],
        'remove_mixins': [
          'emulator-4-cores',
          'nougat-x86-emulator',
        ],
        'use_isolated_scripts_api': True,
      },
      'junit_unit_tests': {
        'mixins': [
          'x86-64',
          'linux-bionic',
          'junit-swarming',
        ],
        'remove_mixins': [
          'emulator-4-cores',
          'nougat-x86-emulator',
        ],
        'use_isolated_scripts_api': True,
      },
      'keyboard_accessory_junit_tests': {
        'mixins': [
          'x86-64',
          'linux-bionic',
          'junit-swarming',
        ],
        'remove_mixins': [
          'emulator-4-cores',
          'nougat-x86-emulator',
        ],
        'use_isolated_scripts_api': True,
      },
      'media_base_junit_tests': {
        'mixins': [
          'x86-64',
          'linux-bionic',
          'junit-swarming',
        ],
        'remove_mixins': [
          'emulator-4-cores',
          'nougat-x86-emulator',
        ],
        'use_isolated_scripts_api': True,
      },
      'module_installer_junit_tests': {
        'mixins': [
          'x86-64',
          'linux-bionic',
          'junit-swarming',
        ],
        'remove_mixins': [
          'emulator-4-cores',
          'nougat-x86-emulator',
        ],
        'use_isolated_scripts_api': True,
      },
      'net_junit_tests': {
        'mixins': [
          'x86-64',
          'linux-bionic',
          'junit-swarming',
        ],
        'remove_mixins': [
          'emulator-4-cores',
          'nougat-x86-emulator',
        ],
        'use_isolated_scripts_api': True,
      },
      'paint_preview_junit_tests': {
        'mixins': [
          'x86-64',
          'linux-bionic',
          'junit-swarming',
        ],
        'remove_mixins': [
          'emulator-4-cores',
          'nougat-x86-emulator',
        ],
        'use_isolated_scripts_api': True,
      },
      'password_check_junit_tests': {
        'mixins': [
          'x86-64',
          'linux-bionic',
          'junit-swarming',
        ],
        'remove_mixins': [
          'emulator-4-cores',
          'nougat-x86-emulator',
        ],
        'use_isolated_scripts_api': True,
      },
      'password_manager_junit_tests': {
        'mixins': [
          'x86-64',
          'linux-bionic',
          'junit-swarming',
        ],
        'remove_mixins': [
          'emulator-4-cores',
          'nougat-x86-emulator',
        ],
        'use_isolated_scripts_api': True,
      },
      'services_junit_tests': {
        'mixins': [
          'x86-64',
          'linux-bionic',
          'junit-swarming',
        ],
        'remove_mixins': [
          'emulator-4-cores',
          'nougat-x86-emulator',
        ],
        'use_isolated_scripts_api': True,
      },
      'touch_to_fill_junit_tests': {
        'mixins': [
          'x86-64',
          'linux-bionic',
          'junit-swarming',
        ],
        'remove_mixins': [
          'emulator-4-cores',
          'nougat-x86-emulator',
        ],
        'use_isolated_scripts_api': True,
      },
      'ui_junit_tests': {
        'mixins': [
          'x86-64',
          'linux-bionic',
          'junit-swarming',
        ],
        'remove_mixins': [
          'emulator-4-cores',
          'nougat-x86-emulator',
        ],
        'use_isolated_scripts_api': True,
      },
      'webapk_client_junit_tests': {
        'mixins': [
          'x86-64',
          'linux-bionic',
          'junit-swarming',
        ],
        'remove_mixins': [
          'emulator-4-cores',
          'nougat-x86-emulator',
        ],
        'use_isolated_scripts_api': True,
      },
      'webapk_shell_apk_h2o_junit_tests': {
        'mixins': [
          'x86-64',
          'linux-bionic',
          'junit-swarming',
        ],
        'remove_mixins': [
          'emulator-4-cores',
          'nougat-x86-emulator',
        ],
        'use_isolated_scripts_api': True,
      },
      'webapk_shell_apk_junit_tests': {
        'mixins': [
          'x86-64',
          'linux-bionic',
          'junit-swarming',
        ],
        'remove_mixins': [
          'emulator-4-cores',
          'nougat-x86-emulator',
        ],
        'use_isolated_scripts_api': True,
      },
    },

    'chromium_linux_scripts': {
      'check_network_annotations': {
        'script': 'check_network_annotations.py',
      },
      'check_static_initializers': {
        'script': 'check_static_initializers.py',
      },
      'checkdeps': {
        'script': 'checkdeps.py',
      },
      'checkperms': {
        'script': 'checkperms.py',
      },
      'headless_python_unittests': {
        'script': 'headless_python_unittests.py',
      },
      'metrics_python_tests': {
        'script': 'metrics_python_tests.py',
      },
      'webkit_lint': {
        'script': 'blink_lint_expectations.py',
      },
    },

    'chromium_mac_scripts': {
      'check_static_initializers': {
        'script': 'check_static_initializers.py',
      },
      'metrics_python_tests': {
        'script': 'metrics_python_tests.py',
      },
      'webkit_lint': {
        'script': 'blink_lint_expectations.py',
      },
    },

    # On some bots we don't have capacity to run all standard tests (for example
    # Android Pie), however there are tracing integration tests we want to
    # ensure are still working.
    'chromium_tracing_gtests': {
      'services_unittests': {},
    },

    'chromium_web_tests_high_dpi_isolated_scripts': {
      'high_dpi_blink_web_tests': {
        # high_dpi_blink_web_tests provides coverage for
        # running Layout Tests with forced device scale factor.
        'args': [
          '--flag-specific=highdpi',
          '--skipped=always',

          # layout test failures are retried 3 times when '--test-list' is not
          # passed, but 0 times when '--test-list' is passed. We want to always
          # retry 3 times, so we explicitly specify it.
          '--num-retries=3',
        ],
        'isolate_name': 'blink_web_tests',
        'merge': {
          'args': [
            '--verbose',
          ],
          'script': '//third_party/blink/tools/merge_web_test_results.py',
        },
        'mixins': [
          'blink_tests_write_run_histories',
          # TODO(crbug.com/1327314): Enable for blink web tests.
          'disable_check_flakiness_web_tests',
          'skia_gold_test',
        ],
        'resultdb': {
          'enable': True,
        },
        'results_handler': 'layout tests',
        'swarming': {
          'shards': 1,
        },
      },
      'high_dpi_blink_wpt_tests': {
        # high_dpi_blink_wpt_tests provides coverage for
        # running Layout Tests with forced device scale factor.
        'args': [
          '--flag-specific=highdpi',
          '--skipped=always',

          # layout test failures are retried 3 times when '--test-list' is not
          # passed, but 0 times when '--test-list' is passed. We want to always
          # retry 3 times, so we explicitly specify it.
          '--num-retries=3',
        ],
        'isolate_name': 'blink_wpt_tests',
        'merge': {
          'args': [
            '--verbose',
          ],
          'script': '//third_party/blink/tools/merge_web_test_results.py',
        },
        'mixins': [
          'blink_tests_write_run_histories',
          # TODO(crbug.com/1327314): Enable for blink web tests.
          'disable_check_flakiness_web_tests',
          'skia_gold_test',
        ],
        'resultdb': {
          'enable': True,
        },
        'results_handler': 'layout tests',
        'swarming': {
          'shards': 3,
        },
      },
    },

    'chromium_webkit_isolated_scripts': {
      'blink_web_tests': {
        # layout test failures are retried 3 times when '--test-list' is not
        # passed, but 0 times when '--test-list' is passed. We want to always
        # retry 3 times, so we explicitly specify it.
        'args': [
          '--num-retries=3',
        ],
        'isolate_name': 'blink_web_tests',
        'merge': {
          'args': [
            '--verbose',
          ],
          'script': '//third_party/blink/tools/merge_web_test_results.py',
        },
        'mixins': [
          'blink_tests_write_run_histories',
          # TODO(crbug.com/1327314): Enable for blink web tests.
          'disable_check_flakiness_web_tests',
          'skia_gold_test',
        ],
        'resultdb': {
          'enable': True,
        },
        'results_handler': 'layout tests',
        'swarming': {
          'shards': 5,
        }
      },
      'blink_wpt_tests': {
        # layout test failures are retried 3 times when '--test-list' is not
        # passed, but 0 times when '--test-list' is passed. We want to always
        # retry 3 times, so we explicitly specify it.
        'args': [
          '--num-retries=3',
        ],
        'isolate_name': 'blink_wpt_tests',
        'merge': {
          'args': [
            '--verbose',
          ],
          'script': '//third_party/blink/tools/merge_web_test_results.py',
        },
        'mixins': [
          'blink_tests_write_run_histories',
          # TODO(crbug.com/1327314): Enable for blink web tests.
          'disable_check_flakiness_web_tests',
          'skia_gold_test',
        ],
        'resultdb': {
          'enable': True,
        },
        'results_handler': 'layout tests',
        'swarming': {
          'shards': 7,
        }
      },
    },

    'chromium_win_scripts': {
      'check_network_annotations': {
        'script': 'check_network_annotations.py',
      },
      'metrics_python_tests': {
        'script': 'metrics_python_tests.py',
      },
      'webkit_lint': {
        'script': 'blink_lint_expectations.py',
      },
    },

    'client_v8_chromium_gtests': {
      'app_shell_unittests': {},
      'browser_tests': {
        'swarming': {
          'shards': 10,
        },
      },
      'chrome_app_unittests': {},
      'chromedriver_unittests': {},
      'components_browsertests': {},
      'components_unittests': {},
      'compositor_unittests': {},
      'content_browsertests': {},
      'content_unittests': {},
      'device_unittests': {},
      'extensions_browsertests': {},
      'extensions_unittests': {},
      'gcm_unit_tests': {},
      'gin_unittests': {},
      'google_apis_unittests': {},
      'gpu_unittests': {},
      'headless_browsertests': {},
      'headless_unittests': {},
      'interactive_ui_tests': {},
      'nacl_loader_unittests': {},
      'net_unittests': {},
      'pdf_unittests': {},
      'ppapi_unittests': {},
      'remoting_unittests': {},
      'services_unittests': {},
      'sync_integration_tests': {},
      'unit_tests': {},
    },

    'client_v8_chromium_isolated_scripts': {
      'content_shell_crash_test': {
        'resultdb': {
          'enable': True,
          'result_format': 'single'
        }
      },
      'telemetry_gpu_unittests': {
        'swarming': {
          'idempotent': False,  # https://crbug.com/549140
        },
        'resultdb': {
          'enable': True,
        },
      },
      'telemetry_perf_unittests': {
        'args': [
          '--xvfb',
          # TODO(crbug.com/1077284): Remove this once Crashpad is the default.
          '--extra-browser-args=--enable-crashpad',
        ],
        'swarming': {
          'idempotent': False,  # https://crbug.com/549140
          'shards': 12,
        },
        'resultdb': {
          'enable': True,
        },
      },
      'telemetry_unittests': {
        'args': [
          '--jobs=1',
          # Disable GPU compositing, telemetry_unittests runs on VMs.
          # https://crbug.com/871955
          '--extra-browser-args=--disable-gpu',
        ],
        'swarming': {
          'idempotent': False,  # https://crbug.com/549140
          'shards': 4,
        },
        'resultdb': {
          'enable': True,
        },
      },
    },

    'components_perftests_isolated_scripts' : {
      'components_perftests': {
        'merge': {
          'script': '//tools/perf/process_perf_results.py',
          'args': [
            '--smoke-test-mode',
          ],
        },
        'args': [
          '--gtest-benchmark-name=components_perftests',
        ],
      },
    },

    'cronet_gtests': {
      'cronet_sample_test_apk': {},
      'cronet_smoketests_missing_native_library_instrumentation_apk': {},
      'cronet_smoketests_platform_only_instrumentation_apk': {},
      'cronet_test_instrumentation_apk': {},
      'cronet_tests_android': {},
      'cronet_unittests_android': {},
      'net_unittests': {
        'swarming': {
          'shards': 4,
        },
      },
    },

    'cronet_resource_sizes': {
      'resource_sizes_cronet_sample_apk': {
        'merge': {
          'script': '//tools/perf/process_perf_results.py',
        },
        'swarming': {
          'dimension_sets': [
            # This suite simply analyzes build targets without running them.
            # It can thus run on a standard linux machine w/o a device.
            {
              'os': 'Ubuntu-18.04',
              'cpu': 'x86'
            },
          ],
        },
        'resultdb': {
          'enable': True,
          'result_format': 'single'
        },
      },
    },

    'cronet_sizes': {
      'cronet_sizes': {
        'merge': {
          'script': '//tools/perf/process_perf_results.py',
        },
        'swarming': {
          'dimension_sets': [
            # This suite simply analyzes build targets without running them.
            # It can thus run on a standard linux machine w/o a device.
            {
              'os': 'Ubuntu-18.04',
              'cpu': 'x86'
            },
          ],
        },
        'resultdb': {
          'enable': True,
          'result_format': 'single',
          'result_file': '${ISOLATED_OUTDIR}/sizes/test_results.json'
        },
        'remove_mixins': [
          'android_r',
          'bullhead',
          'flame',
          'marshmallow',
          'mdarcy',
          'oreo_fleet',
          'pie_fleet',
          'walleye',
        ],
      },
    },

    'desktop_chromium_isolated_scripts': {
      'blink_python_tests': {
        'resultdb': {
          'enable': True,
        }
      },
      'blink_web_tests': {
        # layout test failures are retried 3 times when '--test-list' is not
        # passed, but 0 times when '--test-list' is passed. We want to always
        # retry 3 times, so we explicitly specify it.
        'args': [
          '--num-retries=3',
        ],
        'isolate_name': 'blink_web_tests',
        'merge': {
          'args': [
            '--verbose',
          ],
          'script': '//third_party/blink/tools/merge_web_test_results.py',
        },
        'mixins': [
          'blink_tests_write_run_histories',
          # TODO(crbug.com/1327314): Enable for blink web tests.
          'disable_check_flakiness_web_tests',
          'skia_gold_test',
        ],
        'resultdb': {
          'enable': True,
        },
        'results_handler': 'layout tests',
        'swarming': {
          'shards': 5,
        }
      },
      'blink_wpt_tests': {
        # layout test failures are retried 3 times when '--test-list' is not
        # passed, but 0 times when '--test-list' is passed. We want to always
        # retry 3 times, so we explicitly specify it.
        'args': [
          '--num-retries=3',
        ],
        'isolate_name': 'blink_wpt_tests',
        'merge': {
          'args': [
            '--verbose',
          ],
          'script': '//third_party/blink/tools/merge_web_test_results.py',
        },
        'mixins': [
          'blink_tests_write_run_histories',
          # TODO(crbug.com/1327314): Enable for blink web tests.
          'disable_check_flakiness_web_tests',
          'skia_gold_test',
        ],
        'resultdb': {
          'enable': True,
        },
        'results_handler': 'layout tests',
        'swarming': {
          'shards': 7,
        }
      },
      'content_shell_crash_test': {
        'resultdb': {
          'enable': True,
          'result_format': 'single'
        }
      },
      'flatbuffers_unittests': {
        'resultdb': {
          'enable': True,
          'result_format': 'single'
        }
      },
      'grit_python_unittests': {
        'resultdb': {
          'enable': True,
        },
      },
      'telemetry_gpu_unittests': {
        'swarming': {
          'idempotent': False,  # https://crbug.com/549140
        },
        'resultdb': {
          'enable': True,
        },
      },
      'telemetry_unittests': {
        'args': [
          '--jobs=1',
          # Disable GPU compositing, telemetry_unittests runs on VMs.
          # https://crbug.com/871955
          '--extra-browser-args=--disable-gpu',
        ],
        'swarming': {
          'idempotent': False,  # https://crbug.com/549140
          'shards': 8,
        },
        'resultdb': {
          'enable': True,
        },
      },
      'views_perftests': {
        'merge': {
          'script': '//tools/perf/process_perf_results.py',
          'args': [
            '--smoke-test-mode',
          ],
        },
        'args': [
          '--gtest-benchmark-name=views_perftests',
        ],
      },
    },

    'devtools_browser_tests' : {
      'devtools_browser_tests': {
        'args': [
          '--gtest_filter=*DevTools*',
        ],
        'swarming': {
          'shards': 1,
        },
        'test': 'browser_tests',
      }
    },


    'devtools_webkit_and_tab_target_isolated_scripts': {
      'blink_web_tests': {
        # layout test failures are retried 3 times when '--test-list' is not
        # passed, but 0 times when '--test-list' is passed. We want to always
        # retry 3 times, so we explicitly specify it.
        'args': [
          '--num-retries=3',
        ],
        'isolate_name': 'blink_web_tests',
        'merge': {
          'args': [
            '--verbose',
          ],
          'script': '//third_party/blink/tools/merge_web_test_results.py',
        },
        'mixins': [
          'blink_tests_write_run_histories',
          # TODO(crbug.com/1327314): Enable for blink web tests.
          'disable_check_flakiness_web_tests',
          'skia_gold_test',
        ],
        'resultdb': {
          'enable': True,
        },
        'results_handler': 'layout tests',
        'swarming': {
          'shards': 5,
        }
      },
      'blink_web_tests_dt_tab_target': {
        # layout test failures are retried 3 times when '--test-list' is not
        # passed, but 0 times when '--test-list' is passed. We want to always
        # retry 3 times, so we explicitly specify it.
        'args': [
          '--flag-specific=devtools-tab-target',
          '--num-retries=3',
          'http/tests/devtools',
        ],
        'isolate_name': 'blink_web_tests',
        'merge': {
          'args': [
            '--verbose',
          ],
          'script': '//third_party/blink/tools/merge_web_test_results.py',
        },
        'mixins': [
          'blink_tests_write_run_histories',
          # TODO(crbug.com/1327314): Enable for blink web tests.
          'disable_check_flakiness_web_tests',
          'skia_gold_test',
        ],
        'resultdb': {
          'enable': True,
        },
        'results_handler': 'layout tests',
        'swarming': {
          'shards': 5,
        }
      },
      'blink_wpt_tests': {
        # layout test failures are retried 3 times when '--test-list' is not
        # passed, but 0 times when '--test-list' is passed. We want to always
        # retry 3 times, so we explicitly specify it.
        'args': [
          '--num-retries=3',
        ],
        'isolate_name': 'blink_wpt_tests',
        'merge': {
          'args': [
            '--verbose',
          ],
          'script': '//third_party/blink/tools/merge_web_test_results.py',
        },
        'mixins': [
          'blink_tests_write_run_histories',
          # TODO(crbug.com/1327314): Enable for blink web tests.
          'disable_check_flakiness_web_tests',
          'skia_gold_test',
        ],
        'resultdb': {
          'enable': True,
        },
        'results_handler': 'layout tests',
        'swarming': {
          'shards': 7,
        }
      },
      'webkit_layout_from_devtools': {
        # TODO(crbug.com/816629) - Move these args into //BUILD.gn .
        # layout test failures are retried 3 times when '--test-list' is not
        # passed, but 0 times when '--test-list' is passed. We want to always
        # retry 3 times, so we explicitly specify it.
        'args': [
          '--num-retries=3',
          '--layout-tests-directory=../../third_party/devtools-frontend/src/test/webtests/',
          'http/tests/devtools',
        ],
        'isolate_name': 'devtools_web_tests',
        'merge': {
          'args': [
            '--verbose',
          ],
          'script': '//third_party/blink/tools/merge_web_test_results.py',
        },
        'resultdb': {
          'enable': True,
        },
        'results_handler': 'layout tests',
        'swarming': {
          'shards': 4,
        }
      },
    },

    'devtools_webkit_isolated_scripts': {
      'blink_web_tests': {
        # layout test failures are retried 3 times when '--test-list' is not
        # passed, but 0 times when '--test-list' is passed. We want to always
        # retry 3 times, so we explicitly specify it.
        'args': [
          '--num-retries=3',
        ],
        'isolate_name': 'blink_web_tests',
        'merge': {
          'args': [
            '--verbose',
          ],
          'script': '//third_party/blink/tools/merge_web_test_results.py',
        },
        'mixins': [
          'blink_tests_write_run_histories',
          # TODO(crbug.com/1327314): Enable for blink web tests.
          'disable_check_flakiness_web_tests',
          'skia_gold_test',
        ],
        'resultdb': {
          'enable': True,
        },
        'results_handler': 'layout tests',
        'swarming': {
          'shards': 5,
        }
      },
      'blink_wpt_tests': {
        # layout test failures are retried 3 times when '--test-list' is not
        # passed, but 0 times when '--test-list' is passed. We want to always
        # retry 3 times, so we explicitly specify it.
        'args': [
          '--num-retries=3',
        ],
        'isolate_name': 'blink_wpt_tests',
        'merge': {
          'args': [
            '--verbose',
          ],
          'script': '//third_party/blink/tools/merge_web_test_results.py',
        },
        'mixins': [
          'blink_tests_write_run_histories',
          # TODO(crbug.com/1327314): Enable for blink web tests.
          'disable_check_flakiness_web_tests',
          'skia_gold_test',
        ],
        'resultdb': {
          'enable': True,
        },
        'results_handler': 'layout tests',
        'swarming': {
          'shards': 7,
        }
      },
      'webkit_layout_from_devtools': {
        # TODO(crbug.com/816629) - Move these args into //BUILD.gn .
        # layout test failures are retried 3 times when '--test-list' is not
        # passed, but 0 times when '--test-list' is passed. We want to always
        # retry 3 times, so we explicitly specify it.
        'args': [
          '--num-retries=3',
          '--layout-tests-directory=../../third_party/devtools-frontend/src/test/webtests/',
          'http/tests/devtools',
        ],
        'isolate_name': 'devtools_web_tests',
        'merge': {
          'args': [
            '--verbose',
          ],
          'script': '//third_party/blink/tools/merge_web_test_results.py',
        },
        'resultdb': {
          'enable': True,
        },
        'results_handler': 'layout tests',
        'swarming': {
          'shards': 4,
        }
      },
    },

    'fieldtrial_android_tests': {
      'android_browsertests_no_fieldtrial': {
        'args': [
          '--disable-field-trial-config',
        ],
        'test': 'android_browsertests',
        'swarming': {
          'shards': 2,
        },
      },
      'webview_cts_tests_no_field_trial': {
        'args': [
          '--disable-field-trial-config',
        ],
        'swarming': {
          'shards': 2,
          'cipd_packages': [
            {
              "cipd_package": 'chromium/android_webview/tools/cts_archive',
              'location': 'android_webview/tools/cts_archive',
              'revision': 'D9ziv4Z61qHwterMTFEoPeCZzFNyUfMnWAlYuxEKlM8C',
            }
          ]
        },
        'test': 'webview_cts_tests',
      },
      'webview_ui_test_app_test_apk_no_field_trial': {
        'args': [
          '--disable-field-trial-config',
        ],
        'test': 'webview_ui_test_app_test_apk',
      },
    },
    'fieldtrial_browser_tests': {
      'browser_tests_no_field_trial': {
        'args': [
          '--disable-field-trial-config',
        ],
        'swarming': {
          'shards': 10,
        },
        'test': 'browser_tests',
      },
      'components_browsertests_no_field_trial': {
        'args': [
          '--disable-field-trial-config',
        ],
        'test': 'components_browsertests',
      },
      'interactive_ui_tests_no_field_trial': {
        'args': [
          '--disable-field-trial-config',
        ],
        'test': 'interactive_ui_tests',
      },
      'sync_integration_tests_no_field_trial': {
        'args': [
          '--disable-field-trial-config',
        ],
        'test': 'sync_integration_tests',
      },
    },

    'finch_smoke_tests': {
      # TODO(crbug.com/1227222): Change this to the actual finch smoke test
      # once it exists.
      'base_unittests': {},
    },
    'fuchsia_accessibility_content_browsertests': {
      'accessibility_content_browsertests': {
        'args': [
          '--gtest_filter=All/DumpAccessibility*/fuchsia',
          '--test-arg=--disable-gpu',
          '--test-arg=--headless',
          '--test-arg=--ozone-platform=headless',
        ],
        'swarming': {
          'shards': 8,  # this may depend on runtime of a11y CQ
        },
        'test': 'content_browsertests',
      },
    },

    'fuchsia_chrome_small_gtests': {
      'courgette_unittests': {},
      'extensions_unittests': {},
      'headless_unittests': {},
      'message_center_unittests': {},
      'views_examples_unittests': {
        'args': [
          '--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.views_examples_unittests.filter',
        ],
      },
      'views_unittests': {
        'args': [
          '--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.views_unittests.filter',
        ],
      },
    },

    'fuchsia_common_gtests': {
      'absl_hardening_tests': {},
      'accessibility_unittests': {},
      'aura_unittests': {},
      'base_unittests': {},
      'blink_common_unittests': {},
      'blink_fuzzer_unittests': {},
      'blink_heap_unittests': {},
      'blink_platform_unittests': {},
      'blink_unittests': {},
      'boringssl_crypto_tests': {},
      'boringssl_ssl_tests': {},
      'capture_unittests': {},
      'color_unittests': {},
      'components_browsertests': {
        'args': [
          '--test-arg=--disable-gpu',
          '--test-arg=--headless',
          '--test-arg=--ozone-platform=headless',
        ],
      },
      'components_unittests': {
        'swarming': {
          'shards': 2,
        },
      },
      'compositor_unittests': {},
      'content_browsertests': {
        'args': [
          '--gtest_filter=-All/DumpAccessibility*/fuchsia',
          '--test-arg=--disable-gpu',
          '--test-arg=--headless',
          '--test-arg=--ozone-platform=headless',
        ],
        'swarming': {
          'shards': 14,
        },
      },
      'content_unittests': {},
      'crypto_unittests': {},
      'events_unittests': {},
      'filesystem_service_unittests': {},
      'gcm_unit_tests': {},
      'gin_unittests': {},
      'google_apis_unittests': {},
      'gpu_unittests': {},
      'gwp_asan_unittests': {},
      'headless_browsertests': {},
      'ipc_tests': {},
      'latency_unittests': {},
      'media_unittests': {},
      'midi_unittests': {},
      'mojo_unittests': {},
      'native_theme_unittests': {},
      'net_unittests': {
        'swarming': {
          'shards': 4,
        },
        'args': [
          '--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.net_unittests.filter',
        ],
      },
      'ozone_gl_unittests': {
        'args': [
          '--test-arg=--ozone-platform=headless',
        ],
      },
      'ozone_unittests': {},
      'perfetto_unittests': {},
      'service_manager_unittests': {},
      'services_unittests': {
        'args': [
          '--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.services_unittests.filter',
        ],
      },
      'shell_dialogs_unittests': {},
      'skia_unittests': {},
      'snapshot_unittests': {},
      'sql_unittests': {},
      'storage_unittests': {},
      'ui_base_unittests': {
        'args': [
          '--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.ui_base_unittests.filter',
        ],
      },
      'ui_touch_selection_unittests': {},
      'url_unittests': {},
      'wm_unittests': {},
      'wtf_unittests': {},
      'zlib_unittests': {},
    },

    'fuchsia_common_gtests_with_graphical_output': {
      'cc_unittests': {
        'swarming': {
          'shards': 2,
        },
      },
      'display_unittests': {},
      'gfx_unittests': {},
      'viz_unittests': {
        'args': [
          '--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.viz_unittests.filter',
        ],
      },
    },

    # This is a set of selected tests to test the test facility only. The
    # principle of the selection includes time cost, scenario coverage,
    # stability, etc; and it's subject to change. In theory, it should only be
    # used by the EngProd team to verify a new test facility setup.
    'fuchsia_facility_gtests': {
      'aura_unittests': {},
      'blink_common_unittests': {},
      'courgette_unittests': {},
      'crypto_unittests': {},
      'filesystem_service_unittests': {},
      'web_engine_integration_tests': {
        'args': [
          '--test-arg=--vmodule=test_navigation_listener=1',
        ],
      },
      'web_engine_unittests': {},
    },

    'fuchsia_sizes_tests': {
      'fuchsia_sizes': {
        'merge': {
          'script': '//tools/perf/process_perf_results.py',
        },
        'args': [
          '--sizes-path',
          'tools/fuchsia/size_tests/fyi_sizes_smoketest.json',
        ],
      },
    },

    'gl_gtests_passthrough': {
      'gl_tests_passthrough': {
        'test': 'gl_tests',
        'args': [
          '--use-cmd-decoder=passthrough',
        ],
        'linux_args': ['--no-xvfb'],
        'swarming': {
          'shards': 2,
        },
      },
      'gl_unittests': {},
    },

    'goma_gtests': {
      'base_unittests': {},
      'content_unittests': {},
    },

    'goma_mac_gtests': {
      'base_unittests': {
        'swarming': {
          'dimension_sets': [
            {
              'cpu': 'x86-64',
              'os': 'Mac-10.13',
            },
          ],
        }
      },
      'content_unittests': {
        'swarming': {
          'dimension_sets': [
            {
              'cpu': 'x86-64',
              'os': 'Mac-10.13',
            },
          ],
        },
      },
    },

    # BEGIN tests which run on the GPU bots

    'gpu_angle_fuchsia_unittests_isolated_scripts': {
      'angle_unittests': {
        'args': [
          'bin/run_angle_unittests',
        ],
        'mixins': ['fuchsia_logs'],
      },
    },

    'gpu_angle_ios_end2end_gtests': {
      'angle_end2end_tests': {
        'args': [
          '--release',
        ],
        'use_isolated_scripts_api': True,
      },
    },

    'gpu_angle_ios_white_box_gtests': {
      'angle_white_box_tests': {
        'args': [
          '--release',
        ],
        'use_isolated_scripts_api': True,
      },
    },

    'gpu_angle_unit_gtests': {
      'angle_unittests': {
        'android_args': [
          '-v',
        ],
        'linux_args': ['--no-xvfb'],
        'use_isolated_scripts_api': True,
      },
    },

    # The command buffer perf tests are only run on Windows.
    # They are mostly driver and platform independent.
    'gpu_command_buffer_perf_passthrough_isolated_scripts': {
      'passthrough_command_buffer_perftests': {
        'args': [
          '--gtest-benchmark-name=passthrough_command_buffer_perftests',
          '-v',
          '--use-cmd-decoder=passthrough',
          '--use-angle=gl-null',
          '--fast-run',
        ],
        'isolate_name': 'command_buffer_perftests',
        'merge': {
          'script': '//tools/perf/process_perf_results.py',
          'args': [
            '--smoke-test-mode',
          ],
        },
        'should_retry_with_patch': False,
      },
    },

    'gpu_common_and_optional_telemetry_tests': {
      'info_collection': {
        'args': [
          '--expected-vendor-id',
          '${gpu_vendor_id}',
          '$$MAGIC_SUBSTITUTION_GPUExpectedDeviceId',
          # On dual-GPU devices we want the high-performance GPU to be active
          '--extra-browser-args=--force_high_performance_gpu',
        ],
        'android_args': [
          '$$MAGIC_SUBSTITUTION_GPUTelemetryNoRootForUnrootedDevices',
        ],
        'chromeos_args': [
          '$$MAGIC_SUBSTITUTION_ChromeOSTelemetryRemote',
        ],
        'lacros_args': [
          '--extra-browser-args=--enable-features=UseOzonePlatform --ozone-platform=wayland',
          '--xvfb',
          '--no-xvfb',
          '--use-weston',
          '--weston-use-gl',
        ],
        'mixins': [
          'has_native_resultdb_integration',
        ],
      },
      'trace_test': {
        'android_args': [
          '$$MAGIC_SUBSTITUTION_GPUTelemetryNoRootForUnrootedDevices',
        ],
        'chromeos_args': [
          '$$MAGIC_SUBSTITUTION_ChromeOSTelemetryRemote',
        ],
        'lacros_args': [
          '--extra-browser-args=--enable-features=UseOzonePlatform --ozone-platform=wayland',
          '--xvfb',
          '--no-xvfb',
          '--use-weston',
          '--weston-use-gl',
        ],
        'mixins': [
          'has_native_resultdb_integration',
        ],
      },
    },

    # GPU gtests which run on both the main and FYI waterfalls.
    'gpu_common_gtests_passthrough': {
      'gl_tests_passthrough': {
        'test': 'gl_tests',
        'args' : [
          '--use-cmd-decoder=passthrough',
          '--use-gl=angle',
        ],
        'chromeos_args': [
          '--stop-ui',
        ],
        'desktop_args': [
          '--use-gpu-in-tests',
        ],
        'linux_args': ['--no-xvfb'],
        'swarming': {
          'shards': 2,
        },
      },
      'gl_unittests': {
        'chromeos_args': [
          '--stop-ui',
          '--test-launcher-filter-file=../../testing/buildbot/filters/chromeos.gl_unittests.filter',
        ],
        'desktop_args': [
          '--use-gpu-in-tests',
        ],
        'linux_args': [
          '--no-xvfb',
        ],
      },
    },
    'gpu_common_gtests_validating': {
      'gl_tests_validating': {
        'test': 'gl_tests',
        'args' : [
          '--use-cmd-decoder=validating',
        ],
        'chromeos_args': [
          '--stop-ui',
          '$$MAGIC_SUBSTITUTION_ChromeOSGtestFilterFile',
        ],
        'desktop_args': [
          '--use-gpu-in-tests',
        ],
        'linux_args': ['--no-xvfb'],
      },
      'gl_unittests': {
        'chromeos_args': [
          '--stop-ui',
          '--test-launcher-filter-file=../../testing/buildbot/filters/chromeos.gl_unittests.filter',
        ],
        'desktop_args': [
          '--use-gpu-in-tests',
        ],
        'linux_args': [
          '--no-xvfb',
        ],
      },
    },

    'gpu_dawn_common_isolated_scripts': {
      # Test that expectations files are well-formed.
      'telemetry_gpu_unittests': {
        'swarming': {
          'idempotent': False,  # https://crbug.com/549140
        },
        'resultdb': {
          'enable': True,
        },
      },
    },

    # GPU gtests that test only Dawn
    'gpu_dawn_gtests': {
      'dawn_end2end_skip_validation_tests': {
        'mixins': ['dawn_end2end_gpu_test'],
        'args': [
          '--enable-toggles=skip_validation',
        ],
        'linux_args': [ '--no-xvfb' ],
        'test': 'dawn_end2end_tests',
      },
      'dawn_end2end_tests': {
        'mixins': ['dawn_end2end_gpu_test'],
        'linux_args': [ '--no-xvfb' ],
      },
      'dawn_end2end_wire_tests': {
        'mixins': ['dawn_end2end_gpu_test'],
        'args': [
          '--use-wire',
        ],
        'linux_args': [ '--no-xvfb' ],
        'test': 'dawn_end2end_tests',
      },
    },

    # GPU gtests that test only Dawn with backend validation layers
    'gpu_dawn_gtests_with_validation': {
      'dawn_end2end_validation_layers_tests': {
        'mixins': ['dawn_end2end_gpu_test'],
        'args': [
          '--enable-backend-validation',
        ],
        'linux_args': [ '--no-xvfb' ],
        'test': 'dawn_end2end_tests',
      },
    },

    'gpu_dawn_perf_smoke_isolated_scripts': {
      'dawn_perf_tests': {
        'args': [
          # Tell the tests to only run one step for faster iteration.
          '--override-steps=1',
          '--gtest-benchmark-name=dawn_perf_tests',
          '-v',
        ],
        'merge': {
          'script': '//tools/perf/process_perf_results.py',
          # Does not upload to the perf dashboard
          'args': [
            '--smoke-test-mode',
          ],
        },
      },
    },

    'gpu_dawn_web_platform_webgpu_cts_force_swiftshader': {
      'webgpu_swiftshader_web_platform_cts': {
        'args': [
          '--use-webgpu-adapter=swiftshader',
          '--test-filter=*web_platform*',
        ],
        'mixins': [
          'has_native_resultdb_integration',
          'webgpu_telemetry_cts',
        ],
        'swarming': {
          'shards': 2,
        },
        'telemetry_test_name': 'webgpu_cts',
      },
      'webgpu_swiftshader_web_platform_cts_with_validation': {
        'args': [
          '--use-webgpu-adapter=swiftshader',
          '--test-filter=*web_platform*',
          '--enable-dawn-backend-validation',
        ],
        'mixins': [
          'has_native_resultdb_integration',
          'webgpu_telemetry_cts',
        ],
        'swarming': {
          'shards': 2,
        },
        'telemetry_test_name': 'webgpu_cts',
      },
    },

    'gpu_dawn_webgpu_blink_web_tests': {
      'webgpu_blink_web_tests': {
        'name': 'webgpu_blink_web_tests',
        'isolate_name': 'webgpu_blink_web_tests',
        'args': [
          '--flag-specific=webgpu',
        ],
        'mixins': [
          # TODO(crbug.com/1327314): Enable for blink web tests.
          'disable_check_flakiness_web_tests',
          'webgpu_cts',
          'skia_gold_test',
        ],
      },
      'webgpu_blink_web_tests_with_backend_validation': {
        'name': 'webgpu_blink_web_tests_with_backend_validation',
        'isolate_name': 'webgpu_blink_web_tests',
        'args': [
          '--flag-specific=webgpu-with-backend-validation',
          # Increase the timeout when using backend validation layers (crbug.com/1208253)
          '--timeout-ms=30000',
        ],
        'mixins': [
          'webgpu_cts',
          'skia_gold_test',
        ],
      },
    },

    'gpu_dawn_webgpu_blink_web_tests_force_swiftshader': {
      'webgpu_swiftshader_blink_web_tests': {
        'name': 'webgpu_swiftshader_blink_web_tests',
        'isolate_name': 'webgpu_blink_web_tests',
        'args': [
          '--flag-specific=webgpu-swiftshader',
        ],
        'mixins': [
          'webgpu_cts',
          'skia_gold_test',
        ],
      },
      'webgpu_swiftshader_blink_web_tests_with_backend_validation': {
        'name': 'webgpu_swiftshader_blink_web_tests_with_backend_validation',
        'isolate_name': 'webgpu_blink_web_tests',
        'args': [
          '--flag-specific=webgpu-swiftshader-with-backend-validation',
          # Increase the timeout when using backend validation layers (crbug.com/1208253)
          '--timeout-ms=30000',
        ],
        'mixins': [
          'webgpu_cts',
          'skia_gold_test',
        ],
      },
    },

    'gpu_dawn_webgpu_cts': {
      'webgpu_cts': {
        'mixins': [
          'has_native_resultdb_integration',
          'webgpu_telemetry_cts',
        ],
        'swarming': {
          'shards': 14,
        },
      },
      'webgpu_cts_with_validation': {
        'args': [
          '--enable-dawn-backend-validation',
        ],
        'mixins': [
          'has_native_resultdb_integration',
          'webgpu_telemetry_cts',
        ],
        'swarming': {
          'shards': 14,
        },
        'telemetry_test_name': 'webgpu_cts',
      },
    },

    'gpu_dawn_webgpu_cts_asan': {
      'webgpu_cts': {
        'mixins': [
          'has_native_resultdb_integration',
          'webgpu_telemetry_cts',
        ],
        'swarming': {
          'shards': 8,
        },
      },
    },

    'gpu_default_and_optional_win_specific_gtests': {
      'xr_browser_tests': {
        # The Windows machines this is run on should always meet all the
        # requirements, so skip the runtime checks to help catch issues, e.g.
        # if we're incorrectly being told a DirectX 11.1 device isn't
        # available
        'args': [
          '--ignore-runtime-requirements=*',
        ],
        'test': 'xr_browser_tests',
      },
    },

    'gpu_desktop_specific_gtests': {
      'tab_capture_end2end_tests': {
        'args': [
          '--enable-gpu',
          '--test-launcher-bot-mode',
          '--test-launcher-jobs=1',
          '--gtest_filter=TabCaptureApiPixelTest.EndToEnd*',
        ],
        'linux_args': [ '--no-xvfb' ],
        'test': 'browser_tests',
      },
    },

    'gpu_fyi_and_optional_non_linux_gtests': {
      # gpu_unittests is killing the Swarmed Linux GPU bots similarly to
      # how content_unittests was: http://crbug.com/763498 .
      'gpu_unittests': {
      },
    },

    'gpu_fyi_and_optional_win_specific_gtests': {
      'gles2_conform_d3d9_test': {
        'args': [
          '--use-gpu-in-tests',
          '--use-angle=d3d9',
        ],
        'test': 'gles2_conform_test',
      },
      'gles2_conform_gl_test': {
        'args': [
          '--use-gpu-in-tests',
          '--use-angle=gl',
          '--disable-gpu-sandbox',
        ],
        'test': 'gles2_conform_test',
      },
    },

    'gpu_fyi_mac_specific_gtests': {
      # Face and barcode detection unit tests, which currently only run on
      # Mac OS, and require physical hardware.
      'services_unittests': {
        'args': [
          '--gtest_filter=*Detection*',
          '--use-gpu-in-tests'
        ],
      },
    },

    'gpu_fyi_vulkan_swiftshader_gtests': {
      'vulkan_swiftshader_content_browsertests': {
        'args': [
          '--enable-gpu',
          '--test-launcher-bot-mode',
          '--test-launcher-jobs=1',
          '--test-launcher-filter-file=../../testing/buildbot/filters/vulkan.content_browsertests.filter',
          '--enable-features=UiGpuRasterization,Vulkan',
          '--use-vulkan=swiftshader',
          '--enable-gpu-rasterization',
          '--disable-software-compositing-fallback',
          '--disable-vulkan-fallback-to-gl-for-testing',
          '--disable-headless-mode',
        ],
        'linux_args': [ '--no-xvfb' ],
        'test': 'content_browsertests',
      },
    },

    'gpu_gles2_conform_gtests': {
      # The gles2_conform_tests are closed-source and deliberately only
      # run on the FYI waterfall and the optional tryservers.
      'gles2_conform_test': {
        'args': ['--use-gpu-in-tests'],
      },
    },

    'gpu_info_collection_telemetry_tests': {
      'info_collection': {
        'args': [
          '--expected-vendor-id',
          '${gpu_vendor_id}',
          '$$MAGIC_SUBSTITUTION_GPUExpectedDeviceId',
          # On dual-GPU devices we want the high-performance GPU to be active
          '--extra-browser-args=--force_high_performance_gpu',
        ],
        'android_args': [
          '$$MAGIC_SUBSTITUTION_GPUTelemetryNoRootForUnrootedDevices',
        ],
        'mixins': [
          'has_native_resultdb_integration',
        ],
      },
    },

    'gpu_mediapipe_passthrough_telemetry_tests': {
      'mediapipe_passthrough': {
        'name': 'mediapipe_passthrough_tests',
        'telemetry_test_name': 'mediapipe',
        'args': [
          '--extra-browser-args=--force_higher_performance_gpu --use-cmd-decoder=passthrough --use-gl=angle',
        ],
        'android_args': [
          '$$MAGIC_SUBSTITUTION_GPUTelemetryNoRootForUnrootedDevices',
        ],
        'chromeos_args': [
          '$$MAGIC_SUBSTITUTION_ChromeOSTelemetryRemote',
        ],
        'lacros_args': [
          '--extra-browser-args=--enable-features=UseOzonePlatform --ozone-platform=wayland',
          '--xvfb',
          '--no-xvfb',
          '--use-weston',
          '--weston-use-gl',
        ],
        'mixins': [
          'has_native_resultdb_integration',
        ],
      },
    },

    'gpu_mediapipe_validating_telemetry_tests': {
      'mediapipe_validating': {
        'name': 'mediapipe_validating_tests',
        'telemetry_test_name': 'mediapipe',
        'args': [
          '--extra-browser-args=--force_higher_performance_gpu --use-cmd-decoder=validating',
        ],
        'android_args': [
          '$$MAGIC_SUBSTITUTION_GPUTelemetryNoRootForUnrootedDevices',
        ],
        'chromeos_args': [
          '$$MAGIC_SUBSTITUTION_ChromeOSTelemetryRemote',
        ],
        'lacros_args': [
          '--extra-browser-args=--enable-features=UseOzonePlatform --ozone-platform=wayland',
          '--xvfb',
          '--no-xvfb',
          '--use-weston',
          '--weston-use-gl',
        ],
        'mixins': [
          'has_native_resultdb_integration',
        ],
      },
    },

    'gpu_noop_sleep_telemetry_test': {
      # The former GPU-specific generator script contained logic to
      # detect whether the so-called "experimental" GPU bots, which test
      # newer driver versions, were identical to the "stable" versions
      # of the bots, and if so to mirror their configurations. We prefer
      # to keep this new script simpler and to just configure this by
      # hand in waterfalls.pyl.
      'noop_sleep': {
        'android_args': [
          '$$MAGIC_SUBSTITUTION_GPUTelemetryNoRootForUnrootedDevices',
        ],
        'chromeos_args': [
          '$$MAGIC_SUBSTITUTION_ChromeOSTelemetryRemote',
        ],
      },
    },

    'gpu_passthrough_telemetry_tests': {
      'context_lost_passthrough': {
        'name': 'context_lost_passthrough_tests',
        'telemetry_test_name': 'context_lost',
        'android_args': [
          '$$MAGIC_SUBSTITUTION_GPUTelemetryNoRootForUnrootedDevices',
        ],
        'chromeos_args': [
          '$$MAGIC_SUBSTITUTION_ChromeOSTelemetryRemote',
        ],
        'lacros_args': [
          '--extra-browser-args=--enable-features=UseOzonePlatform --ozone-platform=wayland',
          '--xvfb',
          '--no-xvfb',
          '--use-weston',
          '--weston-use-gl',
        ],
        'args': [
          '--extra-browser-args=--use-cmd-decoder=passthrough --use-gl=angle',
        ],
        'mixins': [
          'has_native_resultdb_integration',
        ],
      },
      'gpu_process': {
        'name': 'gpu_process_launch_tests',
        'android_args': [
          '$$MAGIC_SUBSTITUTION_GPUTelemetryNoRootForUnrootedDevices',
        ],
        'chromeos_args': [
          '$$MAGIC_SUBSTITUTION_ChromeOSTelemetryRemote',
        ],
        'lacros_args': [
          '--extra-browser-args=--enable-features=UseOzonePlatform --ozone-platform=wayland',
          '--xvfb',
          '--no-xvfb',
          '--use-weston',
          '--weston-use-gl',
        ],
        'mixins': [
          'has_native_resultdb_integration',
        ],
      },
      'hardware_accelerated_feature': {
        'android_args': [
          '$$MAGIC_SUBSTITUTION_GPUTelemetryNoRootForUnrootedDevices',
        ],
        'chromeos_args': [
          '$$MAGIC_SUBSTITUTION_ChromeOSTelemetryRemote',
        ],
        'lacros_args': [
          '--extra-browser-args=--enable-features=UseOzonePlatform --ozone-platform=wayland',
          '--xvfb',
          '--no-xvfb',
          '--use-weston',
          '--weston-use-gl',
        ],
        'mixins': [
          'has_native_resultdb_integration',
        ],
      },
      'maps_passthrough': {
        'name': 'maps_pixel_passthrough_test',
        'telemetry_test_name': 'maps',
        'args': [
          '--dont-restore-color-profile-after-test',
          '--test-machine-name',
          '${buildername}',
          '--extra-browser-args=--use-cmd-decoder=passthrough --use-gl=angle',
        ],
        'android_args': [
          # TODO(crbug.com/1093085): Remove this once we fix the tests.
          '--extra-browser-args=--force-online-connection-state-for-indicator',
          '$$MAGIC_SUBSTITUTION_GPUTelemetryNoRootForUnrootedDevices',
        ],
        'chromeos_args': [
          '$$MAGIC_SUBSTITUTION_ChromeOSTelemetryRemote',
        ],
        'lacros_args': [
          '--extra-browser-args=--enable-features=UseOzonePlatform --ozone-platform=wayland',
          '--xvfb',
          '--no-xvfb',
          '--use-weston',
          '--weston-use-gl',
        ],
        'mixins': [
          'skia_gold_test',
          'has_native_resultdb_integration',
        ],
      },
      'pixel_skia_passthrough': {
        'name': 'pixel_skia_gold_passthrough_test',
        'args': [
          '--dont-restore-color-profile-after-test',
          '--test-machine-name',
          '${buildername}',
          '--extra-browser-args=--use-cmd-decoder=passthrough --use-gl=angle',
        ],
        'android_args': [
          # TODO(crbug.com/1093085): Remove this once we fix the tests.
          '--extra-browser-args=--force-online-connection-state-for-indicator',
          '$$MAGIC_SUBSTITUTION_GPUTelemetryNoRootForUnrootedDevices',
        ],
        'chromeos_args': [
          '$$MAGIC_SUBSTITUTION_ChromeOSTelemetryRemote',
        ],
        'lacros_args': [
          '--extra-browser-args=--enable-features=UseOzonePlatform --ozone-platform=wayland',
          '--xvfb',
          '--no-xvfb',
          '--use-weston',
          '--weston-use-gl',
        ],
        'mixins': [
          'skia_gold_test',
          'has_native_resultdb_integration',
        ],
        'telemetry_test_name': 'pixel',
      },
      'screenshot_sync_passthrough': {
        'name': 'screenshot_sync_passthrough_tests',
        'telemetry_test_name': 'screenshot_sync',
        'args': [
          '--dont-restore-color-profile-after-test',
          '--extra-browser-args=--use-cmd-decoder=passthrough --use-gl=angle',
        ],
        'android_args': [
          # TODO(crbug.com/1093085): Remove this once we fix the tests.
          '--extra-browser-args=--force-online-connection-state-for-indicator',
          '$$MAGIC_SUBSTITUTION_GPUTelemetryNoRootForUnrootedDevices',
        ],
        'chromeos_args': [
          '$$MAGIC_SUBSTITUTION_ChromeOSTelemetryRemote',
        ],
        'lacros_args': [
          '--extra-browser-args=--enable-features=UseOzonePlatform --ozone-platform=wayland',
          '--xvfb',
          '--no-xvfb',
          '--use-weston',
          '--weston-use-gl',
        ],
        'mixins': [
          'has_native_resultdb_integration',
        ],
      },
    },

    'gpu_pixel_passthrough_telemetry_tests': {
      'maps_passthrough': {
        'name': 'maps_pixel_passthrough_test',
        'telemetry_test_name': 'maps',
        'args': [
          '--dont-restore-color-profile-after-test',
          '--test-machine-name',
          '${buildername}',
          '--extra-browser-args=--use-cmd-decoder=passthrough --use-gl=angle',
        ],
        'chromeos_args': [
          '$$MAGIC_SUBSTITUTION_ChromeOSTelemetryRemote',
        ],
        'mixins': [
          'skia_gold_test',
          'has_native_resultdb_integration',
        ],
      },
      'pixel_skia_passthrough': {
        'name': 'pixel_skia_gold_passthrough_test',
        'args': [
          '--dont-restore-color-profile-after-test',
          '--test-machine-name',
          '${buildername}',
          '--extra-browser-args=--use-cmd-decoder=passthrough --use-gl=angle',
        ],
        'chromeos_args': [
          '$$MAGIC_SUBSTITUTION_ChromeOSTelemetryRemote',
        ],
        'mixins': [
          'skia_gold_test',
          'has_native_resultdb_integration',
        ],
        'telemetry_test_name': 'pixel',
      },
    },

    'gpu_skia_renderer_vulkan_passthrough_telemetry_tests': {
      'vulkan_pixel_skia': {
        'name': 'vulkan_pixel_skia_gold_test',
        'args': [
          '--dont-restore-color-profile-after-test',
          '--test-machine-name',
          '${buildername}',
          '--extra-browser-args=--use-vulkan=native --disable-vulkan-fallback-to-gl-for-testing --enable-features=Vulkan --use-gl=angle --use-angle=gl --use-cmd-decoder=passthrough',
        ],
        'android_args': [
          # TODO(crbug.com/1093085): Remove this once we fix the tests.
          '--extra-browser-args=--force-online-connection-state-for-indicator',
          '$$MAGIC_SUBSTITUTION_GPUTelemetryNoRootForUnrootedDevices',
        ],
        'mixins': [
          'skia_gold_test',
          'has_native_resultdb_integration',
        ],
        'telemetry_test_name': 'pixel',
      },
    },

    'gpu_validating_telemetry_tests': {
      'context_lost_validating': {
        'name': 'context_lost_validating_tests',
        'telemetry_test_name': 'context_lost',
        'android_args': [
          '$$MAGIC_SUBSTITUTION_GPUTelemetryNoRootForUnrootedDevices',
        ],
        'chromeos_args': [
          '$$MAGIC_SUBSTITUTION_ChromeOSTelemetryRemote',
        ],
        'lacros_args': [
          '--extra-browser-args=--enable-features=UseOzonePlatform --ozone-platform=wayland',
          '--xvfb',
          '--no-xvfb',
          '--use-weston',
          '--weston-use-gl',
        ],
        'args': [
          '--extra-browser-args=--use-cmd-decoder=validating',
        ],
        'mixins': [
          'has_native_resultdb_integration',
        ],
      },
      'gpu_process': {
        'name': 'gpu_process_launch_tests',
        'android_args': [
          '$$MAGIC_SUBSTITUTION_GPUTelemetryNoRootForUnrootedDevices',
        ],
        'chromeos_args': [
          '$$MAGIC_SUBSTITUTION_ChromeOSTelemetryRemote',
        ],
        'lacros_args': [
          '--extra-browser-args=--enable-features=UseOzonePlatform --ozone-platform=wayland',
          '--xvfb',
          '--no-xvfb',
          '--use-weston',
          '--weston-use-gl',
        ],
        'mixins': [
          'has_native_resultdb_integration',
        ],
      },
      'hardware_accelerated_feature': {
        'android_args': [
          '$$MAGIC_SUBSTITUTION_GPUTelemetryNoRootForUnrootedDevices',
        ],
        'chromeos_args': [
          '$$MAGIC_SUBSTITUTION_ChromeOSTelemetryRemote',
        ],
        'lacros_args': [
          '--extra-browser-args=--enable-features=UseOzonePlatform --ozone-platform=wayland',
          '--xvfb',
          '--no-xvfb',
          '--use-weston',
          '--weston-use-gl',
        ],
        'mixins': [
          'has_native_resultdb_integration',
        ],
      },
      'maps_validating': {
        'name': 'maps_pixel_validating_test',
        'telemetry_test_name': 'maps',
        'args': [
          '--dont-restore-color-profile-after-test',
          '--test-machine-name',
          '${buildername}',
          '--extra-browser-args=--use-cmd-decoder=validating',
        ],
        'android_args': [
          # TODO(crbug.com/1093085): Remove this once we fix the tests.
          '--extra-browser-args=--force-online-connection-state-for-indicator',
          '$$MAGIC_SUBSTITUTION_GPUTelemetryNoRootForUnrootedDevices',
        ],
        'chromeos_args': [
          '$$MAGIC_SUBSTITUTION_ChromeOSTelemetryRemote',
        ],
        'lacros_args': [
          '--extra-browser-args=--enable-features=UseOzonePlatform --ozone-platform=wayland',
          '--xvfb',
          '--no-xvfb',
          '--use-weston',
          '--weston-use-gl',
        ],
        'mixins': [
          'skia_gold_test',
          'has_native_resultdb_integration',
        ],
      },
      'pixel_skia_validating': {
        'name': 'pixel_skia_gold_validating_test',
        'args': [
          '--dont-restore-color-profile-after-test',
          '--test-machine-name',
          '${buildername}',
          '--extra-browser-args=--use-cmd-decoder=validating',
        ],
        'android_args': [
          # TODO(crbug.com/1093085): Remove this once we fix the tests.
          '--extra-browser-args=--force-online-connection-state-for-indicator',
          '$$MAGIC_SUBSTITUTION_GPUTelemetryNoRootForUnrootedDevices',
        ],
        'chromeos_args': [
          '$$MAGIC_SUBSTITUTION_ChromeOSTelemetryRemote',
        ],
        'lacros_args': [
          '--extra-browser-args=--enable-features=UseOzonePlatform --ozone-platform=wayland',
          '--xvfb',
          '--no-xvfb',
          '--use-weston',
          '--weston-use-gl',
        ],
        'mixins': [
          'skia_gold_test',
          'has_native_resultdb_integration',
        ],
        'telemetry_test_name': 'pixel',
      },
      'screenshot_sync_validating': {
        'name': 'screenshot_sync_validating_tests',
        'telemetry_test_name': 'screenshot_sync',
        'args': [
          '--dont-restore-color-profile-after-test',
          '--extra-browser-args=--use-cmd-decoder=validating',
         ],
        'android_args': [
          # TODO(crbug.com/1093085): Remove this once we fix the tests.
          '--extra-browser-args=--force-online-connection-state-for-indicator',
          '$$MAGIC_SUBSTITUTION_GPUTelemetryNoRootForUnrootedDevices',
        ],
        'chromeos_args': [
          '$$MAGIC_SUBSTITUTION_ChromeOSTelemetryRemote',
        ],
        'lacros_args': [
          '--extra-browser-args=--enable-features=UseOzonePlatform --ozone-platform=wayland',
          '--xvfb',
          '--no-xvfb',
          '--use-weston',
          '--weston-use-gl',
        ],
        'mixins': [
          'has_native_resultdb_integration',
        ],
      },
    },

    'gpu_vulkan_gtests': {
      'vulkan_tests': {
        'desktop_args': [
          '--use-gpu-in-tests',
        ],
        'linux_args': ['--no-xvfb'],
      },
    },

    'gpu_webcodecs_telemetry_test': {
      'webcodecs': {
        'android_args': [
          '$$MAGIC_SUBSTITUTION_GPUTelemetryNoRootForUnrootedDevices',
        ],
        'chromeos_args': [
          '$$MAGIC_SUBSTITUTION_ChromeOSTelemetryRemote',
        ],
        # TODO(https://crbug.com/1359405): having --xvfb and --no-xvfb is confusing.
        'lacros_args': [
          '--extra-browser-args=--enable-features=UseOzonePlatform --ozone-platform=wayland',
          '--xvfb',
          '--no-xvfb',
          '--use-weston',
          '--weston-use-gl',
        ],
        'mixins': [
          'has_native_resultdb_integration',
        ],
      },
    },

    'gpu_webcodecs_validating_telemetry_test': {
      'webcodecs': {
        'args': [
          '--extra-browser-args=--use-cmd-decoder=validating',
        ],
        'android_args': [
          '$$MAGIC_SUBSTITUTION_GPUTelemetryNoRootForUnrootedDevices',
        ],
        'chromeos_args': [
          '$$MAGIC_SUBSTITUTION_ChromeOSTelemetryRemote',
        ],
        # TODO(https://crbug.com/1359405): having --xvfb and --no-xvfb is confusing.
        'lacros_args': [
          '--extra-browser-args=--enable-features=UseOzonePlatform --ozone-platform=wayland',
          '--xvfb',
          '--no-xvfb',
          '--use-weston',
          '--weston-use-gl',
        ],
        'mixins': [
          'has_native_resultdb_integration',
        ],
      },
    },

    'gpu_webgl2_conformance_d3d11_passthrough_telemetry_tests': {
      'webgl2_conformance_d3d11_passthrough_tests': {
        'telemetry_test_name': 'webgl2_conformance',
        'args': [
          '--webgl-conformance-version=2.0.1',
          # The current working directory when run via isolate is
          # out/Debug or out/Release. Reference this file relatively to
          # it.
          '--read-abbreviated-json-results-from=../../content/test/data/gpu/webgl2_conformance_tests_output.json',
          # On dual-GPU devices we want the high-performance GPU to be active
          '--extra-browser-args=--use-gl=angle --use-angle=d3d11 --use-cmd-decoder=passthrough --force_high_performance_gpu',
          '$$MAGIC_SUBSTITUTION_GPUParallelJobs',
        ],
        'mixins': [
          'has_native_resultdb_integration',
        ],
        'swarming': {
          # These tests currently take about an hour and fifteen minutes
          # to run. Split them into roughly 5-minute shards.
          'shards': 20,
        },
      },
    },

    'gpu_webgl2_conformance_gl_passthrough_telemetry_tests': {
      'webgl2_conformance_gl_passthrough_tests': {
        'telemetry_test_name': 'webgl2_conformance',
        'args': [
          '--webgl-conformance-version=2.0.1',
          # The current working directory when run via isolate is
          # out/Debug or out/Release. Reference this file relatively to
          # it.
          '--read-abbreviated-json-results-from=../../content/test/data/gpu/webgl2_conformance_tests_output.json',
          # On dual-GPU devices we want the high-performance GPU to be active
          '--extra-browser-args=--use-gl=angle --use-angle=gl --use-cmd-decoder=passthrough --force_high_performance_gpu',
          '$$MAGIC_SUBSTITUTION_GPUParallelJobs',
        ],
        'android_args': [
          '$$MAGIC_SUBSTITUTION_GPUTelemetryNoRootForUnrootedDevices',
        ],
        'chromeos_args': [
          '$$MAGIC_SUBSTITUTION_ChromeOSTelemetryRemote',
        ],
        'lacros_args': [
          '--extra-browser-args=--enable-features=UseOzonePlatform --ozone-platform=wayland',
          '--xvfb',
          '--no-xvfb',
          '--use-weston',
          '--weston-use-gl',
        ],
        'mixins': [
          'has_native_resultdb_integration',
        ],
        'swarming': {
          # These tests currently take about an hour and fifteen minutes
          # to run. Split them into roughly 5-minute shards.
          'shards': 20,
        },
      },
    },

    'gpu_webgl2_conformance_gles_passthrough_representative_telemetry_tests': {
      'webgl2_conformance_gles_passthrough_tests': {
        'telemetry_test_name': 'webgl2_conformance',
        'args': [
          '--webgl-conformance-version=2.0.1',
          # The current working directory when run via isolate is
          # out/Debug or out/Release. Reference this file relatively to
          # it.
          '--read-abbreviated-json-results-from=../../content/test/data/gpu/webgl2_conformance_tests_output.json',
          # On dual-GPU devices we want the high-performance GPU to be active
          '--extra-browser-args=--use-gl=angle --use-angle=gles --use-cmd-decoder=passthrough --force_high_performance_gpu',
          '--test-filter=conformance/rendering/*::conformance2/rendering/*',
          '$$MAGIC_SUBSTITUTION_GPUParallelJobs',
        ],
        'chromeos_args': [
          '$$MAGIC_SUBSTITUTION_ChromeOSTelemetryRemote',
        ],
        'mixins': [
          'has_native_resultdb_integration',
        ],
        'swarming': {
          'shards': 1,
        },
      },
    },

    'gpu_webgl2_conformance_gles_passthrough_telemetry_tests': {
      'webgl2_conformance_gles_passthrough_tests': {
        'telemetry_test_name': 'webgl2_conformance',
        'args': [
          '--webgl-conformance-version=2.0.1',
          # The current working directory when run via isolate is
          # out/Debug or out/Release. Reference this file relatively to
          # it.
          '--read-abbreviated-json-results-from=../../content/test/data/gpu/webgl2_conformance_tests_output.json',
          # On dual-GPU devices we want the high-performance GPU to be active
          '--extra-browser-args=--use-gl=angle --use-angle=gles --use-cmd-decoder=passthrough --force_high_performance_gpu',
          '$$MAGIC_SUBSTITUTION_GPUParallelJobs',
        ],
        'android_args': [
          '$$MAGIC_SUBSTITUTION_GPUTelemetryNoRootForUnrootedDevices',
        ],
        'chromeos_args': [
          '$$MAGIC_SUBSTITUTION_ChromeOSTelemetryRemote',
        ],
        'mixins': [
          'has_native_resultdb_integration',
        ],
        'swarming': {
          # These tests currently take about an hour and fifteen minutes
          # to run. Split them into roughly 5-minute shards.
          'shards': 20,
        },
      },
    },

    'gpu_webgl2_conformance_metal_passthrough_telemetry_tests': {
      'webgl2_conformance_metal_passthrough_tests': {
        'telemetry_test_name': 'webgl2_conformance',
        'args': [
          '--webgl-conformance-version=2.0.1',
          # The current working directory when run via isolate is
          # out/Debug or out/Release. Reference this file relatively to
          # it.
          '--read-abbreviated-json-results-from=../../content/test/data/gpu/webgl2_conformance_tests_output.json',
          # On dual-GPU devices we want the high-performance GPU to be active
          '--extra-browser-args=--use-gl=angle --use-angle=metal --use-cmd-decoder=passthrough --enable-features=EGLDualGPURendering,ForceHighPerformanceGPUForWebGL',
          '$$MAGIC_SUBSTITUTION_GPUParallelJobs',
        ],
        'mixins': [
          'has_native_resultdb_integration',
        ],
        'swarming': {
          'shards': 20,
        },
      },
    },

    'gpu_webgl2_conformance_validating_telemetry_tests': {
      'webgl2_conformance_validating_tests': {
        'telemetry_test_name': 'webgl2_conformance',
        'args': [
          '--webgl-conformance-version=2.0.1',
          # The current working directory when run via isolate is
          # out/Debug or out/Release. Reference this file relatively to
          # it.
          '--read-abbreviated-json-results-from=../../content/test/data/gpu/webgl2_conformance_tests_output.json',
          # On dual-GPU devices we want the high-performance GPU to be active
          '--extra-browser-args=--use-cmd-decoder=validating --force_high_performance_gpu',
          '$$MAGIC_SUBSTITUTION_GPUParallelJobs',
        ],
        'android_args': [
          '$$MAGIC_SUBSTITUTION_GPUTelemetryNoRootForUnrootedDevices',
        ],
        'chromeos_args': [
          '$$MAGIC_SUBSTITUTION_ChromeOSTelemetryRemote',
        ],
        'lacros_args': [
          '--extra-browser-args=--enable-features=UseOzonePlatform --ozone-platform=wayland',
          '--xvfb',
          '--no-xvfb',
          '--use-weston',
          '--weston-use-gl',
        ],
        'mixins': [
          'has_native_resultdb_integration',
        ],
        'swarming': {
          # These tests currently take about an hour and fifteen minutes
          # to run. Split them into roughly 5-minute shards.
          'shards': 20,
        },
      },
    },

    'gpu_webgl_conformance_d3d11_passthrough_telemetry_tests': {
      'webgl_conformance_d3d11_passthrough': {
        'telemetry_test_name': 'webgl1_conformance',
        'args': [
          # On dual-GPU devices we want the high-performance GPU to be active
          '--extra-browser-args=--use-gl=angle --use-angle=d3d11 --use-cmd-decoder=passthrough --force_high_performance_gpu',
          # The current working directory when run via isolate is
          # out/Debug or out/Release. Reference this file relatively to
          # it.
          '--read-abbreviated-json-results-from=../../content/test/data/gpu/webgl_conformance_tests_output.json',
          '$$MAGIC_SUBSTITUTION_GPUParallelJobs',
        ],
        'mixins': [
          'has_native_resultdb_integration',
        ],
        'swarming': {
          'shards': 2,
        },
      },
    },

    'gpu_webgl_conformance_d3d9_passthrough_telemetry_tests': {
      'webgl_conformance_d3d9_passthrough': {
        'telemetry_test_name': 'webgl1_conformance',
        'args': [
          # On dual-GPU devices we want the high-performance GPU to be active
          '--extra-browser-args=--use-gl=angle --use-angle=d3d9 --use-cmd-decoder=passthrough --force_high_performance_gpu',
          # The current working directory when run via isolate is
          # out/Debug or out/Release. Reference this file relatively to
          # it.
          '--read-abbreviated-json-results-from=../../content/test/data/gpu/webgl_conformance_tests_output.json',
          '$$MAGIC_SUBSTITUTION_GPUParallelJobs',
        ],
        'mixins': [
          'has_native_resultdb_integration',
        ],
        'swarming': {
          'shards': 2,
        },
      },
    },

    'gpu_webgl_conformance_gl_passthrough_telemetry_tests': {
      'webgl_conformance_gl_passthrough': {
        'telemetry_test_name': 'webgl1_conformance',
        'args': [
          # On dual-GPU devices we want the high-performance GPU to be active
          '--extra-browser-args=--use-gl=angle --use-angle=gl --use-cmd-decoder=passthrough --force_high_performance_gpu',
          # The current working directory when run via isolate is
          # out/Debug or out/Release. Reference this file relatively to
          # it.
          '--read-abbreviated-json-results-from=../../content/test/data/gpu/webgl_conformance_tests_output.json',
          '$$MAGIC_SUBSTITUTION_GPUParallelJobs',
        ],
        'android_args': [
          '$$MAGIC_SUBSTITUTION_GPUTelemetryNoRootForUnrootedDevices',
        ],
        'chromeos_args': [
          '$$MAGIC_SUBSTITUTION_ChromeOSTelemetryRemote',
        ],
        'lacros_args': [
          '--extra-browser-args=--enable-features=UseOzonePlatform --ozone-platform=wayland',
          '--xvfb',
          '--no-xvfb',
          '--use-weston',
          '--weston-use-gl',
        ],
        'mixins': [
          'has_native_resultdb_integration',
        ],
        'swarming': {
          'shards': 2,
        },
      },
    },

    'gpu_webgl_conformance_gles_passthrough_representative_telemetry_tests': {
      'webgl_conformance_gles_passthrough': {
        'telemetry_test_name': 'webgl1_conformance',
        'args': [
          # On dual-GPU devices we want the high-performance GPU to be active
          '--extra-browser-args=--use-gl=angle --use-angle=gles --use-cmd-decoder=passthrough --force_high_performance_gpu',
          # The current working directory when run via isolate is
          # out/Debug or out/Release. Reference this file relatively to
          # it.
          '--read-abbreviated-json-results-from=../../content/test/data/gpu/webgl_conformance_tests_output.json',
          '--test-filter=conformance/rendering/*',
          '$$MAGIC_SUBSTITUTION_GPUParallelJobs',
        ],
        'chromeos_args': [
          '$$MAGIC_SUBSTITUTION_ChromeOSTelemetryRemote',
        ],
        'mixins': [
          'has_native_resultdb_integration',
        ],
        'swarming': {
          'shards': 1,
        },
      },
    },

    'gpu_webgl_conformance_gles_passthrough_telemetry_tests': {
      'webgl_conformance_gles_passthrough': {
        'telemetry_test_name': 'webgl1_conformance',
        'args': [
          # On dual-GPU devices we want the high-performance GPU to be active
          '--extra-browser-args=--use-gl=angle --use-angle=gles --use-cmd-decoder=passthrough --force_high_performance_gpu',
          # The current working directory when run via isolate is
          # out/Debug or out/Release. Reference this file relatively to
          # it.
          '--read-abbreviated-json-results-from=../../content/test/data/gpu/webgl_conformance_tests_output.json',
          '$$MAGIC_SUBSTITUTION_GPUParallelJobs',
        ],
        'android_args': [
          '$$MAGIC_SUBSTITUTION_GPUTelemetryNoRootForUnrootedDevices',
        ],
        'lacros_args': [
          '--extra-browser-args=--enable-features=UseOzonePlatform --ozone-platform=wayland',
          '--xvfb',
          '--no-xvfb',
          '--use-weston',
          '--weston-use-gl',
        ],
        'mixins': [
          'has_native_resultdb_integration',
        ],
        'swarming': {
          'shards': 6,
        },
      },
    },

    'gpu_webgl_conformance_metal_passthrough_telemetry_tests': {
      'webgl_conformance_metal_passthrough': {
        'telemetry_test_name': 'webgl1_conformance',
        'args': [
          # On dual-GPU devices we want the high-performance GPU to be active
          '--extra-browser-args=--use-gl=angle --use-angle=metal --use-cmd-decoder=passthrough --enable-features=EGLDualGPURendering,ForceHighPerformanceGPUForWebGL',
          # The current working directory when run via isolate is
          # out/Debug or out/Release. Reference this file relatively to
          # it.
          '--read-abbreviated-json-results-from=../../content/test/data/gpu/webgl_conformance_tests_output.json',
          '$$MAGIC_SUBSTITUTION_GPUParallelJobs',
        ],
        'mixins': [
          'has_native_resultdb_integration',
        ],
        'swarming': {
          'shards': 3,
        },
      },
    },

    'gpu_webgl_conformance_swangle_passthrough_representative_telemetry_tests': {
      'webgl_conformance_swangle_passthrough': {
        'telemetry_test_name': 'webgl1_conformance',
        'args': [
          # On dual-GPU devices we want the high-performance GPU to be active
          '--extra-browser-args=--use-gl=angle --use-angle=swiftshader --use-cmd-decoder=passthrough --force_high_performance_gpu',
          # We are only interested in running a 'smoketest' to test swangle
          # integration, not the full conformance suite.
          '--test-filter=conformance/rendering/gl-drawelements.html',
          '$$MAGIC_SUBSTITUTION_GPUParallelJobs',
        ],
        'mixins': [
          'has_native_resultdb_integration',
        ],
        'swarming': {
          'shards': 1,
        },
      },
    },

    'gpu_webgl_conformance_swangle_passthrough_telemetry_tests': {
      'webgl_conformance_swangle_passthrough': {
        'telemetry_test_name': 'webgl1_conformance',
        'args': [
          '--extra-browser-args=--use-gl=angle --use-angle=swiftshader --use-cmd-decoder=passthrough',
          '--xvfb',
          '$$MAGIC_SUBSTITUTION_GPUParallelJobs',
        ],
        'mixins': [
          'has_native_resultdb_integration',
        ],
        'swarming': {
          'shards': 1,
        },
      },
    },

    'gpu_webgl_conformance_telemetry_tests': {
      'webgl_conformance': {
        'telemetry_test_name': 'webgl1_conformance',
        'chromeos_args': [
          '$$MAGIC_SUBSTITUTION_ChromeOSTelemetryRemote',
        ],
        'args': [
          # On dual-GPU devices we want the high-performance GPU to be active
          '--extra-browser-args=--force_high_performance_gpu',
          # The current working directory when run via isolate is
          # out/Debug or out/Release. Reference this file relatively to
          # it.
          '--read-abbreviated-json-results-from=../../content/test/data/gpu/webgl_conformance_tests_output.json',
          '$$MAGIC_SUBSTITUTION_GPUParallelJobs',
        ],
        'android_args': [
          '$$MAGIC_SUBSTITUTION_GPUTelemetryNoRootForUnrootedDevices',
        ],
        'mixins': [
          'has_native_resultdb_integration',
        ],
        'swarming': {
          'shards': 2,
        },
        'android_swarming': {
          'shards': 12,
        },
        'chromeos_swarming': {
          'shards': 20,
        },
      },
    },

    'gpu_webgl_conformance_validating_telemetry_tests': {
      'webgl_conformance_validating': {
        'telemetry_test_name': 'webgl1_conformance',
        'android_args': [
          '$$MAGIC_SUBSTITUTION_GPUTelemetryNoRootForUnrootedDevices',
        ],
        'chromeos_args': [
          '$$MAGIC_SUBSTITUTION_ChromeOSTelemetryRemote',
        ],
        'lacros_args': [
          '--extra-browser-args=--enable-features=UseOzonePlatform --ozone-platform=wayland',
          '--xvfb',
          '--no-xvfb',
          '--use-weston',
          '--weston-use-gl',
        ],
        'args': [
          # On dual-GPU devices we want the high-performance GPU to be active
          '--extra-browser-args=--use-cmd-decoder=validating --force_high_performance_gpu',
          # The current working directory when run via isolate is
          # out/Debug or out/Release. Reference this file relatively to
          # it.
          '--read-abbreviated-json-results-from=../../content/test/data/gpu/webgl_conformance_tests_output.json',
          '$$MAGIC_SUBSTITUTION_GPUParallelJobs',
        ],
        'mixins': [
          'has_native_resultdb_integration',
        ],
        'swarming': {
          'shards': 2,
        },
        'android_swarming': {
          'shards': 6,
        },
      },
    },

    'gpu_webgl_conformance_vulkan_passthrough_telemetry_tests': {
      'webgl_conformance_vulkan_passthrough': {
        'telemetry_test_name': 'webgl1_conformance',
        'args': [
          # On dual-GPU devices we want the high-performance GPU to be active
          '--extra-browser-args=--use-angle=vulkan --use-cmd-decoder=passthrough --force_high_performance_gpu',
          '$$MAGIC_SUBSTITUTION_GPUParallelJobs',
        ],
        'mixins': [
          'has_native_resultdb_integration',
        ],
        'swarming': {
          'shards': 2,
        },
      },
    },

    'headless_browser_gtests': {
      'headless_browsertests': {},
      'headless_unittests': {},
    },

    'ios_blink_tests': {
      'absl_hardening_tests': {},
      'angle_unittests': {
        'use_isolated_scripts_api': True,
      },
      'base_unittests': {},
      'blink_common_unittests': {},
      'blink_fuzzer_unittests': {},
      'blink_heap_unittests': {},
      'blink_platform_unittests': {},
      'blink_unittests': {},
      'boringssl_crypto_tests': {},
      'boringssl_ssl_tests': {},
      'capture_unittests': {},
      'cast_unittests': {},
      'cc_unittests': {},
      'color_unittests': {},
      'components_browsertests': {},
      'components_unittests': {},
      'content_unittests': {},
      'crashpad_tests': {},
      'crypto_unittests': {},
      'device_unittests': {},
      'display_unittests': {},
      'events_unittests': {},
      'gcm_unit_tests': {},
      'gfx_unittests': {},
      'gin_unittests': {},
      'gl_unittests': {},
      'google_apis_unittests': {},
      'gpu_unittests': {},
      'gwp_asan_unittests': {},
      'ipc_tests': {},
      'latency_unittests': {},
      'libjingle_xmpp_unittests': {},
      'liburlpattern_unittests': {},
      'media_unittests': {},
      'midi_unittests': {},
      'mojo_unittests': {},
      'net_unittests': {},
      'perfetto_unittests': {},
      'services_unittests': {},
      'shell_dialogs_unittests': {},
      'skia_unittests': {},
      'sql_unittests': {},
      'storage_unittests': {},
      'ui_base_unittests': {},
      'ui_touch_selection_unittests': {},
      'url_unittests': {},
      'viz_unittests': {},
      'wtf_unittests': {},
      'zlib_unittests': {},
    },

    'ios_clang_tests': {
      'absl_hardening_tests': {},
      'base_unittests': {},
      'boringssl_crypto_tests': {},
      'boringssl_ssl_tests': {},
      'components_unittests': {},
      'crypto_unittests': {},
      'gfx_unittests': {},
      'google_apis_unittests': {},
      'ios_chrome_unittests': {},
      'ios_net_unittests': {},
      'ios_web_inttests': {},
      'ios_web_unittests': {},
      'ios_web_view_inttests': {},
      'net_unittests': {},
      'skia_unittests': {},
      'sql_unittests': {},
      'ui_base_unittests': {},
      'url_unittests': {},
    },

    'ios_common_tests': {
      'absl_hardening_tests': {},
      'boringssl_crypto_tests': {},
      'boringssl_ssl_tests': {},
      'crashpad_tests': {},
      'crypto_unittests': {},
      'google_apis_unittests': {},
      'ios_components_unittests': {},
      'ios_net_unittests': {
        'swarming': {
          'shards': 3,
        },
      },
      'ios_remoting_unittests': {},
      'ios_testing_unittests': {},
      'net_unittests': {},
      'services_unittests': {},
      'sql_unittests': {},
      'url_unittests': {},
    },

    'ios_crash_xcuitests': {
      'ios_crash_xcuitests_module': {},
    },

    'ios_cronet_tests': {
      'cronet_test': {},
    },

    'ios_eg2_cq_tests': {
      'ios_chrome_integration_eg2tests_module': {
        'swarming': {
          'shards': 8,
        },
      },
      'ios_web_shell_eg2tests_module': {},
    },

    'ios_eg2_tests': {
      'ios_chrome_bookmarks_eg2tests_module': {},
      'ios_chrome_settings_eg2tests_module': {
        'swarming': {
          'shards': 3,
        },
      },
      'ios_chrome_signin_eg2tests_module': {
      'swarming': {
          'shards': 6,
        },
      },
      'ios_chrome_smoke_eg2tests_module': {},
      'ios_chrome_ui_eg2tests_module': {
        'swarming': {
          'shards': 12,
        },
      },
      'ios_chrome_web_eg2tests_module': {
        'swarming': {
          'shards': 2,
        },
      },
      'ios_showcase_eg2tests_module': {},
    },

    'ios_remoting_fyi_unittests': {
      'ios_remoting_unittests': {},
    },

    'ios_screen_size_dependent_tests': {
      'base_unittests': {},
      'components_unittests': {},
      'gfx_unittests': {},
      'ios_chrome_unittests': {},
      'ios_web_inttests': {},
      'ios_web_unittests': {},
      'ios_web_view_inttests': {},
      'ios_web_view_unittests': {},
      'skia_unittests': {},
      'ui_base_unittests': {},
    },

    'ios_swift_interop_xcuitests': {
      'ios_swift_interop_xcuitests_module': {},
    },

    # END tests which run on the GPU bots

    'js_code_coverage_browser_tests' : {
      'js_code_coverage_browser_tests': {
        'args': [],
        'swarming': {
          'shards': 16,
        },
        'test': 'browser_tests',
      }
    },

    'lacros_all_tast_tests': {
      'lacros_all_tast_tests': {
        'swarming': {
          'idempotent': False,  # https://crbug.com/923426#c27
        },
        'mixins': [
          'has_native_resultdb_integration',
        ],
      },
    },

    'lacros_all_tast_tests_informational': {
      'lacros_all_tast_tests_informational': {
        'swarming': {
          'idempotent': False,  # https://crbug.com/923426#c27
        },
        'mixins': [
          'has_native_resultdb_integration',
        ],
      },
    },

    'lacros_cq_tast_tests_eve': {
      'lacros_cq_tast_tests_eve': {
        'swarming': {
          'idempotent': False,  # https://crbug.com/923426#c27
        },
        'mixins': [
          'has_native_resultdb_integration',
        ],
        'experiment_percentage': 5,
      },
    },

    'lacros_cq_tast_tests_jacuzzi': {
      'lacros_cq_tast_tests_jacuzzi': {
        'swarming': {
          'idempotent': False,  # https://crbug.com/923426#c27
        },
        'mixins': [
          'has_native_resultdb_integration',
        ],
        'experiment_percentage': 5,
      },
    },

    'lacros_device_or_vm_gtests': {
      'aura_unittests': {},
      'cc_unittests': {},
      'interactive_ui_tests': {},
      'ozone_unittests': {},
      'vaapi_unittest': {
        'args': [
          '--stop-ui',
          # Tell libva to do dummy encoding/decoding. For more info, see:
          # https://github.com/intel/libva/blob/master/va/va_fool.c#L47
          '--env-var', 'LIBVA_DRIVERS_PATH', './',
          '--env-var', 'LIBVA_DRIVER_NAME', 'libfake',
          '--gtest_filter="VaapiTest.*"',
        ],
      },
    },

    'lacros_fyi_tast_tests': {
      'lacros_fyi_tast_tests': {
        'swarming': {
          'idempotent': False,  # https://crbug.com/923426#c27
        },
        'mixins': [
          'has_native_resultdb_integration',
        ],
      },
    },

    'lacros_skylab_amd64_fyi': {
      'lacros_fyi_tast_tests': {
        'tast_expr': '("group:mainline" && "dep:lacros" && !informational)',
        'timeout_sec': 10800,
      },
      'ozone_unittests': {
        'timeout_sec': 3600,
      },
    },

    # create this temporary lacros arm test suites that runs on skylab
    # TODO(crbug.com/1247425): remove it if it is the same as
    # lacros_skylab
    'lacros_skylab_arm_tests_fyi': {
      'lacros_all_tast_tests': {
        'tast_expr': '("group:mainline" && "dep:lacros" && !informational)',
        'timeout_sec': 10800,
      },
      'ozone_unittests': {
        'timeout_sec': 3600,
      },
      'viz_unittests': {
        'timeout_sec': 3600,
      },
    },

    # Lacros tests that run on Skylab, and these tests are usually HW sensative,
    # Currently we only run Tast tests.
    'lacros_skylab_tests': {
      'lacros_all_tast_tests': {
        'tast_expr': '("group:mainline" && ("dep:lacros_stable" || "dep:lacros") && !informational)',
        'timeout_sec': 10800,
        'test_level_retries': 2,
        'mixins': [
          'has_native_resultdb_integration',
        ],
      },
    },

    'lacros_variations_tast_tests': {
      'lacros_variations_tast_tests': {
        'swarming': {
          'idempotent': False,  # https://crbug.com/923426#c27
        },
        'mixins': [
          'has_native_resultdb_integration',
        ],
        'experiment_percentage': 100,
      },
    },

    'lacros_vm_gtests': {
      'base_unittests': {},
    },

    'leak_detection_isolated_scripts': {
      'memory.leak_detection': {
        'args': [
          '--pageset-repeat=1',
          '--test-shard-map-filename=linux_leak_detection_shard_map.json',
          '--upload-results',
          '--output-format=histograms',
          '--browser=release',
          '--xvfb'
        ],
        'isolate_name': 'performance_test_suite',
        'override_compile_targets': [
          'performance_test_suite',
        ],
        'merge': {
          'args': [
            '--smoke-test-mode',
          ],
          'script': '//tools/perf/process_perf_results.py',
        },
        'swarming': {
          'expiration': 36000,
          'hard_timeout': 10800,
          'io_timeout': 3600,
          'shards': 10
        },
      },
    },

    'linux_cfm_gtests': {
      'chromeos_unittests': {},
      'unit_tests': {},
    },

    'linux_chromeos_browser_tests_require_lacros': {
      'browser_tests_require_lacros': {
        'name': 'browser_tests_require_lacros',
        'args': [
          '--test-launcher-filter-file=../../testing/buildbot/filters/linux-chromeos.browser_tests.require_lacros.filter',
          '--lacros-chrome-path=lacros_clang_x64',
        ],
        'test': 'browser_tests',
        'swarming': {
          'shards': 8,
        },
      },
    },

    'linux_chromeos_lacros_gtests': {
      # Chrome OS (Ash) and Lacros only.
      'chromeos_unittests': {},
    },

    'linux_chromeos_oobe_specific_tests': {
      # TODO(crbug.com/1071693): Merge this suite back in to the main
      # browser_tests when the tests no longer fail on MSAN.
      'oobe_only_browser_tests': {
        'name': 'oobe_only_browser_tests',
        'args': [
          '--test-launcher-filter-file=../../testing/buildbot/filters/chromeos.msan.browser_tests.oobe_positive.filter',
        ],
        'experiment_percentage': 100,
        'test': 'browser_tests',
        'swarming': {
          'shards': 20,
        },
      },
    },

    'linux_chromeos_specific_gtests': {
      # Chrome OS only.
      'ash_components_unittests': {},
      # TODO(crbug.com/1351793) Enable on CQ when stable.
      'ash_crosapi_tests': {
        'ci_only': True,
      },
      'ash_unittests': {
        'swarming': {
          'shards': 5,
        },
      },
      'ash_webui_unittests': {},
      'aura_unittests': {},
      'chromeos_components_unittests': {},
      'exo_unittests': {},
      'gl_unittests_ozone': {},
      'keyboard_unittests': {},
      'ozone_gl_unittests': {
        'args': [
          '--ozone-platform=headless',
        ],
      },
      'ozone_unittests': {},
      'ozone_x11_unittests': {},
      'shell_encryption_unittests': {},
      'ui_chromeos_unittests': {},
      'usage_time_limit_unittests': {
        'experiment_percentage': 100,
      },
      'wayland_client_perftests': {},
      'wayland_client_tests': {},
    },

    'linux_flavor_specific_chromium_gtests': {
      # Android, Chrome OS and Linux
      'sandbox_linux_unittests': {},
    },

    'linux_lacros_chrome_browsertests_non_version_skew': {
      'lacros_chrome_browsertests on ToT ash': {
        'name': 'lacros_chrome_browsertests',
        'test': 'lacros_chrome_browsertests',
        'args': [
          '--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter',
        ],
      },
      'lacros_chrome_browsertests_run_in_series on ToT ash': {
        'name': 'lacros_chrome_browsertests_run_in_series',
        'test': 'lacros_chrome_browsertests_run_in_series',
        'args': [
          '--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter',
        ],
        'swarming': {
          'shards': 2,
        },
      },
    },

    'linux_lacros_chrome_browsertests_version_skew': {
      'lacros_chrome_browsertests': {
        'args': [
          '--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter',
        ],
      },
      'lacros_chrome_browsertests_run_in_series': {
        'args': [
          '--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter',
        ],
        'swarming': {
          'shards': 2,
        },
      },
    },

    'linux_lacros_chrome_interactive_ui_tests_version_skew': {
      'interactive_ui_tests version skew': {
        'name': 'interactive_ui_tests',
        'test': 'interactive_ui_tests',
        'args': [
          '--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter',
          '--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter',
        ],
        'swarming': {
          'shards': 3,
        },
      },
    },

    'linux_lacros_chrome_interactive_ui_tests_version_skew_beta': {
      'interactive_ui_tests version skew beta': {
        'name': 'interactive_ui_tests',
        'test': 'interactive_ui_tests',
        'args': [
          '--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter',
          '--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.beta.filter',
        ],
        'swarming': {
          'shards': 3,
        },
      },
    },

    'linux_lacros_chrome_interactive_ui_tests_version_skew_dev': {
      'interactive_ui_tests version skew dev': {
        'name': 'interactive_ui_tests',
        'test': 'interactive_ui_tests',
        'args': [
          '--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter',
          '--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.dev.filter',
        ],
        'swarming': {
          'shards': 3,
        },
      },
    },

    'linux_lacros_chrome_interactive_ui_tests_version_skew_stable': {
      'interactive_ui_tests version skew stable': {
        'name': 'interactive_ui_tests',
        'test': 'interactive_ui_tests',
        'args': [
          '--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter',
          '--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.stable.filter',
        ],
        'swarming': {
          'shards': 3,
        },
      },
    },

    'linux_lacros_specific_gtests': {
      'lacros_chrome_unittests': {},
      'ozone_unittests': {},
    },

    'linux_specific_chromium_isolated_scripts': {
      'not_site_per_process_blink_web_tests': {
        # not_site_per_process_blink_web_tests provides coverage for
        # running Layout Tests without site-per-process.  This is the mode used
        # on Android and Android bots currently do not run the full set of
        # layout tests.  Running in this mode on linux compensates for lack of
        # direct Android coverage.
        'args': [
          '--flag-specific=disable-site-isolation-trials',
          # layout test failures are retried 3 times when '--test-list' is not
          # passed, but 0 times when '--test-list' is passed. We want to always
          # retry 3 times, so we explicitly specify it.
          '--num-retries=3',
        ],
        'isolate_name': 'blink_web_tests',
        'merge': {
          'args': [
            '--verbose',
          ],
          'script': '//third_party/blink/tools/merge_web_test_results.py',
        },
        'mixins': [
          'blink_tests_write_run_histories',
          # TODO(crbug.com/1327314): Enable for blink web tests.
          'disable_check_flakiness_web_tests',
          'skia_gold_test',
        ],
        'resultdb': {
          'enable': True,
        },
        'results_handler': 'layout tests',
        'swarming': {
          'shards': 8,
        },
      },
      'not_site_per_process_blink_wpt_tests': {
        # not_site_per_process_blink_wpt_tests provides coverage for
        # running WPTs without site-per-process.  This is the mode used
        # on Android and Android bots currently do not run the full set of
        # layout tests.  Running in this mode on linux compensates for lack of
        # direct Android coverage.
        'args': [
          '--flag-specific=disable-site-isolation-trials',
          # layout test failures are retried 3 times when '--test-list' is not
          # passed, but 0 times when '--test-list' is passed. We want to always
          # retry 3 times, so we explicitly specify it.
          '--num-retries=3',
        ],
        'isolate_name': 'blink_wpt_tests',
        'merge': {
          'args': [
            '--verbose',
          ],
          'script': '//third_party/blink/tools/merge_web_test_results.py',
        },
        'mixins': [
          'blink_tests_write_run_histories',
          # TODO(crbug.com/1327314): Enable for blink web tests.
          'disable_check_flakiness_web_tests',
          'skia_gold_test',
        ],
        'resultdb': {
          'enable': True,
        },
        'results_handler': 'layout tests',
        'swarming': {
          'shards': 10,
        },
      },
      'webdriver_tests_suite': {
        'isolate_name': 'webdriver_wpt_tests',
        'merge': {
          'args': [
            '--verbose',
          ],
          'script': '//third_party/blink/tools/merge_web_test_results.py',
        },
        'swarming': {
          'shards': 4,
        },
      },
    },

    'linux_specific_xr_gtests': {
      'xr_browser_tests': {
        'test': 'xr_browser_tests',
      }
    },

    # TODO(crbug.com/1320449): Remove this set of test suites when LSan can be
    # enabled Mac ASan bots. This list will be gradually filled with more tests
    # until the bot has parity with ASan bots, and the ASan bot can then enable
    # LSan and the mac-lsan-fyi-rel bot go away.
    'mac_lsan_fyi_gtests': {
      'absl_hardening_tests':{},
      'accessibility_unittests':{},
      'app_shell_unittests':{},
      'base_unittests':{},
      'blink_heap_unittests':{},
      'blink_platform_unittests':{},
      'blink_unittests':{},
      'cc_unittests':{},
      'components_unittests':{},
      'content_unittests':{},
      'crashpad_tests':{},
      'cronet_unittests':{},
      'device_unittests':{},
      'net_unittests':{},
    },

    'mac_specific_chromium_gtests': {
      'power_sampler_unittests': {},
      'sandbox_unittests': {},
      'updater_tests': {},
      'xr_browser_tests': {
        'test': 'xr_browser_tests',
      },
    },

    'mac_specific_isolated_scripts': {
      'mac_signing_tests': {},
    },

    'mojo_python_unittests_isolated_scripts': {
      'mojo_python_unittests': {
        'resultdb': {
          'enable': True,
        },
      },
    },

    'monochrome_public_apk_checker_isolated_script': {
      'monochrome_public_apk_checker': {
        'swarming': {
          'dimension_sets': [
            {
              'os': 'Ubuntu-18.04',
              'cpu': 'x86',
              'device_os': None,
              'device_os_flavor': None,
              'device_playstore_version': None,
              'device_type': None,
            },
          ],
        },
        'remove_mixins': [
          'android_r',
          'bullhead',
          'flame',
          'marshmallow',
          'mdarcy',
          'oreo_fleet',
          'pie_fleet',
          'walleye',
        ],
      },
    },

    'network_sandbox_browser_tests': {
      'browser_tests_network_sandbox': {
        'args': [
          '--enable-features=NetworkServiceSandbox',
        ],
        'swarming': {
          'shards': 10,
        },
        'test': 'browser_tests',
      },
      'components_browsertests_network_sandbox': {
        'args': [
          '--enable-features=NetworkServiceSandbox',
        ],
        'test': 'components_browsertests',
      },
      'content_browsertests_network_sandbox': {
        'args': [
          '--enable-features=NetworkServiceSandbox',
        ],
        'swarming': {
          'shards': 10,
        },
        'test': 'content_browsertests',
      },
      'interactive_ui_tests_network_sandbox': {
        'args': [
          '--enable-features=NetworkServiceSandbox',
        ],
        'swarming': {
          'shards': 3,
        },
        'test': 'interactive_ui_tests',
      },
      'sync_integration_tests_network_sandbox': {
        'args': [
          '--enable-features=NetworkServiceSandbox',
        ],
        'test': 'sync_integration_tests',
      },
    },
    'network_service_fyi_gtests': {
      'network_service_web_request_proxy_browser_tests': {
        'args': [
          '--enable-features=ForceWebRequestProxyForTest',
        ],
        'swarming': {
          'shards': 15,
        },
        'test': 'browser_tests',
      },
    },

    'nocompile_tests': {
      'content_nocompile_tests': {},
    },

    'non_android_and_cast_and_chromeos_chromium_gtests': {
      'cronet_tests': {},
      'cronet_unittests': {},
      'headless_browsertests': {},
      'headless_unittests': {},
    },

    'non_android_chromium_gtests': {
      'accessibility_unittests': {},
      'app_shell_unittests': {},
      'blink_fuzzer_unittests': {},
      'browser_tests': {
        'swarming': {
          'shards': 10,
        },
      },
      'chrome_app_unittests': {},
      'chromedriver_unittests': {},
      'color_unittests': {},
      'extensions_browsertests': {},
      'extensions_unittests': {},
      'filesystem_service_unittests': {},  # https://crbug.com/862712
      'interactive_ui_tests': {
        'swarming': {
          'shards': 3,
        },
      },
      'message_center_unittests': {},
      'nacl_loader_unittests': {},
      'native_theme_unittests': {},
      'pdf_unittests': {},
      'ppapi_unittests': {},
      'printing_unittests': {},
      'remoting_unittests': {},
      'service_manager_unittests': {}, # https://crbug.com/843134
      'snapshot_unittests': {},
      'sync_integration_tests': {},
      'views_unittests': {},
    },

    'non_android_chromium_gtests_no_nacl': {
      'accessibility_unittests': {},
      'app_shell_unittests': {},
      'blink_fuzzer_unittests': {},
      'browser_tests': {
        'swarming': {
          'shards': 10,
        },
      },
      'chrome_app_unittests': {},
      'chromedriver_unittests': {},
      'color_unittests': {},
      'extensions_browsertests': {},
      'extensions_unittests': {},
      'filesystem_service_unittests': {},  # https://crbug.com/862712
      'interactive_ui_tests': {
        'swarming': {
          'shards': 3,
        },
      },
      'message_center_unittests': {},
      'native_theme_unittests': {},
      'pdf_unittests': {},
      'ppapi_unittests': {},
      'printing_unittests': {},
      'remoting_unittests': {},
      'service_manager_unittests': {}, # https://crbug.com/843134
      'snapshot_unittests': {},
      'sync_integration_tests': {},
      'views_unittests': {},
    },

    'non_android_chromium_gtests_skia_gold': {
      'views_examples_unittests': {
        'mixins': [
          'skia_gold_test',
        ],
      },
    },

    'oop_network_service_tests': {
      'oop_network_service_content_browsertests': {
        'args': [
          '--disable-features=NetworkServiceInProcess2',
        ],
        'swarming': {
          'shards': 25,
        },
        'test': 'content_browsertests',
      },
    },

    'perfetto_gtests': {
      'base_unittests': {},
      'browser_tests': {
        'args': [
          '--gtest_filter=ChromeTracingDelegateBrowserTest.*',
        ],
      },
      'content_browsertests': {
        'android_swarming': {
          'shards': 15,
        },
        'swarming': {
          'shards': 8,
        },
      },
      'perfetto_unittests': {},
      'services_unittests': {},
    },

    'perfetto_gtests_android': {
      'android_browsertests': {
        'args': [
          '--gtest_filter=StartupMetricsTest.*',
        ],
      },
      'base_unittests': {},
      'content_browsertests': {
        'android_swarming': {
          'shards': 15,
        },
        'swarming': {
          'shards': 8,
        },
      },
      'perfetto_unittests': {},
      'services_unittests': {},
    },

    'performance_smoke_test_isolated_scripts': {
      'performance_test_suite': {
        'args': [
          '--pageset-repeat=1',
          '--test-shard-map-filename=smoke_test_benchmark_shard_map.json',
        ],
        'swarming': {
          'hard_timeout': 960,
          'shards': 2,
        },
        'merge': {
          'args': [
            '--smoke-test-mode',
          ],
          'script': '//tools/perf/process_perf_results.py',
        },
        'resultdb': {
          'enable': True,
        },
      },
    },

    'pixel_browser_tests_gtests': {
      'pixel_browser_tests': {
        'name': 'pixel_browser_tests',
        'args': [
          '--browser-ui-tests-verify-pixels',
          '--enable-pixel-output-in-tests',
          '--test-launcher-filter-file=../../testing/buildbot/filters/pixel_tests.filter',
          '--test-launcher-jobs=1',
        ],
        'swarming': {
          'shards': 3,
        },
        'test': 'browser_tests',
        'mixins': [
          'skia_gold_test',
        ],
      },
      'pixel_interactive_ui_tests': {
        'name': 'pixel_interactive_ui_tests',
        'args': [
          '--browser-ui-tests-verify-pixels',
          '--enable-pixel-output-in-tests',
          '--test-launcher-filter-file=../../testing/buildbot/filters/pixel_tests.filter',
        ],
        'test': 'interactive_ui_tests',
        'mixins': [
          'skia_gold_test',
        ],
      },
    },

    'pixel_experimental_browser_tests_gtests': {
      'pixel_experimental_browser_tests': {
        'name': 'pixel_experimental_browser_tests',
        'args': [
          '--browser-ui-tests-verify-pixels',
          '--enable-pixel-output-in-tests',
          '--test-launcher-filter-file=../../testing/buildbot/filters/linux-chromeos.browser_tests.pixel_tests.filter',
        ],
        'experiment_percentage': 100,
        'test': 'browser_tests',
        'mixins': [
          'skia_gold_test',
        ],
      },
    },

    'private_code_failure_test_isolated_scripts': {
      'private_code_failure_test': {}
    },

    # TODO(dpranke): These are run on the p/chromium waterfall; they should
    # probably be run on other builders, and we should get rid of the p/chromium
    # waterfall.
    'public_build_scripts': {
      'checkbins': {
        'script': 'checkbins.py',
      },
    },

    'pytype_tests': {
      'blink_pytype': {
        'mixins': [
          'has_native_resultdb_integration',
        ],
      },
      'fuchsia_pytype': {
        'mixins': [
          'has_native_resultdb_integration',
        ],
      },
      'gold_common_pytype': {
        'mixins': [
          'has_native_resultdb_integration',
        ],
      },
      'gpu_pytype': {
        'mixins': [
          'has_native_resultdb_integration',
        ],
      },
      'testing_pytype': {
        'mixins': [
          'has_native_resultdb_integration',
        ],
      },
    },

    # Rust tests run on all targets.
    'rust_common_gtests': {
      'base_unittests': {},
      'mojo_rust_integration_unittests': {},
      'mojo_rust_unittests': {},
      'rust_gtest_interop_unittests': {},
      'test_cpp_including_rust_unittests': {
        'swarming': {},
        'test': 'test_cpp_including_rust_unittests',
      },
      'test_serde_json_lenient': {
        'swarming': {},
        'test': 'test_serde_json_lenient',
      },
    },

    'rust_native_tests': {
      'build_rust_tests': {
        'swarming': {},
        'test': 'build_rust_tests',
      },
    },

    # Some Rust-related tooling is itself written in Rust. These tools are only
    # run on build hosts.
    'rust_tooling_gtests': {
      'gnrt_unittests': {},
    },

    'site_isolation_android_fyi_gtests': {
      'site_per_process_android_browsertests': {
        'args': [
          '--site-per-process',
        ],
        'swarming': {
          'shards': 1,
        },
        'test': 'android_browsertests',
      },
      'site_per_process_chrome_public_test_apk': {
        'args': [
          '--site-per-process',
        ],
        'swarming': {
          'shards': 20,
        },
        'mixins': [
          'skia_gold_test',
          'has_native_resultdb_integration',
        ],
        'test': 'chrome_public_test_apk',
      },
      'site_per_process_chrome_public_unit_test_apk': {
        'args': [
          '--site-per-process',
        ],
        'mixins': [
          'skia_gold_test',
        ],
        'test': 'chrome_public_unit_test_apk',
      },
      'site_per_process_components_browsertests': {
        'args': [
          '--site-per-process',
        ],
        'test': 'components_browsertests',
      },
      'site_per_process_components_unittests': {
        'args': [
          '--site-per-process',
        ],
        'swarming': {
          'shards': 5,
        },
        'test': 'components_unittests',
      },
      'site_per_process_content_browsertests': {
        'args': [
          '--site-per-process',
          '--test-launcher-filter-file=../../testing/buildbot/filters/site_isolation_android.content_browsertests.filter',

        ],
        'swarming': {
          'shards': 10,
        },
        'test': 'content_browsertests',
      },
      'site_per_process_content_shell_test_apk': {
        'args': [
          '--site-per-process',
        ],
        'swarming': {
          'shards': 3,
        },
        'test': 'content_shell_test_apk',
      },
      'site_per_process_content_unittests': {
        'args': [
          '--site-per-process'
        ],
        'test': 'content_unittests',
      },
      'site_per_process_unit_tests': {
        'args': [
          '--site-per-process'
        ],
        'swarming': {
          'shards': 10,
        },
        'test': 'unit_tests',
      },
    },

    'swangle_gtests': {
      'angle_deqp_egl_tests': {
        'args': [
          '--use-angle=swiftshader',
        ],
        'use_isolated_scripts_api': True,
      },
      'angle_deqp_gles2_tests': {
        'args': [
          '--use-angle=swiftshader',
        ],
        'use_isolated_scripts_api': True,
      },
      'angle_deqp_gles31_rotate180_tests': {
        'args': [
          '--use-angle=swiftshader',
        ],
        'use_isolated_scripts_api': True,
      },
      'angle_deqp_gles31_rotate270_tests': {
        'args': [
          '--use-angle=swiftshader',
        ],
        'use_isolated_scripts_api': True,
      },
      'angle_deqp_gles31_rotate90_tests': {
        'args': [
          '--use-angle=swiftshader',
        ],
        'use_isolated_scripts_api': True,
      },
      'angle_deqp_gles31_tests': {
        'args': [
          '--use-angle=swiftshader',
        ],
        'swarming': {
          'shards': 10,
        },
        'use_isolated_scripts_api': True,
      },
      'angle_deqp_gles3_rotate180_tests': {
        'args': [
          '--use-angle=swiftshader',
        ],
        'use_isolated_scripts_api': True,
      },
      'angle_deqp_gles3_rotate270_tests': {
        'args': [
          '--use-angle=swiftshader',
        ],
        'use_isolated_scripts_api': True,
      },
      'angle_deqp_gles3_rotate90_tests': {
        'args': [
          '--use-angle=swiftshader',
        ],
        'use_isolated_scripts_api': True,
      },
      'angle_deqp_gles3_tests': {
        'args': [
          '--use-angle=swiftshader',
        ],
        'swarming': {
          'shards': 4,
        },
        'use_isolated_scripts_api': True,
      },
      'angle_deqp_khr_gles2_tests': {
        'args': [
          '--use-angle=swiftshader',
        ],
        'use_isolated_scripts_api': True,
      },
      'angle_deqp_khr_gles31_tests': {
        'args': [
          '--use-angle=swiftshader',
        ],
        'use_isolated_scripts_api': True,
      },
      'angle_deqp_khr_gles3_tests': {
        'args': [
          '--use-angle=swiftshader',
        ],
        'use_isolated_scripts_api': True,
      },
      'angle_end2end_tests': {
        'args': [
          '--gtest_filter=*Vulkan_SwiftShader*',
        ],
        'use_isolated_scripts_api': True,
      },
    },

    'system_webview_shell_instrumentation_tests': {
      'system_webview_shell_layout_test_apk': {},
    },

    'system_webview_wpt': {
      'system_webview_wpt': {
        'args': [
          '--no-wpt-internal',
        ],
        'swarming': {
          'shards': 25,
          'expiration': 18000,
          'hard_timeout': 14400,
        },
        'merge': {
          'args': [
            '--verbose',
          ],
          'script': '//third_party/blink/tools/merge_web_test_results.py',
        },
        'results_handler': 'layout tests',
      },
    },

    'telemetry_android_minidump_unittests_isolated_scripts': {
      'telemetry_chromium_minidump_unittests': {
        'args': [
          'BrowserMinidumpTest',
          '--browser=android-chromium',
          '-v',
          '--passthrough',
          '--retry-limit=2',
        ],
        'isolate_name': 'telemetry_perf_unittests_android_chrome',
        'resultdb': {
          'enable': True,
        },
        'mixins': [
          'disable_check_flakiness_web_tests',
        ],
      },
      'telemetry_monochrome_minidump_unittests': {
        'args': [
          'BrowserMinidumpTest',
          '--browser=android-chromium-monochrome',
          '-v',
          '--passthrough',
          '--retry-limit=2',
        ],
        'isolate_name': 'telemetry_perf_unittests_android_monochrome',
        'resultdb': {
          'enable': True,
        },
      },
    },

    'telemetry_desktop_minidump_unittests_isolated_scripts': {
      # Takes ~2.5 minutes of bot time to run.
      'telemetry_desktop_minidump_unittests': {
        'args': [
          'BrowserMinidumpTest',
          '-v',
          '--passthrough',
          '--retry-limit=2',
        ],
        'isolate_name': 'telemetry_perf_unittests',
        'resultdb': {
          'enable': True,
        },
        'mixins': [
          'disable_check_flakiness_web_tests',
        ],
      },
    },

    'telemetry_perf_unittests_isolated_scripts': {
      'telemetry_perf_unittests': {
        'args': [
          # TODO(crbug.com/1077284): Remove this once Crashpad is the default.
          '--extra-browser-args=--enable-crashpad',
        ],
        'swarming': {
          'idempotent': False,  # https://crbug.com/549140
          'shards': 12,
        },
        'resultdb': {
          'enable': True,
        },
      },
    },

    'telemetry_perf_unittests_isolated_scripts_android': {
      'telemetry_perf_unittests': {
        'isolate_name': 'telemetry_perf_unittests_android_chrome',
        'args': [
          # TODO(crbug.com/1077284): Remove this once Crashpad is the default.
          '--extra-browser-args=--enable-crashpad',
        ],
        'swarming': {
          'idempotent': False,  # https://crbug.com/549140
          'shards': 12,
        },
        'resultdb': {
          'enable': True,
        },
      },
    },

    'telemetry_perf_unittests_isolated_scripts_xvfb': {
      'telemetry_perf_unittests': {
        'args': [
          # TODO(crbug.com/1077284): Remove this once Crashpad is the default.
          '--extra-browser-args=--enable-crashpad',
          '--xvfb',
        ],
        'swarming': {
          'idempotent': False,  # https://crbug.com/549140
          'shards': 12,
        },
        'resultdb': {
          'enable': True,
        },
      },
    },

    'test_buildbucket_api_gpu_use_cases': {
      'test_buildbucket_api_gpu_use_cases': {},
    },

    'test_traffic_annotation_auditor_script': {
      'test_traffic_annotation_auditor': {
        'hard_timeout': 14400,
        'io_timeout': 14400,
        'script': 'test_traffic_annotation_auditor.py',
      },
    },

    'updater_gtests_linux': {
      'updater_tests': {
        'mixins': [
          'updater-default-pool',
        ],
      },
      # 'updater_tests_system' is not yet supported on Linux.
    },

    'updater_gtests_mac': {
      'updater_tests': {
        'mixins': [
          'updater-default-pool',
        ],
      },
      'updater_tests_system': {
        'mixins': [
          'updater-mac-pool',
        ],
      },
    },

    'updater_gtests_win': {
      'updater_tests': {
        'mixins': [
          'integrity_high',
          'updater-default-pool',
        ],
      },
      'updater_tests_system': {
        'mixins': [
          'integrity_high',
          'updater-default-pool',
        ],
      },
    },

    'updater_gtests_win_uac': {
      'updater_tests_system': {
        'mixins': [
          'integrity_high',
          'updater-win-uac-pool',
        ],
      },
      'updater_tests_win_uac': {
        'mixins': [
          'updater-win-uac-pool',
        ],
      },
    },

    'upload_perfetto': {
      'upload_trace_processor': {},
    },

    'variations_smoke_tests': {
      'variations_smoke_tests': {
        'isolate_name': 'variations_smoke_tests',
        'mixins': [
          'skia_gold_test',
        ],
        'resultdb': {
          'enable': True,
          'result_format': 'single'
        },
      },
    },

    # Not applicable for android x86 & x64 since the targets here assert
    # "enable_vr" in GN which is only true for android arm & arm64.
    # For details, see the following files:
    #  * //chrome/android/BUILD.gn
    #  * //chrome/browser/android/vr/BUILD.gn
    #  * //device/vr/buildflags/buildflags.gni
    'vr_android_specific_chromium_tests': {
      'chrome_public_test_vr_apk': {
        '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': {
          'shards': 2,
        },
      },
      'vr_android_unittests': {},
    },

    'vr_platform_specific_chromium_gtests': {
      # Only run on platforms that intend to support WebVR in the near
      # future.
      'vr_common_unittests': {},
    },

    'vulkan_swiftshader_isolated_scripts': {
      'vulkan_swiftshader_blink_web_tests': {
        # layout test failures are retried 3 times when '--test-list' is not
        # passed, but 0 times when '--test-list' is passed. We want to always
        # retry 3 times, so we explicitly specify it.
        'args': [
          '--num-retries=3',
          '--skipped=always',
          '--flag-specific=skia-vulkan-swiftshader',
        ],
        'isolate_name': 'blink_web_tests',
        'merge': {
          'args': [
            '--verbose',
          ],
          'script': '//third_party/blink/tools/merge_web_test_results.py',
        },
        'mixins': [
          'blink_tests_write_run_histories',
          # TODO(crbug.com/1327314): Enable for blink web tests.
          'disable_check_flakiness_web_tests',
          'skia_gold_test',
        ],
        'resultdb': {
          'enable': True,
        },
        'results_handler': 'layout tests',
      },
    },

    'web_engine_gtests': {
      'cast_runner_browsertests': {},
      'cast_runner_integration_tests': {},
      'cast_runner_unittests': {},
      'web_engine_browsertests': {},
      'web_engine_integration_tests': {
        'args': [
          '--test-arg=--vmodule=test_navigation_listener=1',
        ],
      },
      'web_engine_unittests': {},
    },

    'webengine_android_gtests': {
      'webengine_support_instrumentation_test_apk': {},
      'weblayer_browsertests': {},
    },

    'webrtc_chromium_baremetal_gtests': {
      # Run capture unittests on bots that have real webcams.
      'capture_unittests': {
        'args': ['--enable-logging', '--v=1', '--test-launcher-jobs=1',
                 '--test-launcher-print-test-stdio=always'],
        'swarming': {
          'dimension_sets': [
            {
              'pool': 'WebRTC-chromium',
            }
          ],
        },
      },
    },

    'webrtc_chromium_gtests': {
      'browser_tests': {
        'args': [
          '--gtest_filter=WebRtcStatsPerfBrowserTest.*:'
           'WebRtcVideoDisplayPerfBrowserTests*:'
           'WebRtcVideoQualityBrowserTests*:'
           'WebRtcVideoHighBitrateBrowserTest*:'
           'WebRtcWebcamBrowserTests*',
          '--run-manual',
          '--ui-test-action-max-timeout=300000',
          '--test-launcher-timeout=350000',
          '--test-launcher-jobs=1',
          '--test-launcher-bot-mode',
          '--test-launcher-print-test-stdio=always',
        ],
      },
      # TODO(b/246519185) - Py3 incompatible, decide if to keep test.:
      #'browser_tests_apprtc': {
      #  'args': ['--gtest_filter=WebRtcApprtcBrowserTest.*',
      #           '--run-manual', '--test-launcher-jobs=1'],
      #},
      'browser_tests_functional': {
        'args': [
          '--test-launcher-filter-file=../../testing/buildbot/filters/webrtc_functional.browser_tests.filter',
          '--run-manual', '--test-launcher-jobs=1'],
        'test': 'browser_tests',
      },
      'content_browsertests': {
        # Run all normal WebRTC content_browsertests. This is mostly so
        # the FYI bots can detect breakages.
        'args': ['--gtest_filter=WebRtc*'],
      },
      'content_browsertests_sequential': {
        # These run a few tests on fake webcams. They need to run sequentially,
        # otherwise tests may interfere with each other.
        'args': ['--gtest_filter=UsingRealWebcam*', '--run-manual',
                 '--test-launcher-jobs=1'],
        'test': 'content_browsertests',
      },
      'content_browsertests_stress': {
        'args': ['--gtest_filter=WebRtc*MANUAL*:-UsingRealWebcam*',
                 '--run-manual', '--ui-test-action-max-timeout=110000',
                 '--test-launcher-timeout=120000'],
        'test': 'content_browsertests',
      },
      'content_unittests': {
        'args': [
          '--test-launcher-filter-file=../../testing/buildbot/filters/webrtc.content_unittests.filter',
        ],
      },
      'remoting_unittests': {
        'args': ['--gtest_filter=Webrtc*'],
      },
    },

    'webrtc_chromium_simple_gtests': {
      'content_browsertests': {
        'args': ['--gtest_filter=WebRtc*'],
      },
      'content_browsertests_sequential': {
        # These run a few tests on fake webcams. They need to run sequentially,
        # otherwise tests may interfere with each other.
        'args': ['--gtest_filter=UsingRealWebcam*', '--run-manual',
                 '--test-launcher-jobs=1'],
        'test': 'content_browsertests',
      },
    },

    'webrtc_chromium_wpt_tests': {
      'blink_wpt_tests': {
        # layout test failures are retried 3 times when '--test-list' is not
        # passed, but 0 times when '--test-list' is passed. We want to always
        # retry 3 times, so we explicitly specify it.
        'args': [
          '--num-retries=3',
          '-t',
          'Release',
          'external/wpt/webrtc',
          'external/wpt/webrtc-svc',
        ],
        'isolate_name': 'blink_wpt_tests',
        'merge': {
          'args': [
            '--verbose',
          ],
          'script': '//third_party/blink/tools/merge_web_test_results.py',
        },
        'mixins': [
          'blink_tests_write_run_histories',
          # TODO(crbug.com/1327314): Enable for blink web tests.
          'disable_check_flakiness_web_tests',
          'skia_gold_test',
        ],
        'resultdb': {
          'enable': True,
        },
        'results_handler': 'layout tests',
      },
    },

    'webview_64_cts_tests_gtest': {
      'webview_64_cts_tests': {
        'swarming': {
          'shards': 2,
          'cipd_packages': [
            {
              "cipd_package": 'chromium/android_webview/tools/cts_archive',
              'location': 'android_webview/tools/cts_archive',
              'revision': 'D9ziv4Z61qHwterMTFEoPeCZzFNyUfMnWAlYuxEKlM8C',
            }
          ]
        },
      },
    },

    'webview_bot_instrumentation_test_apk_gtest': {
      'webview_instrumentation_test_apk': {
        'swarming': {
          'shards': 12,
        },
      },
    },

    'webview_bot_instrumentation_test_apk_no_field_trial_gtest': {
      'webview_instrumentation_test_apk_no_field_trial': {
        'args': ['--disable-field-trials'],
        'swarming': {
          'shards': 12,
        },
        'test': 'webview_instrumentation_test_apk',
      },
    },

    'webview_bot_unittests_gtest': {
      'android_webview_unittests': {},
    },

    'webview_cts_tests_gtest': {
      'webview_cts_tests': {
        'swarming': {
          'shards': 2,
          'cipd_packages': [
            {
              "cipd_package": 'chromium/android_webview/tools/cts_archive',
              'location': 'android_webview/tools/cts_archive',
              'revision': 'D9ziv4Z61qHwterMTFEoPeCZzFNyUfMnWAlYuxEKlM8C',
            }
          ]
        },
      },
    },

    'webview_cts_tests_gtest_no_field_trial': {
      'webview_cts_tests_no_field_trial': {
        'args': [
          '--disable-field-trial-config',
        ],
        'swarming': {
          'shards': 2,
          'cipd_packages': [
            {
              "cipd_package": 'chromium/android_webview/tools/cts_archive',
              'location': 'android_webview/tools/cts_archive',
              'revision': 'D9ziv4Z61qHwterMTFEoPeCZzFNyUfMnWAlYuxEKlM8C',
            }
          ]
        },
        'test': 'webview_cts_tests',
      },
    },

    'webview_trichrome_64_cts_tests': {
      'webview_trichrome_64_cts_tests': {
        'swarming': {
          'shards': 2,
          'cipd_packages': [
            {
              'cipd_package': 'chromium/android_webview/tools/cts_archive',
              'location': 'android_webview/tools/cts_archive',
              'revision': 'D9ziv4Z61qHwterMTFEoPeCZzFNyUfMnWAlYuxEKlM8C',
            }
          ]
        },
      },
    },

    'webview_trichrome_64_cts_tests_no_field_trial': {
      'webview_trichrome_64_cts_tests_no_field_trial': {
        'args': [
          '--disable-field-trial-config',
        ],
        'swarming': {
          'shards': 2,
          'cipd_packages': [
            {
              "cipd_package": 'chromium/android_webview/tools/cts_archive',
              'location': 'android_webview/tools/cts_archive',
              'revision': 'D9ziv4Z61qHwterMTFEoPeCZzFNyUfMnWAlYuxEKlM8C',
            }
          ]
        },
        'test': 'webview_trichrome_64_cts_tests',
      },
    },

    'webview_trichrome_cts_tests': {
      'webview_trichrome_cts_tests': {
        'swarming': {
          'cipd_packages': [
            {
              'cipd_package': 'chromium/android_webview/tools/cts_archive',
              'location': 'android_webview/tools/cts_archive',
              'revision': 'D9ziv4Z61qHwterMTFEoPeCZzFNyUfMnWAlYuxEKlM8C',
            }
          ]
        },
      },
    },

    'webview_ui_instrumentation_tests': {
      'webview_ui_test_app_test_apk': {},
    },

    'webview_ui_instrumentation_tests_no_field_trial': {
      'webview_ui_test_app_test_apk_no_field_trial': {
        'args': [
          '--disable-field-trial-config',
        ],
        'test': 'webview_ui_test_app_test_apk',
      },
    },

    'win_specific_chromium_gtests': {
      'chrome_cleaner_unittests': {},
      'chrome_elf_unittests': {},
      'courgette_unittests': {},
      'delayloads_unittests': {},
      'elevation_service_unittests': {},
      'gcp_unittests': {},
      'install_static_unittests': {},
      'installer_util_unittests': {
        'swarming': {
          'dimension_sets': [
            {
              'integrity': 'high',
            }
          ],
        },
      },
      'notification_helper_unittests': {},
      'sbox_integration_tests': {
        'swarming': {
          'dimension_sets': [
            {
              'integrity': 'high',
            }
          ],
        },
      },
      'sbox_unittests': {},
      'sbox_validation_tests': {},
      'setup_unittests': {
        'swarming': {
          'dimension_sets': [
            {
              'integrity': 'high',
            }
          ],
        },
      },
      'updater_tests': {},
      'updater_tests_system': {},
      'zucchini_unittests': {},
    },

    'win_specific_isolated_scripts': {
      'mini_installer_tests': {
        'swarming': {
          'dimension_sets': [
            {
              'integrity': 'high',
            }
          ],
        },
      },
      'polymer_tools_python_unittests': {
        'experiment_percentage': 0,
      },
    },

    'win_specific_xr_perf_tests': {
      'xr.webxr.static': {
        'args': [
          '--benchmarks=xr.webxr.static',
          '-v',
          '--upload-results',
          '--output-format=histograms',
          '--browser=release_x64',
        ],
        'isolate_name': 'vr_perf_tests',
        'merge': {
          'script': '//tools/perf/process_perf_results.py',
        },
        'name': 'xr.webxr.static',
        # Experimental until we're sure these are stable.
        'experiment_percentage': 100,
      }
    },

    'wpt_tests_ios': {
      'wpt_tests_ios': {
        'args': [
          '--log-wptreport',
          '--no-wpt-internal',
        ],
        'merge': {
          'args': [
            '--verbose',
          ],
          'script': '//third_party/blink/tools/merge_web_test_results.py',
        },
        'results_handler': 'layout tests',
        'swarming': {
          'shards': 36,
          'expiration': 18000,
          'hard_timeout': 14400,
        },
        'experiment_percentage': 100,
      },
    },

    'wpt_web_tests': {
      'wpt_tests_suite': {
        'args': [
          '--log-wptreport',
        ],
        'merge': {
          'args': [
            '--verbose',
          ],
          'script': '//third_party/blink/tools/merge_web_test_results.py',
        },
        'isolate_name': 'wpt_tests_isolate',
        'results_handler': 'layout tests',
        'swarming': {
          'shards': 15,
        },
      },
    },

    'wpt_web_tests_content_shell': {
      'wpt_tests_suite': {
        'args': [
          '--log-wptreport',
          '--xvfb'
        ],
        'merge': {
          'args': [
            '--verbose',
          ],
          'script': '//third_party/blink/tools/merge_web_test_results.py',
        },
        'isolate_name': 'wpt_tests_isolate_content_shell',
        'results_handler': 'layout tests',
        'swarming': {
          'shards': 15,
        },
      },
    },

    'wpt_web_tests_enable_leak_detection': {
      'wpt_tests_suite': {
        'args': [
          '--log-wptreport',
          '--xvfb',
          '--enable-leak-detection',
        ],
        'merge': {
          'args': [
            '--verbose',
          ],
          'script': '//third_party/blink/tools/merge_web_test_results.py',
        },
        'isolate_name': 'wpt_tests_isolate_content_shell',
        'results_handler': 'layout tests',
        'swarming': {
          'shards': 15,
        },
        'experiment_percentage': 100,
      },
    },

    'wpt_web_tests_highdpi': {
      'wpt_tests_suite_highdpi': {
        'args': [
          '--log-wptreport',
          '--xvfb',
          '--flag-specific',
          'highdpi',
        ],
        'merge': {
          'args': [
            '--verbose',
          ],
          'script': '//third_party/blink/tools/merge_web_test_results.py',
        },
        'isolate_name': 'wpt_tests_isolate_content_shell',
        'results_handler': 'layout tests',
        'swarming': {
          'shards': 3,
        },
      },
    },

    'wpt_web_tests_identity': {
      'wpt_tests_suite': {
        'args': [
          '--no-wpt-internal',
          'webauthn/',
        ],
        'merge': {
          'args': [
            '--verbose',
          ],
          'script': '//third_party/blink/tools/merge_web_test_results.py',
        },
        'isolate_name': 'wpt_tests_isolate',
        'results_handler': 'layout tests',
        'swarming': {
          'shards': 1,
        },
      },
    },

    'wpt_web_tests_input': {
      'wpt_tests_suite': {
        'args': [
          '--no-wpt-internal',
          'infrastructure/testdriver/actions/',
          'input-events/',
          'pointerevents/',
          'touch-events/',
          'uievents/',
        ],
        'merge': {
          'args': [
            '--verbose',
          ],
          'script': '//third_party/blink/tools/merge_web_test_results.py',
        },
        'isolate_name': 'wpt_tests_isolate',
        'results_handler': 'layout tests',
        'swarming': {
          'shards': 1,
        },
        'experiment_percentage': 100,
      },
    },

    'wpt_web_tests_not_site_per_process': {
      'wpt_tests_suite_not_site_per_process': {
        'args': [
          '--child-processes=8',
          '--log-wptreport',
          '--xvfb',
          '--flag-specific',
          'disable-site-isolation-trials',
        ],
        'merge': {
          'args': [
            '--verbose',
          ],
          'script': '//third_party/blink/tools/merge_web_test_results.py',
        },
        'isolate_name': 'wpt_tests_isolate_content_shell',
        'results_handler': 'layout tests',
        'swarming': {
          'shards': 10,
        },
      },
    },
  },

  ##############################################################################
  # Compound test suites.                                                      #
  ##############################################################################

  'compound_suites': {
    'android_10_rel_gtests': [
      'android_trichrome_smoke_tests',
      'android_ar_gtests',
      'android_ddready_vr_gtests',
    ],

    'android_12_dbg_emulator_gtests': [
      'android_trichrome_smoke_tests',
    ],

    'android_marshmallow_gtests': [
      'android_smoke_tests',
      'android_specific_chromium_gtests',  # Already includes gl_gtests.
      'chromium_gtests',
      'chromium_gtests_for_devices_with_graphical_output',
      'chrome_public_tests',
      'linux_flavor_specific_chromium_gtests',
      'vr_android_specific_chromium_tests',
      'vr_platform_specific_chromium_gtests',
      'webengine_android_gtests',
    ],

    'android_nougat_emulator_gtests': [
      'android_emulator_specific_chrome_public_tests',
      'android_monochrome_smoke_tests',
      'android_smoke_tests',
      'android_specific_chromium_gtests',  # Already includes gl_gtests.
      'android_wpr_record_replay_tests',
      'chromium_gtests',
      'chromium_gtests_for_devices_with_graphical_output',
      'linux_flavor_specific_chromium_gtests',
      'system_webview_shell_instrumentation_tests', # Not an experimental test
      'webengine_android_gtests',
      'webview_cts_tests_gtest',
      'webview_ui_instrumentation_tests',
    ],

    'android_nougat_gtests': [
      'android_ar_gtests',
      'android_ddready_vr_gtests',
      'android_monochrome_smoke_tests',
      'android_smoke_tests',
    ],

    'android_oreo_gtests': [
      'android_ar_gtests',
      'android_ddready_vr_gtests',
      'android_monochrome_smoke_tests',
      'android_oreo_standard_gtests',
      'android_smoke_tests',
    ],

    'android_pie_coverage_instrumentation_tests': [
      'android_smoke_tests',
      'android_specific_coverage_java_tests',
      'chrome_public_tests',
      'vr_android_specific_chromium_tests',
      'webview_ui_instrumentation_tests',
      'webengine_android_gtests',
    ],

    'android_pie_gtests': [
      'android_ar_gtests',
      'android_ddready_vr_gtests',
      'android_monochrome_smoke_tests',
      'android_pagecontroller_self_tests',
      'android_smoke_tests',
      'chromium_tracing_gtests',
      # No standard tests due to capacity, no Vega tests since it's currently
      # O only.
    ],

     # Keep in sync with android_pie_rel_gtests below, except for
     # vr_{android,platform}_specific_chromium_gtests which are not applicable
     # to android emulators on x86 & x64.
    'android_pie_rel_emulator_gtests': [
      'android_emulator_specific_chrome_public_tests',
      'android_monochrome_smoke_tests',
      'android_pagecontroller_self_tests',
      'android_smoke_tests',
      'android_specific_chromium_gtests',  # Already includes gl_gtests.
      'chromium_gtests',
      'chromium_gtests_for_devices_with_graphical_output',
      'linux_flavor_specific_chromium_gtests',
      'system_webview_shell_instrumentation_tests', # Not an experimental test
      'webview_cts_tests_gtest',
      'webview_ui_instrumentation_tests',
      'webengine_android_gtests',
    ],

    'android_pie_rel_gtests': [
      # TODO(crbug.com/1111436): Deprecate this when all the test suites below
      # it are re-enabled.
      'android_pie_rel_reduced_capacity_gtests',

      'android_monochrome_smoke_tests',
      'android_pagecontroller_self_tests',
      'android_smoke_tests',
    #   'android_specific_chromium_gtests',  # Already includes gl_gtests.
    #   'chromium_gtests',
    #   'chromium_gtests_for_devices_with_graphical_output',
      'chrome_public_tests',
    #   'linux_flavor_specific_chromium_gtests',
      'system_webview_shell_instrumentation_tests',
    #   'vr_android_specific_chromium_tests',
    #   'vr_platform_specific_chromium_gtests',
      'webview_64_cts_tests_gtest',
      'webview_ui_instrumentation_tests',
      'webengine_android_gtests',
    ],

    'backuprefptr_gtests': [
      'backuprefptr_generic_gtests',
    ],

    'bfcache_android_gtests': [
      'bfcache_android_specific_gtests',
      'bfcache_generic_gtests',
    ],

    'bfcache_linux_gtests': [
      'bfcache_generic_gtests',
      'bfcache_linux_specific_gtests',
    ],

    'chrome_linux_isolated_script_tests': [
      'chrome_isolated_script_tests',
      'chrome_private_code_test_isolated_scripts',
    ],

    'chromeos_device_gtests': [
      'chromeos_browser_all_tast_tests',
      'chromeos_browser_integration_tests',
      'chromeos_device_only_gtests',
    ],

    'chromeos_device_no_gtests': [
      'chromeos_browser_all_tast_tests',
      'chromeos_browser_integration_tests',
    ],

    'chromeos_vm_gtests': [
      'chromeos_browser_all_tast_tests',
      'chromeos_browser_integration_tests',
      'chromeos_system_friendly_gtests',
    ],

    'chromium_android_gtests': [
      'android_smoke_tests',
      'android_specific_chromium_gtests',  # Already includes gl_gtests.
      'chromium_gtests',
      'chromium_gtests_for_devices_with_graphical_output',
      'chrome_public_tests',
      'linux_flavor_specific_chromium_gtests',
      'vr_android_specific_chromium_tests',
      'vr_platform_specific_chromium_gtests',
    ],

    'chromium_dbg_isolated_scripts': [
      'desktop_chromium_isolated_scripts',
      'performance_smoke_test_isolated_scripts',
      'telemetry_perf_unittests_isolated_scripts',
    ],

    # This is meant to be a superset of 'chromium_linux_and_gl_gtests'. Any
    # changes there must be reflected here.
    'chromium_linux_and_gl_and_vulkan_gtests': [
      'aura_gtests',
      'chromium_gtests',
      'chromium_gtests_for_devices_with_graphical_output',
      'chromium_gtests_for_linux_and_chromeos_only',
      'chromium_gtests_for_linux_and_mac_only',
      'chromium_gtests_for_linux_only',
      'chromium_gtests_for_win_and_linux_only',
      'linux_flavor_specific_chromium_gtests',
      'linux_specific_xr_gtests',
      'gl_gtests_passthrough',
      'gpu_fyi_vulkan_swiftshader_gtests',
      'non_android_and_cast_and_chromeos_chromium_gtests',
      'non_android_chromium_gtests',
      'vr_platform_specific_chromium_gtests',
    ],

    # gl_tests requires dedicated slaves with GPUs on linux, so have a separate
    # test list with gl_tests included. This is chromium_linux_gtests + gl_gtests.
    'chromium_linux_and_gl_gtests': [
      'aura_gtests',
      'chromium_gtests',
      'chromium_gtests_for_devices_with_graphical_output',
      'chromium_gtests_for_linux_and_chromeos_only',
      'chromium_gtests_for_linux_and_mac_only',
      'chromium_gtests_for_linux_only',
      'chromium_gtests_for_win_and_linux_only',
      'linux_flavor_specific_chromium_gtests',
      'linux_specific_xr_gtests',
      'gl_gtests_passthrough',
      'non_android_and_cast_and_chromeos_chromium_gtests',
      'non_android_chromium_gtests',
      'vr_platform_specific_chromium_gtests',
    ],

    'chromium_linux_blink_rel_isolated_scripts': [
      'chromium_webkit_isolated_scripts',
      'linux_specific_chromium_isolated_scripts',
      'vulkan_swiftshader_isolated_scripts',
      'chromium_web_tests_high_dpi_isolated_scripts',
    ],

    'chromium_linux_cast_audio_gtests': [
      'cast_audio_specific_chromium_gtests',
      'chromium_gtests',
      'linux_flavor_specific_chromium_gtests',
    ],

    'chromium_linux_cast_video_gtests': [
      'cast_audio_specific_chromium_gtests',
      'cast_video_specific_chromium_gtests',
      'chromium_gtests',
      'linux_flavor_specific_chromium_gtests',
    ],

    'chromium_linux_dbg_isolated_scripts': [
      'desktop_chromium_isolated_scripts',
      'linux_specific_chromium_isolated_scripts',
      'telemetry_perf_unittests_isolated_scripts',
    ],

    # When changing something here, change chromium_linux_and_gl_gtests,
    # chromium_linux_and_gl_and_vulkan_gtests, linux_ozone_x11_ci_tests and
    # linux_ozone_wayland_ci_tests in the same way.
    'chromium_linux_gtests': [
      'aura_gtests',
      'chromium_gtests',
      'chromium_gtests_for_devices_with_graphical_output',
      'chromium_gtests_for_linux_and_chromeos_only',
      'chromium_gtests_for_linux_and_mac_only',
      'chromium_gtests_for_linux_only',
      'chromium_gtests_for_win_and_linux_only',
      'linux_flavor_specific_chromium_gtests',
      'linux_specific_xr_gtests',
      'non_android_and_cast_and_chromeos_chromium_gtests',
      'non_android_chromium_gtests',
      'vr_platform_specific_chromium_gtests',
    ],

    'chromium_linux_rel_isolated_scripts': [
      'chromedriver_py_tests_isolated_scripts',
      'desktop_chromium_isolated_scripts',
      'linux_specific_chromium_isolated_scripts',
      'mojo_python_unittests_isolated_scripts',
      'pytype_tests',
      'telemetry_perf_unittests_isolated_scripts',
      'vulkan_swiftshader_isolated_scripts',
      'chromium_web_tests_high_dpi_isolated_scripts',
    ],

    'chromium_linux_rel_isolated_scripts_code_coverage': [
      'chromedriver_py_tests_isolated_scripts',
      'desktop_chromium_isolated_scripts',
      'linux_specific_chromium_isolated_scripts',
      'mojo_python_unittests_isolated_scripts',
      'pytype_tests',
      'telemetry_perf_unittests_isolated_scripts_xvfb',
      'vulkan_swiftshader_isolated_scripts',
      'chromium_web_tests_high_dpi_isolated_scripts',
      'gpu_dawn_webgpu_blink_web_tests',
    ],

    'chromium_mac_gtests': [
      'chromium_gtests',
      'chromium_gtests_for_devices_with_graphical_output',
      'chromium_gtests_for_linux_and_mac_only',
      'mac_specific_chromium_gtests',
      'nocompile_tests',
      'non_android_and_cast_and_chromeos_chromium_gtests',
      'non_android_chromium_gtests',
    ],

    'chromium_mac_gtests_no_nacl': [
      'chromium_gtests',
      'chromium_gtests_for_devices_with_graphical_output',
      'chromium_gtests_for_linux_and_mac_only',
      'mac_specific_chromium_gtests',
      'nocompile_tests',
      'non_android_and_cast_and_chromeos_chromium_gtests',
      'non_android_chromium_gtests_no_nacl',
    ],

    'chromium_mac_gtests_no_nacl_no_nocompile': [
      'chromium_gtests',
      'chromium_gtests_for_devices_with_graphical_output',
      'mac_specific_chromium_gtests',
      'non_android_and_cast_and_chromeos_chromium_gtests',
      'non_android_chromium_gtests_no_nacl',
    ],

    'chromium_mac_rel_isolated_scripts': [
      'chromedriver_py_tests_isolated_scripts',
      'components_perftests_isolated_scripts',
      'desktop_chromium_isolated_scripts',
      'mac_specific_isolated_scripts',
      'mojo_python_unittests_isolated_scripts',
      'telemetry_perf_unittests_isolated_scripts',
    ],

    'chromium_mac_rel_isolated_scripts_and_sizes': [
      'chrome_sizes',
      'chromedriver_py_tests_isolated_scripts',
      'components_perftests_isolated_scripts',
      'desktop_chromium_isolated_scripts',
      'mac_specific_isolated_scripts',
      'mojo_python_unittests_isolated_scripts',
      'telemetry_perf_unittests_isolated_scripts',
    ],

    'chromium_mac_rel_isolated_scripts_code_coverage': [
      # TODO(crbug.com/1399354): Enable gpu_dawn_webgpu_blink_web_tests
    ],

    # Pixel tests only enabled on Win 10. So this is
    # 'chromium_win_gtests' + 'pixel_browser_tests_gtests' +
    # 'non_android_chromium_gtests_skia_gold'.
    'chromium_win10_gtests': [
      'aura_gtests',
      'chromium_gtests',
      'chromium_gtests_for_devices_with_graphical_output',
      'chromium_gtests_for_win_and_linux_only',
      'non_android_and_cast_and_chromeos_chromium_gtests',
      'non_android_chromium_gtests',
      'non_android_chromium_gtests_skia_gold',
      'pixel_browser_tests_gtests',
      'vr_platform_specific_chromium_gtests',
      'win_specific_chromium_gtests',
    ],

    'chromium_win_dbg_isolated_scripts': [
      'chromedriver_py_tests_isolated_scripts',
      'components_perftests_isolated_scripts',
      'desktop_chromium_isolated_scripts',
      'performance_smoke_test_isolated_scripts',
      'telemetry_perf_unittests_isolated_scripts',
    ],

    'chromium_win_gtests': [
      'aura_gtests',
      'chromium_gtests',
      'chromium_gtests_for_devices_with_graphical_output',
      'chromium_gtests_for_win_and_linux_only',
      'non_android_and_cast_and_chromeos_chromium_gtests',
      'non_android_chromium_gtests',
      'vr_platform_specific_chromium_gtests',
      'win_specific_chromium_gtests',
    ],

    'chromium_win_rel_isolated_scripts': [
      'chromedriver_py_tests_isolated_scripts',
      'components_perftests_isolated_scripts',
      'desktop_chromium_isolated_scripts',
      'mojo_python_unittests_isolated_scripts',
      'telemetry_desktop_minidump_unittests_isolated_scripts',
      'telemetry_perf_unittests_isolated_scripts',
      'win_specific_isolated_scripts',
    ],

    'chromium_win_rel_isolated_scripts_code_coverage': [
      'gpu_dawn_webgpu_blink_web_tests',
    ],

    'cronet_dbg_isolated_scripts': [
      'cronet_sizes',
    ],

    'cronet_rel_isolated_scripts': [
      'cronet_resource_sizes',
      'cronet_sizes',
    ],

    'devtools_gtests': [
      'devtools_browser_tests',
      'blink_unittests',
    ],

    # Runs only the accessibility tests in CI/CQ to reduce accessibility
    # failures that land.
    'fuchsia_accessibility_browsertests': [
      'fuchsia_accessibility_content_browsertests',
    ],

    'fuchsia_arm64_isolated_scripts': [
      'fuchsia_sizes_tests',
      'gpu_angle_fuchsia_unittests_isolated_scripts',
    ],

    # All gtests that can be run on Fuchsia CI/CQ
    'fuchsia_gtests': [
      'fuchsia_chrome_small_gtests',
      'fuchsia_common_gtests',
      'fuchsia_common_gtests_with_graphical_output',
      'web_engine_gtests',
    ],

    'fuchsia_isolated_scripts': [
      'chromium_webkit_isolated_scripts',
      'gpu_angle_fuchsia_unittests_isolated_scripts'
    ],

    'fuchsia_web_engine_non_graphical_gtests': [
      'fuchsia_common_gtests',
      'web_engine_gtests',
    ],

    # BEGIN composition test suites used by the GPU bots

    'gpu_angle_linux_telemetry_tests': [
      'gpu_common_and_optional_telemetry_tests',
      'gpu_webgl2_conformance_gl_passthrough_telemetry_tests',
      'gpu_webgl_conformance_gl_passthrough_telemetry_tests',
    ],

    'gpu_angle_mac_passthrough_telemetry_tests': [
      'gpu_info_collection_telemetry_tests',
      'gpu_webgl2_conformance_gl_passthrough_telemetry_tests',
      'gpu_webgl2_conformance_metal_passthrough_telemetry_tests',
      'gpu_webgl_conformance_gl_passthrough_telemetry_tests',
      'gpu_webgl_conformance_metal_passthrough_telemetry_tests',
      'gpu_webgl_conformance_swangle_passthrough_representative_telemetry_tests',
    ],

    'gpu_angle_mac_telemetry_tests': [
      'gpu_info_collection_telemetry_tests',
      'gpu_webgl2_conformance_gl_passthrough_telemetry_tests',
      'gpu_webgl2_conformance_metal_passthrough_telemetry_tests',
      'gpu_webgl_conformance_gl_passthrough_telemetry_tests',
      'gpu_webgl_conformance_metal_passthrough_telemetry_tests',
      'gpu_webgl_conformance_swangle_passthrough_representative_telemetry_tests',
    ],

    'gpu_angle_win_intel_nvidia_telemetry_tests': [
      'gpu_info_collection_telemetry_tests',
      'gpu_webgl2_conformance_d3d11_passthrough_telemetry_tests',
      'gpu_webgl_conformance_d3d9_passthrough_telemetry_tests',
      'gpu_webgl_conformance_d3d11_passthrough_telemetry_tests',
      'gpu_webgl_conformance_vulkan_passthrough_telemetry_tests',
    ],

    'gpu_chromeos_telemetry_tests': [
      'gpu_webgl_conformance_telemetry_tests',
    ],

    'gpu_common_android_telemetry_tests': [
      'gpu_common_and_optional_telemetry_tests',
      'gpu_validating_telemetry_tests',
      'gpu_webgl_conformance_validating_telemetry_tests',
    ],

    'gpu_common_gl_passthrough_telemetry_tests': [
      'gpu_common_and_optional_telemetry_tests',
      'gpu_passthrough_telemetry_tests',
      'gpu_webgl_conformance_gl_passthrough_telemetry_tests',
    ],

    'gpu_common_linux_and_mac_telemetry_tests': [
      'gpu_common_and_optional_telemetry_tests',
      'gpu_passthrough_telemetry_tests',
      'gpu_webgl_conformance_telemetry_tests',
    ],

    'gpu_common_win_telemetry_tests': [
      'gpu_common_and_optional_telemetry_tests',
      'gpu_passthrough_telemetry_tests',
      'gpu_webgl_conformance_d3d11_passthrough_telemetry_tests',
    ],

    'gpu_dawn_android_isolated_scripts': [
      # Same as gpu_dawn_isolated_scripts, but with some suites removed:
      # * telemetry_gpu_unittests since those aren't built for Android
      # * SwiftShader-related tests since SwiftShader is not used on Android.
      'gpu_dawn_perf_smoke_isolated_scripts',
      'gpu_dawn_webgpu_blink_web_tests',
    ],

    'gpu_dawn_android_telemetry_tests': [
      # Same as gpu_dawn_telemetry_tests, but without SwiftShader tests since
      # SwiftShader is not used on Android.
      'gpu_dawn_webgpu_cts',
    ],

    'gpu_dawn_asan_isolated_scripts': [
      'gpu_dawn_common_isolated_scripts',
      'gpu_dawn_perf_smoke_isolated_scripts',
      'gpu_dawn_webgpu_blink_web_tests',
      'gpu_dawn_webgpu_blink_web_tests_force_swiftshader',
    ],

    'gpu_dawn_integration_asan_gtests_passthrough': [
      'gpu_dawn_gtests',
      'gpu_common_gtests_passthrough',
    ],

    # GPU gtests that test Dawn and integration with Chromium
    # These tests are run both on the CI and trybots which test DEPS Dawn.
    'gpu_dawn_integration_gtests_passthrough': [
      'gpu_dawn_gtests',
      'gpu_dawn_gtests_with_validation',
      'gpu_common_gtests_passthrough',
    ],

    'gpu_dawn_isolated_scripts': [
      'gpu_dawn_common_isolated_scripts',
      'gpu_dawn_perf_smoke_isolated_scripts',
      'gpu_dawn_webgpu_blink_web_tests',
      'gpu_dawn_webgpu_blink_web_tests_force_swiftshader',
    ],

    'gpu_dawn_telemetry_tests': [
      'gpu_dawn_webgpu_cts',
      'gpu_dawn_web_platform_webgpu_cts_force_swiftshader',
    ],

    'gpu_dawn_tsan_gtests': [
      'gpu_dawn_gtests',
    ],

    'gpu_desktop_mac_gtests': [
      'gpu_angle_unit_gtests',
      'gpu_common_gtests_passthrough',
      'gpu_desktop_specific_gtests',
    ],

    'gpu_desktop_passthrough_gtests': [
      'gpu_angle_unit_gtests',
      'gpu_common_gtests_passthrough',
      'gpu_desktop_specific_gtests',
    ],

    'gpu_fuchsia_telemetry_tests': [
      'gpu_validating_telemetry_tests',
    ],

    'gpu_fyi_android_gtests': [
      'gpu_angle_unit_gtests',
      'gpu_common_gtests_validating',
      'gpu_fyi_and_optional_non_linux_gtests',
    ],

    'gpu_fyi_android_shieldtv_gtests': [
      'gpu_angle_unit_gtests',
      'gpu_common_gtests_validating',
      'gpu_fyi_and_optional_non_linux_gtests',
    ],

    'gpu_fyi_android_webgl2_and_gold_telemetry_tests': [
      'gpu_validating_telemetry_tests',
      'gpu_webgl2_conformance_gles_passthrough_telemetry_tests',
      'gpu_webgl2_conformance_validating_telemetry_tests',
    ],

    # TODO(crbug.com/1080424): Merge with an existing set of tests such as
    # gpu_fyi_linux_release_gtests once all CrOS tests have been enabled.
    'gpu_fyi_chromeos_release_gtests': [
      # TODO(crbug.com/1135720): Missing cros wrapper script.
      # 'gpu_angle_unit_gtests',
      # TODO(crbug.com/1087567, crbug.com/1087590): Enable once there are tests
      # that actually pass.
      'gpu_common_gtests_validating',
      # TODO(crbug.com/1087563): Enable once tab_capture_end2end_tests passes
      # on CrOS.
      # 'gpu_desktop_specific_gtests',
    ],

    # TODO(crbug.com/1080424): Merge with an existing set of tests such as
    # gpu_fyi_linux_release_telemetry_tests once all CrOS tests
    # have been enabled.
    'gpu_fyi_chromeos_release_telemetry_tests': [
      'gpu_common_and_optional_telemetry_tests',
      'gpu_mediapipe_validating_telemetry_tests',
      'gpu_validating_telemetry_tests',
      'gpu_webcodecs_validating_telemetry_test',
      'gpu_webgl_conformance_validating_telemetry_tests',
      # Large amounts of WebGL/WebGL2 tests are failing due to issues that are
      # possibly related to other CrOS issues that are already reported.
      # TODO(crbug.com/1080424): Try enabling these again once some of the
      # existing CrOS WebGL issues are resolved.
      'gpu_webgl2_conformance_gles_passthrough_telemetry_tests',
      'gpu_webgl2_conformance_validating_telemetry_tests',
      # 'gpu_webgl_conformance_gl_passthrough_telemetry_tests',
    ],


    # The same as gpu_fyi_chromeos_release_telemetry_tests, but using
    # passthrough instead of validating since the Lacros bots are actually
    # Lacros-like Linux bots, and Linux uses the passthrough decoder.
    # Additionally, we use GLES instead of GL since that's what is supported.
    'gpu_fyi_lacros_release_telemetry_tests': [
      'gpu_common_and_optional_telemetry_tests',
      'gpu_mediapipe_passthrough_telemetry_tests',
      'gpu_passthrough_telemetry_tests',
      'gpu_webcodecs_telemetry_test',
      'gpu_webgl2_conformance_gles_passthrough_telemetry_tests',
      'gpu_webgl_conformance_gles_passthrough_telemetry_tests',
    ],

    'gpu_fyi_linux_debug_gtests': [
      'gpu_common_gtests_passthrough',
      'gpu_gles2_conform_gtests',
    ],

    'gpu_fyi_linux_debug_telemetry_tests': [
      'gpu_common_and_optional_telemetry_tests',
      'gpu_passthrough_telemetry_tests',
      'gpu_webgl_conformance_gl_passthrough_telemetry_tests',
    ],

    'gpu_fyi_linux_release_gtests': [
      'gpu_angle_unit_gtests',
      'gpu_common_gtests_passthrough',
      'gpu_desktop_specific_gtests',
      'gpu_gles2_conform_gtests',
      'gpu_vulkan_gtests',
    ],

    'gpu_fyi_linux_release_telemetry_tests': [
      'gpu_common_and_optional_telemetry_tests',
      'gpu_mediapipe_passthrough_telemetry_tests',
      'gpu_passthrough_telemetry_tests',
      'gpu_webgl2_conformance_gl_passthrough_telemetry_tests',
      'gpu_webgl_conformance_gl_passthrough_telemetry_tests',
    ],

    # TODO(jonross): remove this once Vulkan Swiftshader and Vulkan GL interop
    # paths are merged. This should mirror
    # `gpu_fyi_linux_release_telemetry_tests` but with additional
    # `gpu_skia_renderer_vulkan_passthrough_telemetry_tests`
    'gpu_fyi_linux_release_vulkan_telemetry_tests': [
      'gpu_common_and_optional_telemetry_tests',
      'gpu_mediapipe_passthrough_telemetry_tests',
      'gpu_passthrough_telemetry_tests',
      'gpu_webgl2_conformance_gl_passthrough_telemetry_tests',
      'gpu_webgl_conformance_gl_passthrough_telemetry_tests',
      'gpu_skia_renderer_vulkan_passthrough_telemetry_tests',
    ],

    'gpu_fyi_mac_debug_gtests': [
      'gpu_angle_unit_gtests',
      'gpu_common_gtests_passthrough',
      'gpu_fyi_and_optional_non_linux_gtests',
      'gpu_fyi_mac_specific_gtests',
      'gpu_gles2_conform_gtests',
    ],

    'gpu_fyi_mac_debug_telemetry_tests': [
      'gpu_common_and_optional_telemetry_tests',
      'gpu_passthrough_telemetry_tests',
      'gpu_webgl_conformance_gl_passthrough_telemetry_tests',
    ],

    'gpu_fyi_mac_pro_release_telemetry_tests': [
      'gpu_common_and_optional_telemetry_tests',
      'gpu_passthrough_telemetry_tests',
      'gpu_webgl2_conformance_gl_passthrough_telemetry_tests',
      'gpu_webgl_conformance_gl_passthrough_telemetry_tests',
    ],

    'gpu_fyi_mac_release_gtests': [
      'gpu_angle_unit_gtests',
      'gpu_common_gtests_passthrough',
      'gpu_desktop_specific_gtests',
      'gpu_fyi_and_optional_non_linux_gtests',
      'gpu_fyi_mac_specific_gtests',
      'gpu_gles2_conform_gtests',
    ],

    'gpu_fyi_mac_release_telemetry_tests': [
      'gpu_common_and_optional_telemetry_tests',
      'gpu_mediapipe_passthrough_telemetry_tests',
      'gpu_passthrough_telemetry_tests',
      'gpu_webcodecs_telemetry_test',
      'gpu_webgl2_conformance_gl_passthrough_telemetry_tests',
      'gpu_webgl2_conformance_metal_passthrough_telemetry_tests',
      'gpu_webgl_conformance_gl_passthrough_telemetry_tests',
      'gpu_webgl_conformance_metal_passthrough_telemetry_tests',
      'gpu_webgl_conformance_swangle_passthrough_representative_telemetry_tests',
    ],

    'gpu_fyi_win_amd_release_telemetry_tests': [
      'gpu_common_and_optional_telemetry_tests',
      'gpu_mediapipe_passthrough_telemetry_tests',
      'gpu_passthrough_telemetry_tests',
      'gpu_webcodecs_telemetry_test',
      'gpu_webgl2_conformance_d3d11_passthrough_telemetry_tests',
      'gpu_webgl_conformance_d3d11_passthrough_telemetry_tests',
      'gpu_webgl_conformance_d3d9_passthrough_telemetry_tests',
    ],

    'gpu_fyi_win_debug_telemetry_tests': [
      'gpu_common_and_optional_telemetry_tests',
      'gpu_passthrough_telemetry_tests',
      'gpu_webgl_conformance_d3d11_passthrough_telemetry_tests',
      'gpu_webgl_conformance_d3d9_passthrough_telemetry_tests',
      'gpu_webgl_conformance_vulkan_passthrough_telemetry_tests',
    ],

    'gpu_fyi_win_gtests': [
      'gpu_angle_unit_gtests',
      'gpu_common_gtests_passthrough',
      'gpu_default_and_optional_win_specific_gtests',
      'gpu_desktop_specific_gtests',
      'gpu_fyi_and_optional_non_linux_gtests',
      'gpu_fyi_and_optional_win_specific_gtests',
      'gpu_gles2_conform_gtests',
    ],

    'gpu_fyi_win_intel_release_telemetry_tests': [
      'gpu_common_and_optional_telemetry_tests',
      'gpu_mediapipe_passthrough_telemetry_tests',
      'gpu_passthrough_telemetry_tests',
      'gpu_webcodecs_telemetry_test',
      'gpu_webgl2_conformance_d3d11_passthrough_telemetry_tests',
      'gpu_webgl_conformance_d3d11_passthrough_telemetry_tests',
      'gpu_webgl_conformance_d3d9_passthrough_telemetry_tests',
      'gpu_webgl_conformance_vulkan_passthrough_telemetry_tests',
    ],

    'gpu_fyi_win_optional_isolated_scripts': [
      'gpu_command_buffer_perf_passthrough_isolated_scripts',
    ],

    'gpu_fyi_win_release_telemetry_tests': [
      'gpu_common_and_optional_telemetry_tests',
      'gpu_passthrough_telemetry_tests',
      'gpu_webgl2_conformance_d3d11_passthrough_telemetry_tests',
      'gpu_webgl_conformance_d3d11_passthrough_telemetry_tests',
      'gpu_webgl_conformance_d3d9_passthrough_telemetry_tests',
      'gpu_webgl_conformance_vulkan_passthrough_telemetry_tests',
    ],

    'gpu_nexus5x_telemetry_tests': [
      'gpu_common_and_optional_telemetry_tests',
      'gpu_mediapipe_passthrough_telemetry_tests',
      'gpu_mediapipe_validating_telemetry_tests',
      'gpu_validating_telemetry_tests',
      'gpu_webcodecs_validating_telemetry_test',
      'gpu_webgl_conformance_gles_passthrough_telemetry_tests',
      'gpu_webgl_conformance_validating_telemetry_tests',
    ],

    'gpu_nexus5x_telemetry_tests_v8': [
      'gpu_common_and_optional_telemetry_tests',
      'gpu_validating_telemetry_tests',
      'gpu_webgl_conformance_gles_passthrough_telemetry_tests',
      'gpu_webgl_conformance_validating_telemetry_tests',
    ],

    'gpu_pixel_4_and_6_telemetry_tests': [
      'gpu_common_and_optional_telemetry_tests',
      'gpu_mediapipe_passthrough_telemetry_tests',
      'gpu_mediapipe_validating_telemetry_tests',
      'gpu_passthrough_telemetry_tests',
      'gpu_validating_telemetry_tests',
      'gpu_webcodecs_validating_telemetry_test',
      'gpu_webgl_conformance_gles_passthrough_telemetry_tests',
      'gpu_webgl_conformance_validating_telemetry_tests',
      'gpu_webgl2_conformance_gles_passthrough_telemetry_tests',
      'gpu_webgl2_conformance_validating_telemetry_tests',
    ],

    'gpu_swangle_telemetry_tests': [
      'gpu_webgl_conformance_swangle_passthrough_telemetry_tests',
    ],

    'gpu_win_gtests': [
      'gpu_angle_unit_gtests',
      'gpu_common_gtests_passthrough',
      'gpu_default_and_optional_win_specific_gtests',
      'gpu_desktop_specific_gtests',
    ],

    # END composition test suites used by the GPU bots

    'linux_chromeos_gtests': [
      # This is:
      #   linux_chromium_gtests
      #   - non_android_and_cast_and_chromeos_chromium_gtests
      #   + linux_chromeos_lacros_gtests
      #   + linux_chromeos_specific_gtests
      'aura_gtests',
      'chromium_gtests',
      'chromium_gtests_for_devices_with_graphical_output',
      'chromium_gtests_for_linux_and_chromeos_only',
      'chromium_gtests_for_win_and_linux_only',
      'linux_chromeos_lacros_gtests',
      'linux_chromeos_specific_gtests',
      'linux_flavor_specific_chromium_gtests',
      'non_android_chromium_gtests',
    ],

    'linux_chromeos_gtests_oobe': [
      'aura_gtests',
      'chromium_gtests',
      'chromium_gtests_for_devices_with_graphical_output',
      'chromium_gtests_for_linux_and_chromeos_only',
      'chromium_gtests_for_win_and_linux_only',
      'linux_chromeos_lacros_gtests',
      'linux_chromeos_oobe_specific_tests',
      'linux_chromeos_specific_gtests',
      'linux_flavor_specific_chromium_gtests',
      'non_android_chromium_gtests',
    ],

    'linux_chromeos_specific_and_lacros_dependent_gtests': [
      # This is:
      #   linux_chromeos_gtests
      #   + 'linux_chromeos_browser_tests_require_lacros'
      'aura_gtests',
      'chromium_gtests',
      'chromium_gtests_for_devices_with_graphical_output',
      'chromium_gtests_for_linux_and_chromeos_only',
      'chromium_gtests_for_win_and_linux_only',
      'linux_chromeos_lacros_gtests',
      'linux_chromeos_specific_gtests',
      'linux_chromeos_browser_tests_require_lacros',
      'linux_flavor_specific_chromium_gtests',
      'non_android_chromium_gtests',
      'pixel_experimental_browser_tests_gtests',
      'ash_pixel_gtests',
    ],

    'linux_viz_gtests': [
      'gpu_fyi_vulkan_swiftshader_gtests',
    ],

    # TODO(crbug.com/1111436): Re-enable this if/when additional capacity
    #'marshmallow_nougat_pie_isolated_scripts_with_proguard': [
    #  'android_isolated_scripts',
    #  'components_perftests_isolated_scripts',
    #  'telemetry_android_minidump_unittests_isolated_scripts',
    #  'telemetry_perf_unittests_isolated_scripts_android',
    #],

    'monochrome_public_apk_checker_isolated_script_and_sizes': [
      'chrome_sizes_android',
      'monochrome_public_apk_checker_isolated_script',
    ],

    'network_service_extra_gtests': [
      'network_service_fyi_gtests',
    ],

    'nougat_isolated_scripts': [
      'android_isolated_scripts',
      'chromium_junit_tests_scripts',
      'components_perftests_isolated_scripts',
      'monochrome_public_apk_checker_isolated_script',
      'telemetry_android_minidump_unittests_isolated_scripts',
      'telemetry_perf_unittests_isolated_scripts_android',
    ],

    # Rust tests run on non-cross builds.
    'rust_host_gtests': [
      'rust_common_gtests',
      'rust_tooling_gtests',
    ],

    'sandboxed_chromium_memory_linux_gtests': [
      'chromium_browser_tests',
    ],

    'webrtc_chromium_tests_with_baremetal_tests': [
      'webrtc_chromium_baremetal_gtests',
      'webrtc_chromium_gtests',
    ],

    'webview_bot_all_gtests': [
      'system_webview_shell_instrumentation_tests',
      'webview_bot_instrumentation_test_apk_gtest',
      'webview_bot_instrumentation_test_apk_no_field_trial_gtest',
      'webview_bot_unittests_gtest',
      'webview_cts_tests_gtest',
      'webview_cts_tests_gtest_no_field_trial',
      'webview_ui_instrumentation_tests',
      'webview_ui_instrumentation_tests_no_field_trial',
    ],

    'webview_trichrome_64_cts_gtests': [
      'webview_trichrome_64_cts_tests',
      'webview_trichrome_64_cts_tests_no_field_trial',
    ],

    'win_specific_isolated_scripts_and_sizes': [
      'chrome_sizes',
      'win_specific_isolated_scripts',
    ],

    'wpt_web_tests_content_shell_multiple_flags': [
      'wpt_web_tests_content_shell',
      'wpt_web_tests_not_site_per_process',
      'wpt_web_tests_highdpi',
    ],
  },

  ##############################################################################
  # Matrix compound test suites.                                               #
  ##############################################################################

  'matrix_compound_suites': {

    'android_11_emulator_gtests': {
      'android_emulator_specific_chrome_public_tests': {},
      'android_trichrome_smoke_tests': {},
      'android_smoke_tests': {},
      'android_specific_chromium_gtests': {},  # Already includes gl_gtests.
      'chromium_gtests': {},
      'chromium_gtests_for_devices_with_graphical_output': {},
      'linux_flavor_specific_chromium_gtests': {},
      'system_webview_shell_instrumentation_tests': {}, # Not an experimental test
      'webengine_android_gtests': {},
      'webview_trichrome_cts_tests': {
        'variants': [
          'WEBVIEW_TRICHROME_FULL_CTS_TESTS',
          'WEBVIEW_TRICHROME_INSTANT_CTS_TESTS',
        ]
      },
      'webview_ui_instrumentation_tests': {},
    },

    'android_12_emulator_fyi_gtests': {
      'oop_network_service_tests': {},
    },

    'android_12_emulator_gtests': {
      'android_emulator_specific_chrome_public_tests': {},
      'android_trichrome_smoke_tests': {},
      'android_smoke_tests': {},
      'android_specific_chromium_gtests': {},  # Already includes gl_gtests.
      'chrome_persistent_shell_tests': {}, # Remove when experiment is over.
      'chromium_gtests': {},
      'chromium_gtests_for_devices_with_graphical_output': {},
      'linux_flavor_specific_chromium_gtests': {},
      'system_webview_shell_instrumentation_tests': {}, # Not an experimental test
      'webengine_android_gtests': {},
      'webview_trichrome_64_cts_tests': {
        'variants': [
          'WEBVIEW_TRICHROME_FULL_CTS_TESTS',
          'WEBVIEW_TRICHROME_INSTANT_CTS_TESTS',
        ]
      },
      'webview_ui_instrumentation_tests': {},
    },

    'android_12l_emulator_gtests': {
      'android_emulator_specific_chrome_public_tests': {},
      'android_trichrome_smoke_tests': {},
      'android_smoke_tests': {},
      'android_specific_chromium_gtests': {},  # Already includes gl_gtests.
      'chromium_gtests': {},
      'chromium_gtests_for_devices_with_graphical_output': {},
      'linux_flavor_specific_chromium_gtests': {},
      'system_webview_shell_instrumentation_tests': {}, # Not an experimental test
      'webengine_android_gtests': {},
      'webview_ui_instrumentation_tests': {},
    },

    'android_13_emulator_gtests': {
      'android_emulator_specific_chrome_public_tests': {},
      'android_trichrome_smoke_tests': {},
      'android_smoke_tests': {},
      'android_specific_chromium_gtests': {},  # Already includes gl_gtests.
      'chromium_gtests': {},
      'chromium_gtests_for_devices_with_graphical_output': {},
      'linux_flavor_specific_chromium_gtests': {},
      'system_webview_shell_instrumentation_tests': {}, # Not an experimental test
      'webview_trichrome_64_cts_tests': {
        'variants': [
          'WEBVIEW_TRICHROME_FULL_CTS_TESTS',
          'WEBVIEW_TRICHROME_INSTANT_CTS_TESTS',
        ]
      },
      'webview_trichrome_64_cts_tests_no_field_trial': {},
      'webview_ui_instrumentation_tests': {},
    },

    'chromeos_brya_skylab_tests': {
      'chromeos_chrome_all_tast_tests': {
        'variants': [
          'CROS_BRYA_RELEASE_LKGM',
        ]
      },
    },

    'chromeos_jacuzzi_skylab_tests': {
      'chromeos_chrome_all_tast_tests': {
        'variants': [
          'CROS_JACUZZI_RELEASE_CHROME_FROM_TLS_LKGM',
        ]
      },
    },

    'chromeos_octopus_skylab_tests': {
      'chromeos_chrome_all_tast_tests': {
        'variants': [
          'CROS_OCTOPUS_RELEASE_CHROME_FROM_TLS_LKGM',
        ]
      },
    },

    'chromeos_trogdor_skylab_tests': {
      'chromeos_chrome_all_tast_tests': {
        'variants': [
          'CROS_TROGDOR_RELEASE_LKGM',
        ]
      },
    },

    'chromeos_volteer_skylab_tests': {
      'chromeos_chrome_all_tast_tests': {
        'variants': [
          'CROS_VOLTEER_RELEASE_LKGM',
        ]
      },
    },

    'fieldtrial_ios_simulator_tests': {
      'ios_eg2_cq_tests': {
        'mixins': [
          'xcode_parallelization',
          'disable_field_trial_config_for_earl_grey',
        ],
        'variants': [
          'SIM_IPAD_AIR_2_15_5',
          'SIM_IPHONE_6S_15_5',
        ]
      },
      'ios_eg2_tests': {
        'mixins': [
          'xcode_parallelization',
          'disable_field_trial_config_for_earl_grey',
        ],
        'variants': [
          'SIM_IPAD_AIR_2_15_5',
          'SIM_IPHONE_6S_15_5',
        ]
      },
    },

    'gpu_angle_ios_gtests': {
      'gpu_angle_ios_end2end_gtests': {
        'variants': [
          'SIM_IPHONE_X_16_2',
        ],
      },
      'gpu_angle_ios_white_box_gtests': {
        'variants': [
          'SIM_IPHONE_X_16_2',
        ],
      },
    },

    'gpu_fyi_chromeos_release_telemetry_tests_skylab': {
      'gpu_common_and_optional_telemetry_tests': {
        'variants': [
          'CROS_KEVIN_PUBLIC_LKGM',
        ],
      },
      'gpu_mediapipe_validating_telemetry_tests': {
        'variants': [
          'CROS_KEVIN_PUBLIC_LKGM',
        ],
      },
      'gpu_validating_telemetry_tests': {
        'variants': [
          'CROS_KEVIN_PUBLIC_LKGM',
        ],
      },
      'gpu_webcodecs_validating_telemetry_test': {
        'variants': [
          'CROS_KEVIN_PUBLIC_LKGM',
        ],
      },
      'gpu_webgl_conformance_validating_telemetry_tests': {
        'variants': [
          'CROS_KEVIN_PUBLIC_LKGM',
        ],
      },
      'gpu_webgl2_conformance_gles_passthrough_telemetry_tests': {
        'variants': [
          'CROS_KEVIN_PUBLIC_LKGM',
        ],
      },
      'gpu_webgl2_conformance_validating_telemetry_tests': {
        'variants': [
          'CROS_KEVIN_PUBLIC_LKGM',
        ],
      },
    },

    'gpu_fyi_lacros_device_release_telemetry_tests': {
      'gpu_pixel_passthrough_telemetry_tests': {
        'variants': [
          'LACROS_ASH_TOT',
        ],
      },
      'gpu_webgl_conformance_gles_passthrough_representative_telemetry_tests': {
        'variants': [
          'LACROS_ASH_TOT',
        ],
      },
      'gpu_webgl2_conformance_gles_passthrough_representative_telemetry_tests': {
        'variants': [
          'LACROS_ASH_TOT',
          ],
      },
    },

    'ios15_sdk_simulator_tests': {
      'ios_common_tests': {
        'variants': [
          'SIM_IPHONE_6S_15_5',
          'SIM_IPHONE_8_16_2',
        ],
      },
      'ios_eg2_tests': {
        'mixins': ['xcode_parallelization'],
        'variants': [
          'SIM_IPHONE_7_15_5',
          'SIM_IPAD_AIR_2_15_5',
          'SIM_IPHONE_X_15_5',
          'SIM_IPHONE_X_16_2',
          'SIM_IPHONE_8_16_2',
        ]
      },
      'ios_eg2_cq_tests': {
        'mixins': ['xcode_parallelization'],
        'variants': [
          'SIM_IPHONE_7_15_5',
          'SIM_IPAD_AIR_2_15_5',
          'SIM_IPHONE_X_15_5',
          'SIM_IPAD_AIR_3RD_GEN_16_2',
          'SIM_IPHONE_8_PLUS_16_2',
        ]
      },
      'ios_screen_size_dependent_tests': {
        'variants': [
          'SIM_IPHONE_6S_PLUS_15_5',
          'SIM_IPHONE_6S_15_5',
          'SIM_IPHONE_SE_1ST_GEN_15_5',
          'SIM_IPAD_AIR_2_15_5',
          'SIM_IPHONE_8_PLUS_16_2',
          'SIM_IPHONE_SE_3RD_GEN_16_2',
          'SIM_IPAD_PRO_3RD_GEN_16_2',
        ],
      },
    },

    'ios16_beta_simulator_tests': {
      'ios_common_tests': {
        'variants': [
          'SIM_IPHONE_X_16_4',
        ],
      },
      'ios_eg2_tests': {
        'mixins': ['xcode_parallelization', 'record_failed_tests'],
        'variants': [
          'SIM_IPHONE_X_16_4',
          'SIM_IPAD_AIR_3RD_GEN_16_4',
          'SIM_IPAD_6_GEN_16_4',
          'SIM_IPAD_PRO_3RD_GEN_16_4',
        ]
      },
      'ios_eg2_cq_tests': {
        'mixins': ['xcode_parallelization', 'record_failed_tests'],
        'variants': [
          'SIM_IPHONE_X_16_4',
          'SIM_IPAD_6_GEN_16_4',
          'SIM_IPAD_PRO_3RD_GEN_16_4',
        ]
      },
      'ios_screen_size_dependent_tests': {
        'variants': [
          'SIM_IPHONE_X_16_4',
          'SIM_IPHONE_SE_3RD_GEN_16_4',
          'SIM_IPAD_AIR_3RD_GEN_16_4',
          'SIM_IPAD_PRO_3RD_GEN_16_4',
        ],
      },
      'ios_crash_xcuitests': {
        'mixins': ['xcode_parallelization'],
        'variants': [
          'SIM_IPHONE_X_16_4',
        ]
      },
      'ios_swift_interop_xcuitests': {
        'mixins': ['xcode_parallelization'],
        'variants': [
          'SIM_IPHONE_X_16_4',
          'SIM_IPAD_PRO_3RD_GEN_16_4',
        ],
      },
    },

    'ios16_sdk_simulator_tests': {
      'ios_common_tests': {
        'variants': [
          'SIM_IPHONE_X_16_4',
        ],
      },
      'ios_crash_xcuitests': {
        'mixins': ['xcode_parallelization'],
        'variants': [
          'SIM_IPHONE_X_16_4',
        ]
      },
      'ios_eg2_tests': {
        'mixins': ['xcode_parallelization'],
        'variants': [
          'SIM_IPHONE_X_16_4',
          'SIM_IPAD_AIR_3RD_GEN_16_4',
          'SIM_IPAD_PRO_3RD_GEN_16_4',
        ]
      },
      'ios_eg2_cq_tests': {
        'mixins': ['xcode_parallelization'],
        'variants': [
          'SIM_IPHONE_X_16_4',
          'SIM_IPAD_AIR_3RD_GEN_16_4',
          'SIM_IPAD_PRO_3RD_GEN_16_4',
        ]
      },
      'ios_screen_size_dependent_tests': {
        'variants': [
          'SIM_IPHONE_X_16_4',
          'SIM_IPHONE_SE_3RD_GEN_16_4',
          'SIM_IPAD_AIR_3RD_GEN_16_4',
          'SIM_IPAD_PRO_3RD_GEN_16_4',
        ],
      },
      'ios_swift_interop_xcuitests': {
        'mixins': ['xcode_parallelization'],
        'variants': [
          'SIM_IPHONE_X_16_4',
          'SIM_IPAD_AIR_3RD_GEN_16_4',
        ],
      },
    },

    'ios_asan_tests': {
      'ios_common_tests': {
        'variants': [
          'SIM_IPHONE_X_15_5',
          'SIM_IPAD_AIR_2_15_5',
        ]
      },
      'ios_screen_size_dependent_tests': {
        'variants': [
          'SIM_IPHONE_X_15_5',
          'SIM_IPAD_AIR_2_15_5',
        ]
      }
    },

    'ios_blink_dbg_tests': {
      'ios_blink_tests': {
        'variants': [
          'SIM_IPAD_PRO_3RD_GEN_16_2',
          'SIM_IPHONE_X_16_2',
        ]
      },
    },

    'ios_clang_tot_device_tests': {
      'ios_clang_tests': {
        'variants': [
          'IPHONE_7_15_4_1',
        ],
      }
    },

    'ios_clang_tot_sim_tests': {
      'ios_clang_tests': {
        'variants': [
          'SIM_IPHONE_6S_15_5',
        ]
      }
    },

    # This suite is a union of ios_simulator_tests and
    # ios_simulator_full_configs_tests.
    'ios_code_coverage_tests': {
      'ios_common_tests': {
        'variants': [
          'SIM_IPHONE_6S_15_5',
          'SIM_IPHONE_8_16_2',
        ],
      },
      'ios_eg2_cq_tests': {
        'mixins': ['xcode_parallelization'],
        'variants': [
          'SIM_IPHONE_6S_15_5',
          'SIM_IPHONE_7_15_5',
          'SIM_IPAD_AIR_2_15_5',
          'SIM_IPHONE_8_16_2',
          'SIM_IPHONE_X_16_2',
          'SIM_IPAD_AIR_3RD_GEN_16_2',
          'SIM_IPAD_PRO_3RD_GEN_15_5',
          'SIM_IPAD_PRO_3RD_GEN_16_2',
        ],
      },
      'ios_eg2_tests': {
        'mixins': ['xcode_parallelization'],
        'variants': [
          'SIM_IPHONE_7_15_5',
          'SIM_IPAD_AIR_2_15_5',
          'SIM_IPHONE_X_15_5',
          'SIM_IPHONE_8_16_2',
          'SIM_IPAD_AIR_3RD_GEN_16_2',
          'SIM_IPHONE_X_16_2',
          'SIM_IPAD_PRO_3RD_GEN_15_5',
          'SIM_IPAD_PRO_3RD_GEN_16_2',
        ],
      },
      'ios_screen_size_dependent_tests': {
        'variants': [
          'SIM_IPHONE_6S_PLUS_15_5',
          'SIM_IPHONE_6S_15_5',
          'SIM_IPHONE_SE_1ST_GEN_15_5',
          'SIM_IPAD_AIR_2_15_5',
          'SIM_IPHONE_8_PLUS_16_2',
          'SIM_IPHONE_8_16_2',
          'SIM_IPHONE_SE_3RD_GEN_16_2',
          'SIM_IPAD_AIR_3RD_GEN_16_2',
          'SIM_IPAD_PRO_3RD_GEN_15_5',
          'SIM_IPAD_PRO_3RD_GEN_16_2',
        ],
      },
    },

    'ios_m1_simulator_tests': {
      'ios_common_tests': {
        'variants': [
          'SIM_IPHONE_8_16_2',
        ],
      },
      'ios_eg2_tests': {
        'mixins': ['xcode_parallelization', 'record_failed_tests'],
        'variants': [
          'SIM_IPHONE_8_16_2',
          'SIM_IPAD_AIR_3RD_GEN_16_2',
          'SIM_IPHONE_X_16_2'
        ]
      },
      'ios_eg2_cq_tests': {
        'mixins': ['xcode_parallelization', 'record_failed_tests'],
        'variants': [
          'SIM_IPHONE_X_16_2',
          'SIM_IPAD_6_GEN_16_2',
          'SIM_IPAD_AIR_3RD_GEN_16_2',
          'SIM_IPAD_PRO_3RD_GEN_16_2',
        ]
      },
      'ios_screen_size_dependent_tests': {
        'variants': [
          'SIM_IPHONE_8_PLUS_16_2',
          'SIM_IPHONE_8_16_2',
          'SIM_IPHONE_SE_3RD_GEN_16_2',
          'SIM_IPAD_AIR_3RD_GEN_16_2',
        ],
      },
    },

    'ios_simulator_cronet_tests': {
      'ios_cronet_tests': {
        'variants': [
          'SIM_IPHONE_X_15_5',
        ]
      }
    },

    # Please also change ios_code_coverage_tests for any change in this suite.
    'ios_simulator_full_configs_tests': {
      'ios_common_tests': {
        'variants': [
          'SIM_IPHONE_6S_15_5',
        ]
      },
      'ios_eg2_tests': {
        'mixins': ['xcode_parallelization'],
        'variants': [
          'SIM_IPHONE_7_15_5',
          'SIM_IPAD_AIR_2_15_5',
          'SIM_IPHONE_X_16_2',
          'SIM_IPAD_PRO_3RD_GEN_16_2',
        ]
      },
      'ios_eg2_cq_tests': {
        'mixins': ['xcode_parallelization'],
        'variants': [
          'SIM_IPHONE_6S_15_5',
          'SIM_IPAD_PRO_3RD_GEN_15_5',
          'SIM_IPHONE_8_16_2',
          'SIM_IPAD_AIR_3RD_GEN_16_2',
        ]
      },
      'ios_screen_size_dependent_tests': {
        'variants': [
          'SIM_IPHONE_6S_15_5',
          'SIM_IPHONE_SE_1ST_GEN_15_5',
          'SIM_IPAD_PRO_3RD_GEN_15_5',
          'SIM_IPHONE_8_16_2',
        ]
      }
    },

    'ios_simulator_multi_window_tests': {
      'ios_common_tests': {
        'variants': [
          'SIM_IPAD_AIR_3RD_GEN_16_2',
        ]
      },
      'ios_eg2_cq_tests': {
        'mixins': ['xcode_parallelization'],
        'variants': [
          'SIM_IPAD_AIR_3RD_GEN_16_2',
        ]
      },
      'ios_eg2_tests': {
        'mixins': ['xcode_parallelization'],
        'variants': [
          'SIM_IPAD_AIR_3RD_GEN_16_2',
        ]
      },
      'ios_screen_size_dependent_tests': {
        'variants': [
          'SIM_IPAD_AIR_3RD_GEN_16_2',
        ]
      }
    },

    'ios_simulator_noncq_tests': {
      'ios_common_tests': {
        'variants': [
        ]
      },
      'ios_eg2_tests': {
        'mixins': ['xcode_parallelization', 'record_failed_tests'],
        'variants': [
          'SIM_IPHONE_X_15_5',
          'SIM_IPAD_PRO_3RD_GEN_15_5',
          'SIM_IPAD_PRO_3RD_GEN_16_2_T2',
        ]
      },
      'ios_eg2_cq_tests': {
        'mixins': ['xcode_parallelization', 'record_failed_tests'],
        'variants': [
          'SIM_IPHONE_7_15_5',
          'SIM_IPAD_AIR_2_15_5',
        ]
      },
      'ios_screen_size_dependent_tests': {
        'variants': [
          'SIM_IPHONE_6S_PLUS_15_5',
          'SIM_IPAD_AIR_2_15_5',
          'SIM_IPHONE_SE_3RD_GEN_16_2',
          'SIM_IPAD_AIR_3RD_GEN_16_2',
        ]
      },
      'ios_crash_xcuitests': {
        'mixins': ['xcode_parallelization'],
        'variants': [
          'SIM_IPHONE_7_15_5',
        ]
      },
    },

    # Please also change ios_code_coverage_tests for any change in this suite.
    'ios_simulator_tests': {
      'ios_common_tests': {
        'variants': [
          'SIM_IPHONE_8_16_2',
        ]
      },
      'ios_eg2_cq_tests': {
        'mixins': ['xcode_parallelization'],
        'variants': [
          'SIM_IPHONE_8_16_2',
        ]
      },
      'ios_screen_size_dependent_tests': {
        'variants': [
          'SIM_IPHONE_X_16_2',
          'SIM_IPAD_PRO_3RD_GEN_16_2',
        ]
      }
    },

    'ios_webkit_tot_tests': {
      'ios_common_tests': {
        'variants': [
          'SIM_IPHONE_X_16_2',
          'SIM_IPAD_AIR_3RD_GEN_16_2',
        ]
      },
      'ios_eg2_cq_tests': {
        'mixins': ['xcode_parallelization'],
        'variants': [
          'SIM_IPHONE_X_16_2',
          'SIM_IPAD_AIR_3RD_GEN_16_2',
        ]
      },
      'ios_eg2_tests': {
        'mixins': ['xcode_parallelization'],
        'variants': [
          'SIM_IPHONE_X_16_2',
          'SIM_IPAD_AIR_3RD_GEN_16_2',
        ]
      },
      'ios_screen_size_dependent_tests': {
        'variants': [
          'SIM_IPHONE_X_16_2',
          'SIM_IPAD_AIR_3RD_GEN_16_2',
        ]
      },
    },

    'ios_webrtc_fyi_tests': {
      'ios_remoting_fyi_unittests': {
        'variants': [
          'SIM_IPHONE_X_16_2',
          'SIM_IPAD_AIR_3RD_GEN_16_2',
        ]
      },
    },

    'lacros_amd64_generic_rel_skylab_fyi': {
      'lacros_skylab_tests': {
        'variants': [
          'CROS_OCTOPUS_PUBLIC_LKGM',
          'CROS_EVE_PUBLIC_LKGM',
        ]
      },
    },

    'lacros_arm64_generic_rel_skylab': {
      'lacros_skylab_tests': {
        'variants': [
          'CROS_KEVIN64_PUBLIC_LKGM',
        ]
      },
    },

    'lacros_arm64_generic_rel_skylab_fyi': {
      'lacros_skylab_tests': {
        'variants': [
          'CROS_JACUZZI_PUBLIC_LKGM',
          'CROS_JACUZZI_CQ_PUBLIC_LKGM',
          'CROS_KEVIN64_PUBLIC_LKGM',
        ]
      },
    },

    'lacros_arm_generic_rel_skylab': {
      'lacros_skylab_tests': {
        'variants': [
          'CROS_JACUZZI_PUBLIC_LKGM',
        ]
      },
    },

    'lacros_arm_generic_rel_skylab_fyi': {
      'lacros_skylab_tests': {
        'variants': [
          'CROS_JACUZZI_PUBLIC_LKGM',
          'CROS_KEVIN64_PUBLIC_LKGM',
        ]
      },
    },

    'lacros_device_arm_tests_rel': {
      'lacros_all_tast_tests': {
        'variants': [
          'LACROS_JACUZZI',
        ],
      },
      'lacros_cq_tast_tests_jacuzzi': {
        'variants': [
          'LACROS_JACUZZI',
        ],
      },
    },

    'lacros_device_or_vm_tast_tests': {
      'lacros_all_tast_tests': {
        'variants': [
          'LACROS_EVE',
        ]
      },
      'lacros_variations_tast_tests': {
        'variants': [
          'LACROS_BETTY_PI_ARC',
        ]
      },
    },

    'lacros_device_or_vm_tests': {
      'lacros_all_tast_tests': {
        'variants': [
          'LACROS_AMD64_GENERIC',
          'LACROS_EVE',
        ]
      },
      'lacros_cq_tast_tests_eve': {
        'variants': [
          'LACROS_EVE',
        ]
      },
      'lacros_device_or_vm_gtests': {
        'variants': [
          'LACROS_AMD64_GENERIC',
          'LACROS_EVE',
        ]
      },
      'lacros_vm_gtests': {
        'variants': [
          'LACROS_AMD64_GENERIC',
        ]
      },
    },

    'lacros_device_or_vm_tests_fyi': {
      'lacros_all_tast_tests_informational': {
        'variants': [
          'LACROS_AMD64_GENERIC',
          'LACROS_EVE',
        ]
      },
      'lacros_device_or_vm_gtests': {
        'variants': [
          'LACROS_AMD64_GENERIC',
          'LACROS_EVE',
        ]
      },
      'lacros_fyi_tast_tests': {
        'variants': [
          'LACROS_AMD64_GENERIC',
          'LACROS_EVE',
        ]
      },
    },

    # Check go/lacros-on-skylab for details of Skylab configurations.
    'lacros_skylab_arm': {
      'lacros_skylab_tests': {
        'variants': [
          'CROS_JACUZZI_RELEASE_LKGM',
          'CROS_JACUZZI_RELEASE_DEV',
          'CROS_JACUZZI_RELEASE_BETA',
          'CROS_JACUZZI_RELEASE_STABLE',
        ]
      },
    },

    'lacros_skylab_arm64': {
      'lacros_skylab_tests': {
        'variants': [
          'CROS_HEROBRINE_RELEASE_LKGM',
        ]
      },
    },

    # Check go/lacros-on-skylab for details of Skylab configurations.
    'lacros_skylab_arm_fyi': {
      'lacros_skylab_arm_tests_fyi': {
        'variants': [
          'CROS_HANA_RELEASE_LKGM',
          'CROS_HANA_RELEASE_DEV',
          'CROS_HANA_RELEASE_BETA',
          'CROS_HANA_RELEASE_STABLE',
          'CROS_STRONGBAD_RELEASE_LKGM',
          'CROS_STRONGBAD_RELEASE_DEV',
          'CROS_STRONGBAD_RELEASE_BETA',
          'CROS_STRONGBAD_RELEASE_STABLE',
        ]
      },
    },

    # Check go/lacros-on-skylab for details of Skylab configurations.
    'lacros_skylab_tests_amd64_generic': {
      'lacros_skylab_tests': {
        'variants': [
          'CROS_DEDEDE_RELEASE_LKGM',
          'CROS_DEDEDE_RELEASE_DEV',
          'CROS_DEDEDE_RELEASE_BETA',
          'CROS_DEDEDE_RELEASE_STABLE',
          'CROS_EVE_RELEASE_LKGM',
          'CROS_EVE_RELEASE_DEV',
          'CROS_EVE_RELEASE_BETA',
          'CROS_EVE_RELEASE_STABLE',
        ]
      },
    },

    'lacros_skylab_tests_amd64_generic_fyi': {
      'lacros_skylab_amd64_fyi': {
        'variants': [
          'CROS_OCTOPUS_RELEASE_LKGM',
          'CROS_OCTOPUS_RELEASE_DEV',
          'CROS_OCTOPUS_RELEASE_BETA',
          'CROS_OCTOPUS_RELEASE_STABLE',
        ]
      },
    },

    'lacros_skylab_tests_amd64_generic_rel': {
      'lacros_skylab_tests': {
        'variants': [
          'CROS_EVE_PUBLIC_LKGM',
          'CROS_EVE_PUBLIC_DEV',
          'CROS_EVE_PUBLIC_BETA',
          'CROS_EVE_PUBLIC_STABLE',
        ]
      },
    },

    'linux_lacros_gtests': {
      # This is:
      #   linux_chromeos_gtests
      #   - linux_chromeos_specific_gtests
      #   + linux_chromeos_lacros_gtests
      #   + linux_lacros_chrome_browsertests_version_skew
      #   + linux_lacros_specific_gtests
      'aura_gtests': {},
      'chromium_gtests': {},
      'chromium_gtests_for_devices_with_graphical_output': {},
      'chromium_gtests_for_linux_and_chromeos_only': {},
      'chromium_gtests_for_win_and_linux_only': {},
      'linux_chromeos_lacros_gtests': { },
      'linux_flavor_specific_chromium_gtests': {  },
      'linux_lacros_specific_gtests': {  },
      'non_android_chromium_gtests': {
      },
      'linux_lacros_chrome_browsertests_non_version_skew': { },
      'linux_lacros_chrome_browsertests_version_skew': {
        'variants': [
          'LACROS_VERSION_SKEW_CANARY',
          'LACROS_VERSION_SKEW_DEV',
          'LACROS_VERSION_SKEW_BETA',
          'LACROS_VERSION_SKEW_STABLE',
        ]
      },
      'linux_lacros_chrome_interactive_ui_tests_version_skew': {
        'variants': [
          'LACROS_VERSION_SKEW_CANARY',
        ]
      },
      'linux_lacros_chrome_interactive_ui_tests_version_skew_beta': {
        'variants': [
          'LACROS_VERSION_SKEW_BETA',
        ]
      },
      'linux_lacros_chrome_interactive_ui_tests_version_skew_dev': {
        'variants': [
          'LACROS_VERSION_SKEW_DEV',
        ]
      },
      'linux_lacros_chrome_interactive_ui_tests_version_skew_stable': {
        'variants': [
          'LACROS_VERSION_SKEW_STABLE',
        ]
      },
    },

    'linux_lacros_version_skew_tests': {
      'linux_lacros_chrome_interactive_ui_tests_version_skew': {
        'variants': [
          'LACROS_VERSION_SKEW_CANARY',
          'LACROS_VERSION_SKEW_DEV',
          'LACROS_VERSION_SKEW_BETA',
          'LACROS_VERSION_SKEW_STABLE',
        ]
      },
    },

    'linux_optional_gpu_tests_rel_gpu_telemetry_tests': {
      'gpu_common_and_optional_telemetry_tests': {
        'variants': [
          'LINUX_INTEL_UHD_630_STABLE',
          'LINUX_NVIDIA_GTX_1660_STABLE',
        ],
      },
      'gpu_mediapipe_passthrough_telemetry_tests': {
        'variants': [
          'LINUX_INTEL_UHD_630_STABLE',
          'LINUX_NVIDIA_GTX_1660_STABLE',
        ],
      },
      'gpu_webcodecs_telemetry_test': {
        'variants': [
          'LINUX_INTEL_UHD_630_STABLE',
          'LINUX_NVIDIA_GTX_1660_STABLE',
        ],
      },
      'gpu_webgl2_conformance_gl_passthrough_telemetry_tests': {
        'variants': [
          'LINUX_INTEL_UHD_630_STABLE',
          'LINUX_NVIDIA_GTX_1660_STABLE',
        ],
      },
      'gpu_webgl_conformance_gl_passthrough_telemetry_tests': {
        'variants': [
          'LINUX_INTEL_UHD_630_STABLE',
          'LINUX_NVIDIA_GTX_1660_STABLE',
        ],
      },
    },

    'linux_optional_gpu_tests_rel_gtests': {
      'gpu_gles2_conform_gtests': {
        'variants': [
          'LINUX_INTEL_UHD_630_STABLE',
          'LINUX_NVIDIA_GTX_1660_STABLE',
        ],
      },
    },

    'linux_optional_gpu_tests_rel_isolated_scripts': {
      'test_buildbucket_api_gpu_use_cases': {
        'variants': [
          'LINUX_NVIDIA_GTX_1660_STABLE',
        ],
      },
    },

    'mac_optional_gpu_tests_rel_gpu_telemetry_tests': {
      'gpu_common_and_optional_telemetry_tests': {
        'variants': [
          'MAC_MINI_INTEL_GPU_STABLE',
          'MAC_RETINA_AMD_GPU_STABLE',
          'MAC_RETINA_NVIDIA_GPU_STABLE',
        ],
      },
      'gpu_mediapipe_passthrough_telemetry_tests': {
        'variants': [
          'MAC_MINI_INTEL_GPU_STABLE',
          'MAC_RETINA_AMD_GPU_STABLE',
          'MAC_RETINA_NVIDIA_GPU_STABLE',
        ],
      },
      'gpu_passthrough_telemetry_tests': {
        'variants': [
          'MAC_MINI_INTEL_GPU_STABLE',
          'MAC_RETINA_AMD_GPU_STABLE',
        ],
      },
      'gpu_webcodecs_telemetry_test': {
        'variants': [
          'MAC_MINI_INTEL_GPU_STABLE',
          'MAC_RETINA_AMD_GPU_STABLE',
          'MAC_RETINA_NVIDIA_GPU_STABLE',
        ],
      },
      'gpu_webgl2_conformance_gl_passthrough_telemetry_tests': {
        'variants': [
          'MAC_MINI_INTEL_GPU_STABLE',
          'MAC_RETINA_AMD_GPU_STABLE',
        ],
      },
      'gpu_webgl_conformance_gl_passthrough_telemetry_tests': {
        'variants': [
          'MAC_MINI_INTEL_GPU_STABLE',
          'MAC_RETINA_AMD_GPU_STABLE',
        ],
      },
      'gpu_webgl_conformance_metal_passthrough_telemetry_tests': {
        'variants': [
          'MAC_MINI_INTEL_GPU_STABLE',
          'MAC_RETINA_AMD_GPU_STABLE',
        ],
      },
      'gpu_webgl_conformance_swangle_passthrough_representative_telemetry_tests': {
        'variants': [
          'MAC_MINI_INTEL_GPU_STABLE',
          'MAC_RETINA_AMD_GPU_STABLE',
        ],
      },
    },

    'mac_optional_gpu_tests_rel_gtests': {
      'gpu_fyi_and_optional_non_linux_gtests': {
        'variants': [
          'MAC_MINI_INTEL_GPU_STABLE',
          'MAC_RETINA_AMD_GPU_STABLE',
          'MAC_RETINA_NVIDIA_GPU_STABLE',
        ],
      },
      'gpu_fyi_mac_specific_gtests': {
        'variants': [
          'MAC_MINI_INTEL_GPU_STABLE',
          'MAC_RETINA_AMD_GPU_STABLE',
          'MAC_RETINA_NVIDIA_GPU_STABLE',
        ],
      },
      'gpu_gles2_conform_gtests': {
        'variants': [
          'MAC_MINI_INTEL_GPU_STABLE',
          'MAC_RETINA_AMD_GPU_STABLE',
          'MAC_RETINA_NVIDIA_GPU_STABLE',
        ],
      },
    },

    'webview_trichrome_10_cts_tests_gtest': {
      'webview_trichrome_cts_tests': {
        'variants': [
          'WEBVIEW_TRICHROME_FULL_CTS_TESTS',
          'WEBVIEW_TRICHROME_INSTANT_CTS_TESTS',
        ]
      }
    },

    'win_optional_gpu_tests_rel_gpu_telemetry_tests': {
      'gpu_common_and_optional_telemetry_tests': {
        'variants': [
          'WIN10_INTEL_UHD_630_STABLE',
          'WIN10_NVIDIA_GTX_1660_STABLE',
        ],
      },
      'gpu_mediapipe_passthrough_telemetry_tests': {
        'variants': [
          'WIN10_INTEL_UHD_630_STABLE',
          'WIN10_NVIDIA_GTX_1660_STABLE',
        ],
      },
      'gpu_webcodecs_telemetry_test': {
        'variants': [
          'WIN10_INTEL_UHD_630_STABLE',
          'WIN10_NVIDIA_GTX_1660_STABLE',
        ],
      },
      'gpu_webgl2_conformance_d3d11_passthrough_telemetry_tests': {
        'variants': [
          'WIN10_INTEL_UHD_630_STABLE',
          'WIN10_NVIDIA_GTX_1660_STABLE',
        ],
      },
      'gpu_webgl_conformance_d3d11_passthrough_telemetry_tests': {
        'variants': [
          'WIN10_INTEL_UHD_630_STABLE',
          'WIN10_NVIDIA_GTX_1660_STABLE',
        ],
      },
      'gpu_webgl_conformance_d3d9_passthrough_telemetry_tests': {
        'variants': [
          'WIN10_INTEL_UHD_630_STABLE',
          'WIN10_NVIDIA_GTX_1660_STABLE',
        ],
      },
      'gpu_webgl_conformance_vulkan_passthrough_telemetry_tests': {
        'variants': [
          'WIN10_INTEL_UHD_630_STABLE',
          'WIN10_NVIDIA_GTX_1660_STABLE',
        ],
      },
    },

    'win_optional_gpu_tests_rel_gtests': {
      'gpu_default_and_optional_win_specific_gtests': {
        'variants': [
          'WIN10_INTEL_UHD_630_STABLE',
          'WIN10_NVIDIA_GTX_1660_STABLE',
        ],
      },
      'gpu_fyi_and_optional_non_linux_gtests': {
        'variants': [
          'WIN10_INTEL_UHD_630_STABLE',
          'WIN10_NVIDIA_GTX_1660_STABLE',
        ],
      },
      'gpu_fyi_and_optional_win_specific_gtests': {
        'variants': [
          'WIN10_INTEL_UHD_630_STABLE',
          'WIN10_NVIDIA_GTX_1660_STABLE',
        ],
      },
      'gpu_gles2_conform_gtests': {
        'variants': [
          'WIN10_INTEL_UHD_630_STABLE',
          'WIN10_NVIDIA_GTX_1660_STABLE',
        ],
      },
    },

    'win_optional_gpu_tests_rel_isolated_scripts': {
      'gpu_command_buffer_perf_passthrough_isolated_scripts': {
        'variants': [
          'WIN10_NVIDIA_GTX_1660_STABLE',
        ],
      },
    },
  }
}