# Describes the tasks we run in the continuous integration (CI) environment.
#
# Cocoon[1] uses this file to generate a checklist of tasks to be performed for
# every master commit.
#
# [1] github.com/flutter/cocoon

# CI tasks.
#
# Each key in this dictionary is the unique name of a task, which also
# corresponds to a file in the "bin/" directory that the task runner will run.
#
# Required properties:
#
# * description: free form string
#       describes what the task is about
# * stage: one of "devicelab", "devicelab_ios", "devicelab_win"
#       tasks are grouped by stage so they appear next to each on the dashboard and have a distinct
#       icon attached to them. Stages can be used to create dependencies, e.g. we may decide to not
#       run device tests on red Cirrus builds.
# * required_agent_capabilities: a list of strings
#       list of capabilities a devicelab agent must have to be able to run this task.
#
# Optional properties:
#
# * flaky: boolean true or false
#       whether the task is considered flaky; the result of running a flaky task does not affect
#       the overall build status. Tests should be marked flaky when newly added, until they have
#       been proved for a few cycles. Tests that are actually flaky but not being actively worked
#       on should be hidden because they just cause confusion otherwise.
# * timeout_in_minutes: integer
#       a custom task timeout, specified in minutes.

tasks:
  # Tests of compiling in a variety of modes

  complex_layout_android__compile:
    description: >
      Collects various performance metrics of compiling the Complex
      Layout sample app for Android from Linux.
    stage: devicelab
    required_agent_capabilities: ["linux/android"]

  complex_layout_ios__compile:
    description: >
      Collects various performance metrics of compiling the Complex
      Layout sample app for iOS from Mac.
    stage: devicelab_ios
    required_agent_capabilities: ["mac/ios"]

  complex_layout_win__compile:
    description: >
      Collects various performance metrics of compiling the Complex
      Layout for Android from Windows.
    stage: devicelab_win
    required_agent_capabilities: ["windows/android"]

  basic_material_app_android__compile:
    description: >
      Collects various performance metrics of compiling the default
      app for Android from Linux.
    stage: devicelab
    required_agent_capabilities: ["linux/android"]

  basic_material_app_ios__compile:
    description: >
      Collects various performance metrics of compiling the default
      app for iOS from Mac.
    stage: devicelab_ios
    required_agent_capabilities: ["mac/ios"]

  basic_material_app_win__compile:
    description: >
      Collects various performance metrics of compiling the default
      app for Android from Windows.
    stage: devicelab_win
    required_agent_capabilities: ["windows/android"]

  codegen_integration_win:
    description: >
      Runs codegeneration and verifies that it can execute
      correctly.
    stage: devicelab_win
    required_agent_capabilities: ["windows/android"]

  codegen_integration_mac:
    description: >
      Runs codegeneration and verifies that it can execute
      correctly.
    stage: devicelab_ios
    required_agent_capabilities: ["mac/ios"]

  codegen_integration_linux:
    description: >
      Runs codegeneration and verifies that it can execute
      correctly.
    stage: devicelab
    required_agent_capabilities: ["linux/android"]

  uncaught_image_error_linux:
    description: >
      Ensures that an error thrown into the zone can be caught by the ImageStream
      completer
    stage: devicelab
    required_agent_capabilities: ["linux/android"]

  flutter_gallery_android__compile:
    description: >
      Collects various performance metrics of compiling the Flutter
      Gallery for Android from Linux.
    stage: devicelab
    required_agent_capabilities: ["linux/android"]

  flutter_gallery_ios__compile:
    description: >
      Collects various performance metrics of compiling the Flutter
      Gallery for iOS from Mac.
    stage: devicelab_ios
    required_agent_capabilities: ["mac/ios"]

  flutter_gallery_win__compile:
    description: >
      Collects various performance metrics of compiling the Flutter
      Gallery for Android from Windows.
    stage: devicelab_win
    required_agent_capabilities: ["windows/android"]

  windows_chrome_dev_mode:
    description: >
      Run flutter web on the devicelab and hot restart.
    stage: devicelab_win
    required_agent_capabilities: ["windows/android"]

  # Android on-device tests

  complex_layout_scroll_perf__timeline_summary:
    description: >
      Measures the runtime performance of the Complex Layout sample app on
      Android.
    stage: devicelab
    required_agent_capabilities: ["mac/android"]

  tiles_scroll_perf__timeline_summary:
    description: >
      Measures the runtime performance of the tiles tab in the Complex Layout sample app on Android.
    stage: devicelab
    required_agent_capabilities: ["mac/android"]

  platform_views_scroll_perf__timeline_summary:
    description: >
      Measures the runtime performance of platform views in the Complex Layout sample app on Android.
    stage: devicelab
    required_agent_capabilities: ["linux/android"]

  android_view_scroll_perf__timeline_summary:
    description: >
      Measures the runtime performance of Android views in the platform view layout sample app on Android.
    stage: devicelab
    required_agent_capabilities: ["linux/android"]

  home_scroll_perf__timeline_summary:
    description: >
      Measures the runtime performance of scrolling the material page in the
      flutter_gallery app on Android.
    stage: devicelab
    required_agent_capabilities: ["mac/android"]

  drive_perf_debug_warning:
    description: >
      Check that driver will print warnings when traceAction is called in debug mode.
    stage: devicelab
    required_agent_capabilities: ["mac/android"]

  cull_opacity_perf__timeline_summary:
    description: >
      Measures the runtime performance of culling opacity widgets on Android.
    stage: devicelab
    required_agent_capabilities: ["mac/android"]

  picture_cache_perf__timeline_summary:
    description: >
      Measures the runtime performance of raster caching many pictures on Android.
    stage: devicelab
    required_agent_capabilities: ["mac/android"]

  cubic_bezier_perf__timeline_summary:
    description: >
      Measures the runtime performance of cubic bezier animations on Android.
    stage: devicelab
    required_agent_capabilities: ["mac/android"]

  backdrop_filter_perf__timeline_summary:
    description: >
      Measures the runtime performance of backdrop filter blurs on Android.
    stage: devicelab
    required_agent_capabilities: ["mac/android"]

  textfield_perf__timeline_summary:
    description: >
      Measures the runtime performance of textfield on Android.
    stage: devicelab
    required_agent_capabilities: ["mac/android"]

  color_filter_and_fade_perf__timeline_summary:
    description: >
      Measures the runtime performance of color filter with fade on Android.
    stage: devicelab
    required_agent_capabilities: ["mac/android"]

  fading_child_animation_perf__timeline_summary:
    description: >
      Measures the runtime performance of opacity filter with fade on Android.
    stage: devicelab
    required_agent_capabilities: ["mac/android"]

  flavors_test:
    description: >
      Checks that flavored builds work on Android.
    stage: devicelab
    required_agent_capabilities: ["mac/android"]

  channels_integration_test:
    description: >
      Checks that platform channels work on Android.
    stage: devicelab
    required_agent_capabilities: ["mac/android"]

  external_ui_integration_test:
    description: >
      Checks that external UIs work on Android.
    stage: devicelab
    required_agent_capabilities: ["mac/android"]

  embedded_android_views_integration_test:
    description: >
      Tests embedded Android views.
    stage: devicelab
    required_agent_capabilities: ["mac/android"]

  android_semantics_integration_test:
    description: >
      Tests that the Android accessibility bridge produces correct semantics.
    stage: devicelab
    required_agent_capabilities: ["mac/android"]

  run_release_test:
    description: >
      Checks that `flutter run --release` does not crash.
    stage: devicelab
    required_agent_capabilities: ["mac/android"]

  platform_interaction_test:
    description: >
      Checks platform interaction on Android.
    stage: devicelab
    required_agent_capabilities: ["mac/android"]

  platform_channel_sample_test:
    description: >
     Runs a driver test on the Platform Channel sample app on Android.
    stage: devicelab
    required_agent_capabilities: ["mac/android"]

  platform_view__start_up:
    description: >
      Verifies that Platform View can be used from an Android project.
    stage: devicelab
    required_agent_capabilities: ["mac/android"]

  complex_layout__start_up:
    description: >
      Measures the startup time of the Complex Layout sample app on Android.
    stage: devicelab
    required_agent_capabilities: ["mac/android"]

  hot_mode_dev_cycle__benchmark:
    description: >
      Measures the performance of Dart VM hot patching feature.
    stage: devicelab
    required_agent_capabilities: ["mac/android"]

  complex_layout_scroll_perf__memory:
    description: >
      Measures memory usage of the scroll performance test.
    stage: devicelab
    required_agent_capabilities: ["mac/android"]

  complex_layout_scroll_perf__devtools_memory:
    description: >
      Measures memory usage of the scroll performance test using DevTools.
    stage: devicelab
    required_agent_capabilities: ["linux/android"]
    flaky: true

  hello_world_android__compile:
    description: >
      Measures the APK size of Hello World.
    stage: devicelab
    required_agent_capabilities: ["mac/android"]

  hello_world__memory:
    description: >
      Measures starting memory usage of the simplest Flutter app.
    stage: devicelab
    required_agent_capabilities: ["mac/android"]

  # hello_world__start_up:
  #   description: >
  #     Verifies that Hello World can start on an array of devices.
  #   stage: devicelab
  #   required_agent_capabilities: ["linux/android_esoteric"]

  microbenchmarks:
    description: >
      Runs benchmarks from dev/benchmarks/microbenchmarks.
    stage: devicelab
    required_agent_capabilities: ["mac/android"]
    timeout_in_minutes: 30

  flutter_view__start_up:
    description: >
      Verifies that Flutter View can be used from an Android project.
    stage: devicelab
    required_agent_capabilities: ["mac/android"]

  integration_ui:
    description: >
      Runs end-to-end Flutter tests on Android.
    stage: devicelab
    required_agent_capabilities: ["mac/android"]

  commands_test:
    description: >
      Runs tests of flutter run commands.
    stage: devicelab
    required_agent_capabilities: ["mac/android"]

  run_machine_concurrent_hot_reload:
    description: >
      Runs tests of concurrent hot reload commands via flutter run --machine.
    stage: devicelab
    required_agent_capabilities: ["mac/android"]

  service_extensions_test:
    description: >
      Validates our service protocol extensions.
    stage: devicelab
    required_agent_capabilities: ["mac/android"]

  android_sample_catalog_generator:
    description: >
      Builds sample catalog markdown pages and Android screenshots
    stage: devicelab
    required_agent_capabilities: ["mac/android"]

  android_enable_twc:
    description: >
      Verifies that track-widget-creation can be enabled and disabled.
    stage: devicelab
    required_agent_capabilities: ["mac/android"]

  android_defines_test:
    description: >
      Builds an APK with a --dart-define and verifies it can be used as a constant
    stage: devicelab
    required_agent_capabilities: ["linux/android"]

  android_obfuscate_test:
    description: >
      Builds an obfuscated APK and verifies a dart identifier cannot be found
    stage: devicelab
    required_agent_capabilities: ["linux/android"]

  complex_layout_semantics_perf:
    description: >
      Measures duration of building the initial semantics tree.
    stage: devicelab
    required_agent_capabilities: ["linux/android"]

  routing_test:
    description: >
      Verifies that `flutter drive --route` still works. No performance numbers.
    stage: devicelab
    required_agent_capabilities: ["linux/android"]

  # flutter_gallery_instrumentation_test:
  #   description: >
  #     Same as flutter_gallery__transition_perf but uses Android instrumentation
  #     framework, and therefore does not require a host computer to run. This
  #     test can run on off-the-shelf infrastructures, such as Firebase Test Lab.
  #   stage: devicelab
  #   required_agent_capabilities: ["linux/android"]
  #   flaky: true

  flutter_attach_test_android:
    description: >
      Tests the `flutter attach` command.
    stage: devicelab
    required_agent_capabilities: ["linux/android"]
    timeout_in_minutes: 20

  named_isolates_test:
    description: >
      Tests naming and attaching to specific isolates.
    stage: devicelab
    required_agent_capabilities: ["linux/android"]

  linux_chrome_dev_mode:
    description: >
      Run flutter web on the devicelab and hot restart.
    stage: devicelab
    required_agent_capabilities: ["linux/android"]

  web_size__compile_test:
    description: >
      Measures the size of a dart2js bundle.
    stage: devicelab
    required_agent_capabilities: ["linux/android"]

  image_list_reported_duration:
    description: >
      Measures image loading performance on release (aot) build.
    stage: devicelab
    required_agent_capabilities: ["linux/android"]

  image_list_jit_reported_duration:
    description: >
      Measures image loading performance on debug (jit) build.
    stage: devicelab
    required_agent_capabilities: ["linux/android"]

  build_benchmark:
    description: >
      Measures APK build performance across config changes.
    stage: devicelab
    required_agent_capabilities: ["linux/android"]

  time_to_development_benchmark__android:
    description: >
      Measures time from flutter run until resident runner setup is complete.
    stage: devicelab
    required_agent_capabilities: ["linux/android"]

  # iOS on-device tests

  ios_defines_test:
    description: >
      Builds a Framework with a --dart-define and verifies it can be used as a constant
    stage: devicelab
    required_agent_capabilities: ["mac/ios"]

  ios_content_validation_test:
    description: >
      Builds an obfuscated app and verifies contents and structure
    stage: devicelab
    required_agent_capabilities: ["mac/ios"]

  tiles_scroll_perf_ios__timeline_summary:
    description: >
      Measures the runtime performance of the tiles tab in the Complex Layout sample app on iPhone 6.
    stage: devicelab_ios
    required_agent_capabilities: ["mac/ios"]

  tiles_scroll_perf_iphonexs__timeline_summary:
    description: >
      Measures the runtime performance of the tiles tab in the Complex Layout sample app on iPhone XS.
    stage: devicelab_ios
    # TODO(keyonghan): change with https://github.com/flutter/flutter/issues/50383
    required_agent_capabilities: ["mac/ios"]

  platform_views_scroll_perf_ios__timeline_summary:
    description: >
      Measures the runtime performance of platform views in the Complex Layout sample app on iPhone 6.
    stage: devicelab_ios
    required_agent_capabilities: ["mac/ios"]

  flutter_gallery_ios32__start_up:
    description: >
      Measures the startup time of the Flutter Gallery app on 32-bit iOS (iPhone 4S).
    stage: devicelab_ios
    required_agent_capabilities: ["mac/ios32"]

  flutter_gallery_ios32__transition_perf:
    description: >
      Measures the performance of screen transitions in Flutter Gallery on
      32-bit iOS (iPhone 4S).
    stage: devicelab_ios
    required_agent_capabilities: ["mac/ios32"]
    flaky: true # TODO(jmagman): https://github.com/flutter/flutter/issues/57225

  flavors_test_ios:
    description: >
      Checks that flavored builds work on iPhone 6.
    stage: devicelab_ios
    required_agent_capabilities: ["mac/ios"]

  external_ui_integration_test_ios:
    description: >
      Checks that external UIs work on iPhone 6.
    stage: devicelab_ios
    required_agent_capabilities: ["mac/ios"]

  channels_integration_test_ios:
    description: >
      Checks that platform channels work on iPhone 6.
    stage: devicelab_ios
    required_agent_capabilities: ["mac/ios"]

  platform_interaction_test_ios:
    description: >
      Checks platform interaction on iPhone 6.
    stage: devicelab_ios
    required_agent_capabilities: ["mac/ios"]

  platform_channel_sample_test_ios:
    description: >
      Runs a driver test on the Platform Channel sample app on iPhone 6 Objective-C project.
    stage: devicelab_ios
    required_agent_capabilities: ["mac/ios"]

  platform_channel_sample_test_swift:
    description: >
      Runs a driver test on the Platform Channel sample app on iPhone 6 Swift project.
    stage: devicelab_ios
    required_agent_capabilities: ["mac/ios"]

  platform_view_ios__start_up:
    description: >
      Verifies that Platform View can be used from an iOS project.
    stage: devicelab_ios
    required_agent_capabilities: ["mac/ios"]

  backdrop_filter_perf_ios__timeline_summary:
    description: >
      Measures the runtime performance of backdrop filter blurs on iOS.
    stage: devicelab_ios
    required_agent_capabilities: ["mac/ios"]

  # post_backdrop_filter_perf_ios__timeline_summary:
  #   description: >
  #     Measures the runtime performance of animations after a backdrop filter is removed on iOS.
  #   stage: devicelab_ios
  #   required_agent_capabilities: ["mac/iphonexs"]

  complex_layout_scroll_perf_ios__timeline_summary:
    description: >
      Measures the runtime performance of the Complex Layout sample app on
      iOS.
    stage: devicelab_ios
    required_agent_capabilities: ["mac/ios"]

  flutter_gallery_ios__start_up:
    description: >
      Measures the startup time of the Flutter Gallery app on iPhone 6.
    stage: devicelab_ios
    required_agent_capabilities: ["mac/ios"]

  complex_layout_ios__start_up:
    description: >
      Measures the startup time of the Complex Layout sample app on iPhone 6.
    stage: devicelab_ios
    required_agent_capabilities: ["mac/ios"]

  flutter_gallery_ios__transition_perf:
    description: >
      Measures the performance of screen transitions in Flutter Gallery on
      iOS.
    stage: devicelab_ios
    required_agent_capabilities: ["mac/ios"]
    flaky: true # TODO(jmagman): https://github.com/flutter/flutter/issues/57225

  hello_world_ios__compile:
    description: >
      Measures the IPA size of Hello World.
    stage: devicelab_ios
    required_agent_capabilities: ["mac/ios"]

  microbenchmarks_ios:
    description: >
      Runs benchmarks from dev/benchmarks/microbenchmarks on iPhone 6.
    stage: devicelab_ios
    #TODO(godofredoc): Remove ios/12 capability once
    # https://github.com/flutter/flutter/issues/49635 is fixed.
    required_agent_capabilities: ["mac/ios", "ios/12"]
    timeout_in_minutes: 30

  flutter_view_ios__start_up:
    description: >
      Verifies that Flutter View can be used from an iOS project.
    stage: devicelab_ios
    required_agent_capabilities: ["mac/ios"]

  integration_ui_ios:
    description: >
      Runs end-to-end Flutter tests on iPhone 6.
    stage: devicelab_ios
    required_agent_capabilities: ["mac/ios"]
    timeout_in_minutes: 20

  ios_platform_view_tests:
    description: >
      Runs end-to-end tests with platform views in the scene.
    stage: devicelab_ios
    required_agent_capabilities: ["mac/ios"]

  ios_enable_twc:
    description: >
      Verifies that track-widget-creation can be enabled and disabled.
    stage: devicelab_ios
    required_agent_capabilities: ["mac/ios"]

  # TODO(fujino): does not pass on iOS13 https://github.com/flutter/flutter/issues/43029
  # system_debug_ios:
  #   description: >
  #     Tests that the Engine correctly initializes the system debugger for debug-mode iOS apps.
  #   stage: devicelab_ios
  #   required_agent_capabilities: ["mac/ios"]
  #   timeout_in_minutes: 10

  ios_sample_catalog_generator:
    description: >
      Builds sample catalog markdown pages and iOS screenshots
    stage: devicelab_ios
    required_agent_capabilities: ["mac/ios"]

  macos_chrome_dev_mode:
    description: >
      Run flutter web on the devicelab and hot restart.
    stage: devicelab_ios
    required_agent_capabilities: ["mac/ios"]

  build_benchmark_ios:
    description: >
      Measures iOS build performance across config changes.
    stage: devicelab_ios
    required_agent_capabilities: ["mac/ios"]

  # simple_animation_perf_iphonexs:
  #   description: >
  #     Measure CPU/GPU usage percentages of a simple animation.
  #   stage: devicelab_ios
  #   required_agent_capabilities: ["mac/iphonexs"]

  smoke_catalina_start_up_ios:
    description: >
      A smoke test that runs on macOS Catalina, which is a clone of the Gallery startup latency test.
    stage: devicelab_ios
    required_agent_capabilities: ["mac-catalina/ios"]

  smoke_catalina_hot_mode_dev_cycle_ios__benchmark:
    description: >
      A some test that runs on macOS Catalina, which is a clone of the Dart VM hot patching performance benchmarking.
    stage: devicelab_ios
    required_agent_capabilities: ["mac-catalina/ios"]

  smoke_catalina_start_up:
    description: >
      A smoke test that runs on macOS Catalina, which is a clone of the Gallery startup latency test.
    stage: devicelab
    required_agent_capabilities: ["mac-catalina/android"]

  smoke_catalina_hot_mode_dev_cycle__benchmark:
    description: >
      A some test that runs on macOS Catalina, which is a clone of the Dart VM hot patching performance benchmarking.
    stage: devicelab
    required_agent_capabilities: ["mac-catalina/android"]

  # macOS target platform tests
  hot_mode_dev_cycle_macos_target__benchmark:
    description: >
      Checks the functionality and performance of hot reload on a macOS target platform
    stage: devicelab
    required_agent_capabilities: ["mac/ios"]

