# 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.
# * on_luci: boolean true or false
#       whether the task runs on LUCI builders. Tests will be gradually marked on_luci during the
#       devicelab to LUCI migration. And when the migration is complete, on_luci flag will be
#       removed.

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"]

  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_android__scroll_smoothness:
    description: >
      Measures the smoothness of scrolling of the Complex Layout sample app on
      Android.
    stage: devicelab
    required_agent_capabilities: ["linux/android"]

  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"]

  cull_opacity_perf__e2e_summary:
    description: >
      Measures the runtime performance of culling opacity widgets on Android on
      E2E with self-driving test app.
    stage: devicelab
    required_agent_capabilities: ["linux/android"]

  multi_widget_construction_perf__timeline_summary:
    description: >
      Measures the runtime performance of constructing and destructing widgets on Android.
    stage: devicelab
    required_agent_capabilities: ["linux/android"]

  multi_widget_construction_perf__e2e_summary:
    description: >
      Measures the runtime performance of constructing and destructing widgets on Android.
    stage: devicelab
    required_agent_capabilities: ["linux/android"]

  frame_policy_delay_test_android:
    description: >
      Tests the effect of LiveTestWidgetsFlutterBindingFramePolicy.benchmarkLive
    stage: devicelab
    required_agent_capabilities: ["linux/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"]

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

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

  cubic_bezier_perf__e2e_summary:
    description: >
      Measures the runtime performance of cubic bezier animations on Android
      using e2e.
    stage: devicelab
    required_agent_capabilities: ["linux/android"]

  cubic_bezier_perf_sksl_warmup__timeline_summary:
    description: >
      Measures the runtime performance of cubic bezier animations on Android
      with SkSL shader warm-up.
    stage: devicelab
    required_agent_capabilities: ["mac/android"]

  cubic_bezier_perf_sksl_warmup__e2e_summary:
    description: >
      Measures the runtime performance of cubic bezier animations on Android
      with SkSL shader warm-up using e2e.
    stage: devicelab
    required_agent_capabilities: ["linux/android"]

  flutter_gallery_sksl_warmup_ios32__transition_perf:
    description: >
      Measures the runtime performance of Flutter gallery transitions on iPhone4s
      with SkSL shader warm-up.
    stage: devicelab_ios
    required_agent_capabilities: ["mac/ios32"]
    flaky: true

  flutter_gallery_sksl_warmup__transition_perf_e2e_ios32:
    description: >
      Measures the runtime performance of Flutter gallery transitions on iPhone4s
      with SkSL shader warm-up with e2e.
    stage: devicelab_ios
    required_agent_capabilities: ["mac/ios32"]
    flaky: true

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

  backdrop_filter_perf__e2e_summary:
    description: >
      Measures the runtime performance of backdrop filter blurs on Android.
    stage: devicelab
    required_agent_capabilities: ["linux/android"]
    flaky: true

  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"]

  imagefiltered_transform_animation_perf__timeline_summary:
    description: >
      Measures the runtime performance of imagefiltered widget with transform 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"]

  hybrid_android_views_integration_test:
    description: >
      Tests hybrid 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"]

  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"]

  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"]

  service_extensions_test:
    description: >
      Validates our service protocol extensions.
    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"]
    on_luci: true

  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"]

  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_ios
    required_agent_capabilities: ["mac/ios"]

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

  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"]

  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"]
    flaky: true

  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"]

  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/ios"]
    flaky: true

  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"]

  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"]

  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"]

  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"]

  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_ios:
    description: >
      Measure CPU/GPU usage percentages of a simple animation.
    stage: devicelab_ios
    required_agent_capabilities: ["mac/ios"]

  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_extensions_test:
    description: >
      Checks that an iOS app with extensions can be built 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_e2e:
    description: >
      Measures the performance of screen transitions in Flutter Gallery on
      Android with e2e.
    stage: devicelab
    required_agent_capabilities: ["linux/android"]

  flutter_gallery__transition_perf_e2e_ios32:
    description: >
      Measures the performance of screen transitions in Flutter Gallery on
      Android with e2e.
    stage: devicelab_ios
    required_agent_capabilities: ["mac/ios32"]

  flutter_gallery__transition_perf_e2e_ios:
    description: >
      Measures the performance of screen transitions in Flutter Gallery on
      Android with e2e.
    stage: devicelab_ios
    required_agent_capabilities: ["mac/ios"]

  flutter_gallery__transition_perf_hybrid:
    description: >
      Measures the performance of screen transitions in Flutter Gallery on
      Android where the page transitions are self-driven on device without host
      interventions, but the timeline events are still sent to host to be
      processed.
    stage: devicelab
    required_agent_capabilities: ["linux/android"]

  flutter_gallery_sksl_warmup__transition_perf:
    description: >
      Measures the runtime performance of Flutter gallery transitions on Android
      with SkSL shader warm-up.
    stage: devicelab
    required_agent_capabilities: ["linux/android"]

  flutter_gallery_sksl_warmup__transition_perf_e2e:
    description: >
      Measures the runtime performance of Flutter gallery transitions on Android
      with SkSL shader warm-up with e2e.
    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"]

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

  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"]

  new_gallery_ios__transition_perf:
    description: >
      Measures the performance of screen transitions in the new Flutter Gallery on iOS.
    stage: devicelab_ios
    required_agent_capabilities: ["mac/ios"]

  new_gallery__crane_perf:
    description: >
      Measures the performance of the Crane page in the new Flutter Gallery on Android.
    stage: devicelab
    required_agent_capabilities: ["linux/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"]

  fast_scroll_heavy_gridview__memory:
    description: >
      Measures memory usage for scrolling through a grid view of heavy memory
      usage widgets.
    stage: devicelab
    required_agent_capabilities: ["linux/android"]

  large_image_changer_perf_android:
    description: >
      Measures memory usage when rotating through a series of large images.
    stage: devicelab
    required_agent_capabilities: ["linux/android"]

  large_image_changer_perf_ios:
    description: >
      Measures memory, cpu, and gpu usage when rotating through a series of large images.
    stage: devicelab
    required_agent_capabilities: ["mac/ios"]

  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"]

  animated_placeholder_perf__e2e_summary:
    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"]