#  TODO(jonahwilliams): investigate build failures on devicelab infra to re-enable.
#  mac_enable_twc:
#    description: >
#      Verifies that track-widget-creation can be enabled and disabled.
#    stage: devicelab_ios
#    required_agent_capabilities: ["mac/ios"]
#    flaky: true

  ios_app_with_watch_companion:
    description: >
      Checks that an iOS app with a watchOS companion can be build for physical and simulated devices.
    stage: devicelab_ios
    required_agent_capabilities: ["mac/ios"]

  # Tests running on Windows host

  flavors_test_win:
    description: >
      Checks that flavored builds work on Windows.
    stage: devicelab_win
    required_agent_capabilities: ["windows/android"]

  channels_integration_test_win:
    description: >
      Checks that platform channels work when app is launched from Windows.
    stage: devicelab_win
    required_agent_capabilities: ["windows/android"]

  plugin_test_win:
    description: >
      Checks that the project template works and supports plugins on Windows.
    stage: devicelab_win
    required_agent_capabilities: ["windows/android"]

  hot_mode_dev_cycle_win__benchmark:
    description: >
      Measures the performance of Dart VM hot patching feature on Windows.
    stage: devicelab_win
    required_agent_capabilities: ["windows/android"]

  # run_without_leak_win:
  #   description: >
  #     Checks that `flutter run` does not leak dart.exe on Windows.
  #   stage: devicelab_win
  #   required_agent_capabilities: ["windows/android"]

  # Tests running on Linux hosts

  hot_mode_dev_cycle_linux__benchmark:
    description: >
      Measures the performance of Dart VM hot patching feature on a Linux host.
    stage: devicelab
    required_agent_capabilities: ["linux/android"]

  flutter_test_performance:
    description: >
      Measures performance of running flutter test.
    stage: devicelab
    required_agent_capabilities: ["linux/android"]

  dartdocs:
    description: >
      Tracks how many members are still lacking documentation.
    stage: devicelab
    required_agent_capabilities: ["linux-vm"]

  technical_debt__cost:
    description: >
      Estimates our technical debt (TODOs, analyzer ignores, etc).
    stage: devicelab
    required_agent_capabilities: ["linux-vm"]

  flutter_gallery__start_up:
    description: >
      Measures the startup time of the Flutter Gallery app on Android.
    stage: devicelab
    required_agent_capabilities: ["linux/android"]

  flutter_gallery__transition_perf:
    description: >
      Measures the performance of screen transitions in Flutter Gallery on
      Android.
    stage: devicelab
    required_agent_capabilities: ["linux/android"]

  flutter_gallery__transition_perf_with_semantics:
    description: >
      Measures the delta in performance of screen transitions without and
      with semantics enabled.
    stage: devicelab
    required_agent_capabilities: ["linux/android"]

  flutter_gallery__memory_nav:
    description: >
      Measures memory usage after repeated navigation in Gallery.
    stage: devicelab
    required_agent_capabilities: ["linux/android"]
    flaky: true

  flutter_gallery__back_button_memory:
    description: >
      Measures memory usage after Android app suspend and resume.
    stage: devicelab
    required_agent_capabilities: ["linux/android"]
    flaky: true

  flutter_gallery__image_cache_memory:
    description: >
      Measures memory usage for a list of large red squares in smaller containers.
    stage: devicelab
    required_agent_capabilities: ["linux/android"]

  new_gallery__transition_perf:
    description: >
      Measures the performance of screen transitions in the new Flutter Gallery on Android.
    stage: devicelab
    required_agent_capabilities: ["mac/android"]

  fast_scroll_large_images__memory:
    description: >
      Measures memory usage for scrolling through a list of large images.
    stage: devicelab
    required_agent_capabilities: ["mac/android"]

  animated_placeholder_perf:
    description: >
      Measures frame build and rasterizer times, as well as frame build counts
      for a grid of images that uses FadeInImage with an animated gif as the
      placeholder.
    stage: devicelab
    required_agent_capabilities: ["linux/android"]

  analyzer_benchmark:
    description: >
      Measures the speed of Dart analyzer.
    stage: devicelab
    required_agent_capabilities: ["linux/android"]

  web_benchmarks_html:
    description: >
      Runs Web benchmarks on Chrome on a Linux machine using the HTML rendering backend.
    stage: devicelab
    required_agent_capabilities: ["linux-vm"]

  web_benchmarks_canvaskit:
    description: >
      Runs Web benchmarks on Chrome on a Linux machine using the CanvasKit rendering backend.
    stage: devicelab
    required_agent_capabilities: ["linux-vm"]

  web_enable_twc:
     description: >
       Verifies that track-widget-creation can be enabled and disabled.
     stage: devicelab
     required_agent_capabilities: ["linux-vm"]

  # run_without_leak_linux:
  #   description: >
  #     Checks that `flutter run` does not leak dart on Linux.
  #   stage: devicelab
  #   required_agent_capabilities: ["linux/android"]
  #   flaky: true

  # run_without_leak_mac:
  #   description: >
  #     Checks that `flutter run` does not leak dart on macOS.
  #   stage: devicelab
  #   required_agent_capabilities: ["mac/android"]
  #   flaky: true

  # android_splash_screen_integration_test:
  #   description: >
  #     Runs end-to-end test of Flutter's Android splash behavior.
  #   stage: devicelab
  #   required_agent_capabilities: ["linux/android"]
  #   flaky: true

  # TODO(cyanglaz): Enable this test when we know how to test gold in device labs
  # Or completely remove this test to LUCI when LUCI supports physical iOS devices.
  # flutter_driver_screenshot_test_ios:
  #   description: >
  #     Screenshot tests running on a specifc iPhone 6.
  #     The test makes sure that there is no regression while renderring an image with gl on iOS.
  #   stage: devicelab_ios
  #   required_agent_capabilities: ["mac/ios", "ios/gl-render-image"]
  #   flaky: true

  flutter_gallery_v2_chrome_run_test:
    description: >
      Checks that the New Flutter Gallery runs successfully on Chrome.
    stage: devicelab
    required_agent_capabilities: ["linux/android"]

  flutter_gallery_v2_web_compile_test:
    description: >
      Measures the time to compile the New Flutter Gallery to JavaScript
      and the size of the compiled code.
    stage: devicelab
    required_agent_capabilities: ["linux/android"]
