Skip to content

[engine] A wish for better Dart testing in the engine #133569

@matanlurey

Description

@matanlurey

The engine has (as of 50bd80773287fe96dfe12775352bd426193a5440) over 200k lines of Dart code.

git ls-files | grep '\.dart' | xargs wc -l
$ git ls-files | grep '\.dart' | xargs wc -l
    1088 ci/bin/format.dart
     227 ci/test/format_test.dart
     122 examples/glfw/main.dart
      80 examples/glfw_drm/main.dart
      15 flutter_frontend_server/bin/starter.dart
      91 flutter_frontend_server/lib/server.dart
      11 flutter_frontend_server/test/fixtures/.dart_tool/package_config.json
      27 flutter_frontend_server/test/fixtures/lib/main.dart
      82 flutter_frontend_server/test/to_string_test.dart
      35 impeller/fixtures/dart_tests.dart
     104 impeller/golden_tests_harvester/bin/golden_tests_harvester.dart
      43 impeller/golden_tests_harvester/lib/golden_tests_harvester.dart
      20 impeller/golden_tests_harvester/lib/logger.dart
       5 impeller/golden_tests_harvester/test/golden_tests_harvester_test.dart
     247 impeller/tessellator/dart/lib/tessellator.dart
      17 lib/gpu/lib/gpu.dart
      67 lib/gpu/lib/src/buffer.dart
      28 lib/gpu/lib/src/context.dart
      40 lib/gpu/lib/src/smoketest.dart
      40 lib/ui/annotations.dart
     595 lib/ui/channel_buffers.dart
     955 lib/ui/compositing.dart
     184 lib/ui/experiments/gpu.dart
     212 lib/ui/experiments/scene.dart
      51 lib/ui/experiments/setup_hooks.dart
      46 lib/ui/experiments/ui.dart
    1078 lib/ui/fixtures/ui_test.dart
    1838 lib/ui/geometry.dart
     167 lib/ui/hash_codes.dart
     411 lib/ui/hooks.dart
      73 lib/ui/isolate_name_server.dart
     200 lib/ui/key.dart
      49 lib/ui/lerp.dart
      25 lib/ui/math.dart
     123 lib/ui/natives.dart
    6990 lib/ui/painting.dart
    2453 lib/ui/platform_dispatcher.dart
      76 lib/ui/plugins.dart
     436 lib/ui/pointer.dart
    1054 lib/ui/semantics.dart
      29 lib/ui/setup_hooks.dart
    3561 lib/ui/text.dart
      43 lib/ui/ui.dart
    1104 lib/ui/window.dart
      67 lib/web_ui/dev/analyze.dart
      93 lib/web_ui/dev/browser.dart
      70 lib/web_ui/dev/browser_lock.dart
     125 lib/web_ui/dev/browser_process.dart
     350 lib/web_ui/dev/browser_roller.dart
     193 lib/web_ui/dev/build.dart
     391 lib/web_ui/dev/chrome.dart
     271 lib/web_ui/dev/chrome_installer.dart
      82 lib/web_ui/dev/cipd.dart
      61 lib/web_ui/dev/clean.dart
     280 lib/web_ui/dev/common.dart
      83 lib/web_ui/dev/edge.dart
     121 lib/web_ui/dev/edge_installation.dart
     234 lib/web_ui/dev/environment.dart
      24 lib/web_ui/dev/exceptions.dart
      90 lib/web_ui/dev/felt.dart
     253 lib/web_ui/dev/felt_config.dart
     123 lib/web_ui/dev/firefox.dart
     345 lib/web_ui/dev/firefox_installer.dart
     178 lib/web_ui/dev/generate_builder_json.dart
      99 lib/web_ui/dev/licenses.dart
     287 lib/web_ui/dev/pipeline.dart
     511 lib/web_ui/dev/roll_fallback_fonts.dart
      28 lib/web_ui/dev/safari_macos.dart
     308 lib/web_ui/dev/steps/compile_bundle_step.dart
     331 lib/web_ui/dev/steps/copy_artifacts_step.dart
     233 lib/web_ui/dev/steps/run_suite_step.dart
     123 lib/web_ui/dev/suite_filter.dart
    1123 lib/web_ui/dev/test_platform.dart
     475 lib/web_ui/dev/test_runner.dart
     434 lib/web_ui/dev/utils.dart
     110 lib/web_ui/dev/webdriver_browser.dart
      15 lib/web_ui/lib/annotations.dart
     157 lib/web_ui/lib/canvas.dart
     262 lib/web_ui/lib/channel_buffers.dart
     127 lib/web_ui/lib/compositing.dart
     953 lib/web_ui/lib/geometry.dart
     131 lib/web_ui/lib/hash_codes.dart
     128 lib/web_ui/lib/initialization.dart
     161 lib/web_ui/lib/key.dart
      37 lib/web_ui/lib/lerp.dart
      19 lib/web_ui/lib/math.dart
      18 lib/web_ui/lib/natives.dart
     877 lib/web_ui/lib/painting.dart
      57 lib/web_ui/lib/path.dart
      37 lib/web_ui/lib/path_metrics.dart
     529 lib/web_ui/lib/platform_dispatcher.dart
     158 lib/web_ui/lib/pointer.dart
     344 lib/web_ui/lib/semantics.dart
     189 lib/web_ui/lib/src/engine.dart
     116 lib/web_ui/lib/src/engine/alarm_clock.dart
      76 lib/web_ui/lib/src/engine/app_bootstrap.dart
     272 lib/web_ui/lib/src/engine/browser_detection.dart
    1232 lib/web_ui/lib/src/engine/canvas_pool.dart
     336 lib/web_ui/lib/src/engine/canvaskit/canvas.dart
    3644 lib/web_ui/lib/src/engine/canvaskit/canvaskit_api.dart
     429 lib/web_ui/lib/src/engine/canvaskit/canvaskit_canvas.dart
     273 lib/web_ui/lib/src/engine/canvaskit/color_filter.dart
     964 lib/web_ui/lib/src/engine/canvaskit/embedded_views.dart
     161 lib/web_ui/lib/src/engine/canvaskit/embedded_views_diff.dart
     323 lib/web_ui/lib/src/engine/canvaskit/fonts.dart
     384 lib/web_ui/lib/src/engine/canvaskit/image.dart
     196 lib/web_ui/lib/src/engine/canvaskit/image_filter.dart
     131 lib/web_ui/lib/src/engine/canvaskit/image_wasm_codecs.dart
     162 lib/web_ui/lib/src/engine/canvaskit/image_web_codecs.dart
     556 lib/web_ui/lib/src/engine/canvaskit/layer.dart
     233 lib/web_ui/lib/src/engine/canvaskit/layer_scene_builder.dart
     119 lib/web_ui/lib/src/engine/canvaskit/layer_tree.dart
      29 lib/web_ui/lib/src/engine/canvaskit/mask_filter.dart
     100 lib/web_ui/lib/src/engine/canvaskit/n_way_canvas.dart
     236 lib/web_ui/lib/src/engine/canvaskit/native_memory.dart
     406 lib/web_ui/lib/src/engine/canvaskit/painting.dart
     325 lib/web_ui/lib/src/engine/canvaskit/path.dart
     130 lib/web_ui/lib/src/engine/canvaskit/path_metrics.dart
     124 lib/web_ui/lib/src/engine/canvaskit/picture.dart
      46 lib/web_ui/lib/src/engine/canvaskit/picture_recorder.dart
      19 lib/web_ui/lib/src/engine/canvaskit/platform_message.dart
      54 lib/web_ui/lib/src/engine/canvaskit/raster_cache.dart
      69 lib/web_ui/lib/src/engine/canvaskit/rasterizer.dart
     416 lib/web_ui/lib/src/engine/canvaskit/renderer.dart
     285 lib/web_ui/lib/src/engine/canvaskit/shader.dart
     497 lib/web_ui/lib/src/engine/canvaskit/surface.dart
     167 lib/web_ui/lib/src/engine/canvaskit/surface_factory.dart
     987 lib/web_ui/lib/src/engine/canvaskit/text.dart
     175 lib/web_ui/lib/src/engine/canvaskit/text_fragmenter.dart
     191 lib/web_ui/lib/src/engine/canvaskit/util.dart
     111 lib/web_ui/lib/src/engine/canvaskit/vertices.dart
     233 lib/web_ui/lib/src/engine/clipboard.dart
     138 lib/web_ui/lib/src/engine/color_filter.dart
     369 lib/web_ui/lib/src/engine/configuration.dart
    3530 lib/web_ui/lib/src/engine/dom.dart
     453 lib/web_ui/lib/src/engine/embedder.dart
     396 lib/web_ui/lib/src/engine/engine_canvas.dart
      34 lib/web_ui/lib/src/engine/font_change_util.dart
     720 lib/web_ui/lib/src/engine/font_fallback_data.dart
     389 lib/web_ui/lib/src/engine/font_fallbacks.dart
     138 lib/web_ui/lib/src/engine/fonts.dart
      99 lib/web_ui/lib/src/engine/frame_reference.dart
     146 lib/web_ui/lib/src/engine/global_styles.dart
     182 lib/web_ui/lib/src/engine/html/backdrop_filter.dart
    1465 lib/web_ui/lib/src/engine/html/bitmap_canvas.dart
     501 lib/web_ui/lib/src/engine/html/canvas.dart
     260 lib/web_ui/lib/src/engine/html/clip.dart
     499 lib/web_ui/lib/src/engine/html/color_filter.dart
     141 lib/web_ui/lib/src/engine/html/debug_canvas_reuse_overlay.dart
     362 lib/web_ui/lib/src/engine/html/dom_canvas.dart
     122 lib/web_ui/lib/src/engine/html/image_filter.dart
      62 lib/web_ui/lib/src/engine/html/offset.dart
      64 lib/web_ui/lib/src/engine/html/opacity.dart
     320 lib/web_ui/lib/src/engine/html/painting.dart
     481 lib/web_ui/lib/src/engine/html/path/conic.dart
     418 lib/web_ui/lib/src/engine/html/path/cubic.dart
    1640 lib/web_ui/lib/src/engine/html/path/path.dart
     213 lib/web_ui/lib/src/engine/html/path/path_iterator.dart
     771 lib/web_ui/lib/src/engine/html/path/path_metrics.dart
    1083 lib/web_ui/lib/src/engine/html/path/path_ref.dart
      53 lib/web_ui/lib/src/engine/html/path/path_to_svg.dart
     441 lib/web_ui/lib/src/engine/html/path/path_utils.dart
     354 lib/web_ui/lib/src/engine/html/path/path_windings.dart
     204 lib/web_ui/lib/src/engine/html/path/tangent.dart
      68 lib/web_ui/lib/src/engine/html/path_to_svg_clip.dart
     744 lib/web_ui/lib/src/engine/html/picture.dart
      65 lib/web_ui/lib/src/engine/html/platform_view.dart
    2108 lib/web_ui/lib/src/engine/html/recording_canvas.dart
     583 lib/web_ui/lib/src/engine/html/render_vertices.dart
     364 lib/web_ui/lib/src/engine/html/renderer.dart
      69 lib/web_ui/lib/src/engine/html/scene.dart
     549 lib/web_ui/lib/src/engine/html/scene_builder.dart
     414 lib/web_ui/lib/src/engine/html/shader_mask.dart
     288 lib/web_ui/lib/src/engine/html/shaders/image_shader.dart
     178 lib/web_ui/lib/src/engine/html/shaders/normalized_gradient.dart
     917 lib/web_ui/lib/src/engine/html/shaders/shader.dart
     419 lib/web_ui/lib/src/engine/html/shaders/shader_builder.dart
     100 lib/web_ui/lib/src/engine/html/shaders/vertex_shaders.dart
    1240 lib/web_ui/lib/src/engine/html/surface.dart
     326 lib/web_ui/lib/src/engine/html/surface_stats.dart
      84 lib/web_ui/lib/src/engine/html/transform.dart
     229 lib/web_ui/lib/src/engine/html_image_codec.dart
     442 lib/web_ui/lib/src/engine/image_decoder.dart
     278 lib/web_ui/lib/src/engine/initialization.dart
     153 lib/web_ui/lib/src/engine/interval_tree.dart
      98 lib/web_ui/lib/src/engine/js_interop/js_loader.dart
      50 lib/web_ui/lib/src/engine/js_interop/js_promise.dart
      37 lib/web_ui/lib/src/engine/js_interop/js_typed_data.dart
     593 lib/web_ui/lib/src/engine/key_map.g.dart
     697 lib/web_ui/lib/src/engine/keyboard_binding.dart
     750 lib/web_ui/lib/src/engine/layers.dart
      75 lib/web_ui/lib/src/engine/mouse_cursor.dart
     395 lib/web_ui/lib/src/engine/navigation/history.dart
     108 lib/web_ui/lib/src/engine/noto_font.dart
     153 lib/web_ui/lib/src/engine/onscreen_logging.dart
     127 lib/web_ui/lib/src/engine/picture.dart
    1481 lib/web_ui/lib/src/engine/platform_dispatcher.dart
       8 lib/web_ui/lib/src/engine/platform_views.dart
     248 lib/web_ui/lib/src/engine/platform_views/content_manager.dart
     148 lib/web_ui/lib/src/engine/platform_views/message_handler.dart
      52 lib/web_ui/lib/src/engine/platform_views/slots.dart
       7 lib/web_ui/lib/src/engine/plugins.dart
    1403 lib/web_ui/lib/src/engine/pointer_binding.dart
     122 lib/web_ui/lib/src/engine/pointer_binding/event_position_helper.dart
     771 lib/web_ui/lib/src/engine/pointer_converter.dart
     322 lib/web_ui/lib/src/engine/profiler.dart
     243 lib/web_ui/lib/src/engine/raw_keyboard.dart
     230 lib/web_ui/lib/src/engine/renderer.dart
     261 lib/web_ui/lib/src/engine/rrect_renderer.dart
    1059 lib/web_ui/lib/src/engine/safe_browser_api.dart
     286 lib/web_ui/lib/src/engine/scene_builder.dart
      25 lib/web_ui/lib/src/engine/scene_painting.dart
     239 lib/web_ui/lib/src/engine/scene_view.dart
      17 lib/web_ui/lib/src/engine/semantics.dart
     104 lib/web_ui/lib/src/engine/semantics/accessibility.dart
     108 lib/web_ui/lib/src/engine/semantics/checkable.dart
     110 lib/web_ui/lib/src/engine/semantics/dialog.dart
     207 lib/web_ui/lib/src/engine/semantics/focusable.dart
      90 lib/web_ui/lib/src/engine/semantics/image.dart
     159 lib/web_ui/lib/src/engine/semantics/incrementable.dart
      78 lib/web_ui/lib/src/engine/semantics/label_and_value.dart
      39 lib/web_ui/lib/src/engine/semantics/live_region.dart
      42 lib/web_ui/lib/src/engine/semantics/platform_view.dart
     241 lib/web_ui/lib/src/engine/semantics/scrollable.dart
    2292 lib/web_ui/lib/src/engine/semantics/semantics.dart
     399 lib/web_ui/lib/src/engine/semantics/semantics_helper.dart
      74 lib/web_ui/lib/src/engine/semantics/tappable.dart
     472 lib/web_ui/lib/src/engine/semantics/text_field.dart
       8 lib/web_ui/lib/src/engine/services.dart
     338 lib/web_ui/lib/src/engine/services/buffers.dart
     139 lib/web_ui/lib/src/engine/services/message_codec.dart
     557 lib/web_ui/lib/src/engine/services/message_codecs.dart
     218 lib/web_ui/lib/src/engine/services/serialization.dart
     138 lib/web_ui/lib/src/engine/shader_data.dart
     167 lib/web_ui/lib/src/engine/shadow.dart
      48 lib/web_ui/lib/src/engine/skwasm/skwasm_impl.dart
     411 lib/web_ui/lib/src/engine/skwasm/skwasm_impl/canvas.dart
      28 lib/web_ui/lib/src/engine/skwasm/skwasm_impl/codecs.dart
     111 lib/web_ui/lib/src/engine/skwasm/skwasm_impl/filters.dart
     232 lib/web_ui/lib/src/engine/skwasm/skwasm_impl/font_collection.dart
     103 lib/web_ui/lib/src/engine/skwasm/skwasm_impl/image.dart
      46 lib/web_ui/lib/src/engine/skwasm/skwasm_impl/memory.dart
     175 lib/web_ui/lib/src/engine/skwasm/skwasm_impl/paint.dart
     715 lib/web_ui/lib/src/engine/skwasm/skwasm_impl/paragraph.dart
     255 lib/web_ui/lib/src/engine/skwasm/skwasm_impl/path.dart
      93 lib/web_ui/lib/src/engine/skwasm/skwasm_impl/path_metrics.dart
      60 lib/web_ui/lib/src/engine/skwasm/skwasm_impl/picture.dart
     270 lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/raw_canvas.dart
     120 lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/raw_filters.dart
      57 lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/raw_fonts.dart
      14 lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/raw_geometry.dart
      94 lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/raw_image.dart
     235 lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/raw_memory.dart
      77 lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/raw_paint.dart
     203 lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/raw_path.dart
      51 lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/raw_path_metrics.dart
      52 lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/raw_picture.dart
     138 lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/raw_shaders.dart
      26 lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/raw_skdata.dart
      52 lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/raw_skstring.dart
      52 lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/raw_surface.dart
      35 lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/raw_vertices.dart
      53 lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/skwasm_module.dart
      70 lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/text/raw_line_metrics.dart
     153 lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/text/raw_paragraph.dart
     120 lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/text/raw_paragraph_builder.dart
      51 lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/text/raw_paragraph_style.dart
      57 lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/text/raw_strut_style.dart
     129 lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/text/raw_text_style.dart
     461 lib/web_ui/lib/src/engine/skwasm/skwasm_impl/renderer.dart
     323 lib/web_ui/lib/src/engine/skwasm/skwasm_impl/shaders.dart
      94 lib/web_ui/lib/src/engine/skwasm/skwasm_impl/surface.dart
      76 lib/web_ui/lib/src/engine/skwasm/skwasm_impl/vertices.dart
       9 lib/web_ui/lib/src/engine/skwasm/skwasm_stub.dart
     192 lib/web_ui/lib/src/engine/skwasm/skwasm_stub/renderer.dart
     236 lib/web_ui/lib/src/engine/svg.dart
     171 lib/web_ui/lib/src/engine/test_embedding.dart
     689 lib/web_ui/lib/src/engine/text/canvas_paragraph.dart
     187 lib/web_ui/lib/src/engine/text/font_collection.dart
      34 lib/web_ui/lib/src/engine/text/fragmenter.dart
     628 lib/web_ui/lib/src/engine/text/layout_fragmenter.dart
    1058 lib/web_ui/lib/src/engine/text/layout_service.dart
      29 lib/web_ui/lib/src/engine/text/line_break_properties.dart
     736 lib/web_ui/lib/src/engine/text/line_breaker.dart
     129 lib/web_ui/lib/src/engine/text/measurement.dart
     119 lib/web_ui/lib/src/engine/text/paint_service.dart
    1001 lib/web_ui/lib/src/engine/text/paragraph.dart
     225 lib/web_ui/lib/src/engine/text/ruler.dart
     186 lib/web_ui/lib/src/engine/text/text_direction.dart
     272 lib/web_ui/lib/src/engine/text/unicode_range.dart
      18 lib/web_ui/lib/src/engine/text/word_break_properties.dart
     330 lib/web_ui/lib/src/engine/text/word_breaker.dart
      84 lib/web_ui/lib/src/engine/text_editing/autofill_hint.dart
      89 lib/web_ui/lib/src/engine/text_editing/composition_aware_mixin.dart
     155 lib/web_ui/lib/src/engine/text_editing/input_action.dart
     159 lib/web_ui/lib/src/engine/text_editing/input_type.dart
      90 lib/web_ui/lib/src/engine/text_editing/text_capitalization.dart
    2450 lib/web_ui/lib/src/engine/text_editing/text_editing.dart
     834 lib/web_ui/lib/src/engine/util.dart
      59 lib/web_ui/lib/src/engine/validators.dart
    1177 lib/web_ui/lib/src/engine/vector_math.dart
      88 lib/web_ui/lib/src/engine/view_embedder/dimensions_provider/custom_element_dimensions_provider.dart
      65 lib/web_ui/lib/src/engine/view_embedder/dimensions_provider/dimensions_provider.dart
     122 lib/web_ui/lib/src/engine/view_embedder/dimensions_provider/full_page_dimensions_provider.dart
      63 lib/web_ui/lib/src/engine/view_embedder/embedding_strategy/custom_element_embedding_strategy.dart
     126 lib/web_ui/lib/src/engine/view_embedder/embedding_strategy/embedding_strategy.dart
     115 lib/web_ui/lib/src/engine/view_embedder/embedding_strategy/full_page_embedding_strategy.dart
      70 lib/web_ui/lib/src/engine/view_embedder/hot_restart_cache_handler.dart
     400 lib/web_ui/lib/src/engine/window.dart
     732 lib/web_ui/lib/text.dart
      13 lib/web_ui/lib/tile_mode.dart
      38 lib/web_ui/lib/ui.dart
      19 lib/web_ui/lib/ui_web/src/ui_web.dart
     100 lib/web_ui/lib/ui_web/src/ui_web/asset_manager.dart
      16 lib/web_ui/lib/ui_web/src/ui_web/benchmarks.dart
      27 lib/web_ui/lib/ui_web/src/ui_web/images.dart
      57 lib/web_ui/lib/ui_web/src/ui_web/initialization.dart
     139 lib/web_ui/lib/ui_web/src/ui_web/navigation/platform_location.dart
     225 lib/web_ui/lib/ui_web/src/ui_web/navigation/url_strategy.dart
      58 lib/web_ui/lib/ui_web/src/ui_web/platform_view_registry.dart
      14 lib/web_ui/lib/ui_web/src/ui_web/plugins.dart
      38 lib/web_ui/lib/ui_web/src/ui_web/testing.dart
     248 lib/web_ui/lib/window.dart
      82 lib/web_ui/test/canvaskit/backdrop_filter_golden_test.dart
     539 lib/web_ui/test/canvaskit/canvas_golden_test.dart
    1947 lib/web_ui/test/canvaskit/canvaskit_api_test.dart
      61 lib/web_ui/test/canvaskit/canvaskit_api_tt_on_test.dart
     163 lib/web_ui/test/canvaskit/color_filter_golden_test.dart
     137 lib/web_ui/test/canvaskit/common.dart
      45 lib/web_ui/test/canvaskit/configuration_canvaskit_variant_test.dart
     130 lib/web_ui/test/canvaskit/embedded_views_diff_test.dart
    1127 lib/web_ui/test/canvaskit/embedded_views_test.dart
     172 lib/web_ui/test/canvaskit/filter_test.dart
     118 lib/web_ui/test/canvaskit/flutter_tester_emulation_golden_test.dart
     252 lib/web_ui/test/canvaskit/fragment_program_test.dart
      23 lib/web_ui/test/canvaskit/frame_timings_test.dart
      30 lib/web_ui/test/canvaskit/hot_restart_test.dart
     910 lib/web_ui/test/canvaskit/image_golden_test.dart
     111 lib/web_ui/test/canvaskit/image_test.dart
      39 lib/web_ui/test/canvaskit/initialization/does_not_mock_module_exports_test.dart
      47 lib/web_ui/test/canvaskit/initialization/services_vs_ui_test.dart
      29 lib/web_ui/test/canvaskit/initialization/stores_config_test.dart
      26 lib/web_ui/test/canvaskit/initialization_test.dart
      82 lib/web_ui/test/canvaskit/interval_tree_test.dart
     102 lib/web_ui/test/canvaskit/layer_test.dart
      95 lib/web_ui/test/canvaskit/linear_gradient_golden_test.dart
     298 lib/web_ui/test/canvaskit/native_memory_test.dart
      34 lib/web_ui/test/canvaskit/painting_test.dart
     153 lib/web_ui/test/canvaskit/path_test.dart
     143 lib/web_ui/test/canvaskit/picture_test.dart
      44 lib/web_ui/test/canvaskit/platform_dispatcher_test.dart
      62 lib/web_ui/test/canvaskit/scene_test.dart
      29 lib/web_ui/test/canvaskit/semantics_test.dart
     159 lib/web_ui/test/canvaskit/shader_mask_golden_test.dart
     133 lib/web_ui/test/canvaskit/shader_test.dart
     163 lib/web_ui/test/canvaskit/skia_font_collection_test.dart
     103 lib/web_ui/test/canvaskit/surface_factory_test.dart
     242 lib/web_ui/test/canvaskit/surface_test.dart
      61 lib/web_ui/test/canvaskit/sweep_gradient_golden_test.dart
      37 lib/web_ui/test/canvaskit/test_data.dart
     231 lib/web_ui/test/canvaskit/text_fragmenter_test.dart
     177 lib/web_ui/test/canvaskit/text_test.dart
     134 lib/web_ui/test/common/fake_asset_manager.dart
      49 lib/web_ui/test/common/frame_timings_common.dart
      89 lib/web_ui/test/common/keyboard_test_common.dart
     456 lib/web_ui/test/common/matchers.dart
     248 lib/web_ui/test/common/mock_engine_canvas.dart
      90 lib/web_ui/test/common/spy.dart
      44 lib/web_ui/test/common/test_initialization.dart
     201 lib/web_ui/test/engine/alarm_clock_test.dart
      98 lib/web_ui/test/engine/app_bootstrap_test.dart
     143 lib/web_ui/test/engine/assets_test.dart
     234 lib/web_ui/test/engine/browser_detect_test.dart
      81 lib/web_ui/test/engine/canvas_test.dart
     385 lib/web_ui/test/engine/channel_buffers_test.dart
     157 lib/web_ui/test/engine/clipboard_test.dart
     356 lib/web_ui/test/engine/composition_test.dart
     124 lib/web_ui/test/engine/configuration_test.dart
     233 lib/web_ui/test/engine/dom_http_fetch_test.dart
     145 lib/web_ui/test/engine/embedder_test.dart
      80 lib/web_ui/test/engine/frame_reference_test.dart
     294 lib/web_ui/test/engine/geometry_test.dart
      68 lib/web_ui/test/engine/gesture_settings_test.dart
     116 lib/web_ui/test/engine/global_styles_test.dart
     119 lib/web_ui/test/engine/hash_codes_test.dart
     837 lib/web_ui/test/engine/history_test.dart
     124 lib/web_ui/test/engine/image/html_image_codec_test.dart
      78 lib/web_ui/test/engine/image/image_test.dart
      63 lib/web_ui/test/engine/image_to_byte_data_test.dart
      81 lib/web_ui/test/engine/initialization_test.dart
    1110 lib/web_ui/test/engine/keyboard_converter_test.dart
     158 lib/web_ui/test/engine/lerp_test.dart
      69 lib/web_ui/test/engine/locale_test.dart
      99 lib/web_ui/test/engine/lru_cache_test.dart
      46 lib/web_ui/test/engine/navigation_test.dart
     109 lib/web_ui/test/engine/platform_dispatcher/application_switcher_description_test.dart
     229 lib/web_ui/test/engine/platform_dispatcher/platform_dispatcher_test.dart
      54 lib/web_ui/test/engine/platform_dispatcher/system_ui_overlay_style_test.dart
     246 lib/web_ui/test/engine/platform_views/content_manager_test.dart
     257 lib/web_ui/test/engine/platform_views/message_handler_test.dart
      46 lib/web_ui/test/engine/platform_views/slots_test.dart
     115 lib/web_ui/test/engine/pointer_binding/event_position_helper_test.dart
    4094 lib/web_ui/test/engine/pointer_binding_test.dart
     223 lib/web_ui/test/engine/profiler_test.dart
     805 lib/web_ui/test/engine/raw_keyboard_test.dart
     332 lib/web_ui/test/engine/recording_canvas_test.dart
     527 lib/web_ui/test/engine/routing_test.dart
     231 lib/web_ui/test/engine/scene_builder_test.dart
     186 lib/web_ui/test/engine/scene_builder_utils.dart
     116 lib/web_ui/test/engine/scene_view_test.dart
     130 lib/web_ui/test/engine/semantics/accessibility_test.dart
      49 lib/web_ui/test/engine/semantics/semantics_api_test.dart
     175 lib/web_ui/test/engine/semantics/semantics_helper_test.dart
    3002 lib/web_ui/test/engine/semantics/semantics_test.dart
     406 lib/web_ui/test/engine/semantics/semantics_tester.dart
    1010 lib/web_ui/test/engine/semantics/text_field_test.dart
      90 lib/web_ui/test/engine/services/serialization_test.dart
      79 lib/web_ui/test/engine/surface/filters/image_filter_test.dart
      23 lib/web_ui/test/engine/surface/frame_timings_test.dart
      90 lib/web_ui/test/engine/surface/path/path_iterator_test.dart
     448 lib/web_ui/test/engine/surface/path/path_winding_test.dart
     119 lib/web_ui/test/engine/surface/platform_view_test.dart
     916 lib/web_ui/test/engine/surface/scene_builder_test.dart
     124 lib/web_ui/test/engine/surface/shaders/normalized_gradient_test.dart
     207 lib/web_ui/test/engine/surface/shaders/shader_builder_test.dart
     479 lib/web_ui/test/engine/surface/surface_test.dart
    3036 lib/web_ui/test/engine/text_editing_test.dart
     170 lib/web_ui/test/engine/util_test.dart
      45 lib/web_ui/test/engine/vector_math_test.dart
     153 lib/web_ui/test/engine/view_embedder/dimensions_provider/custom_element_dimensions_provider_test.dart
      49 lib/web_ui/test/engine/view_embedder/dimensions_provider/dimensions_provider_test.dart
     108 lib/web_ui/test/engine/view_embedder/dimensions_provider/full_page_dimensions_provider_test.dart
     181 lib/web_ui/test/engine/view_embedder/embedding_strategy/custom_element_embedding_strategy_test.dart
      58 lib/web_ui/test/engine/view_embedder/embedding_strategy/embedding_strategy_test.dart
     185 lib/web_ui/test/engine/view_embedder/embedding_strategy/full_page_embedding_strategy_test.dart
      79 lib/web_ui/test/engine/view_embedder/hot_restart_cache_handler_test.dart
     454 lib/web_ui/test/engine/window_test.dart
     295 lib/web_ui/test/html/bitmap_canvas_golden_test.dart
     183 lib/web_ui/test/html/canvas_clip_path_golden_test.dart
      80 lib/web_ui/test/html/canvas_context_golden_test.dart
     112 lib/web_ui/test/html/canvas_reuse_golden_test.dart
      74 lib/web_ui/test/html/canvas_winding_rule_golden_test.dart
      92 lib/web_ui/test/html/clip_op_golden_test.dart
     212 lib/web_ui/test/html/compositing/backdrop_filter_golden_test.dart
     115 lib/web_ui/test/html/compositing/canvas_blend_golden_test.dart
     142 lib/web_ui/test/html/compositing/canvas_image_blend_mode_golden_test.dart
      50 lib/web_ui/test/html/compositing/canvas_image_filter_golden_test.dart
     180 lib/web_ui/test/html/compositing/canvas_mask_filter_golden_test.dart
     146 lib/web_ui/test/html/compositing/color_filter_golden_test.dart
     742 lib/web_ui/test/html/compositing/compositing_golden_test.dart
      32 lib/web_ui/test/html/compositing/dom_mask_filter_golden_test.dart
      77 lib/web_ui/test/html/dom_canvas_test.dart
     109 lib/web_ui/test/html/drawing/canvas_arc_golden_test.dart
      82 lib/web_ui/test/html/drawing/canvas_draw_color_golden_test.dart
     764 lib/web_ui/test/html/drawing/canvas_draw_image_golden_test.dart
     153 lib/web_ui/test/html/drawing/canvas_draw_picture_golden_test.dart
     152 lib/web_ui/test/html/drawing/canvas_lines_golden_test.dart
      64 lib/web_ui/test/html/drawing/canvas_rect_golden_test.dart
      93 lib/web_ui/test/html/drawing/canvas_rrect_golden_test.dart
      74 lib/web_ui/test/html/drawing/canvas_stroke_joins_golden_test.dart
      69 lib/web_ui/test/html/drawing/canvas_stroke_rects_golden_test.dart
      98 lib/web_ui/test/html/drawing/conic_golden_test.dart
     142 lib/web_ui/test/html/drawing/dom_clip_stroke_golden_test.dart
     403 lib/web_ui/test/html/drawing/draw_vertices_golden_test.dart
     168 lib/web_ui/test/html/image_test.dart
     574 lib/web_ui/test/html/paragraph/bidi_golden_test.dart
     643 lib/web_ui/test/html/paragraph/general_golden_test.dart
     121 lib/web_ui/test/html/paragraph/helper.dart
     335 lib/web_ui/test/html/paragraph/justify_golden_test.dart
     130 lib/web_ui/test/html/paragraph/overflow_golden_test.dart
     196 lib/web_ui/test/html/paragraph/placeholders_golden_test.dart
      56 lib/web_ui/test/html/paragraph/shadows_golden_test.dart
     116 lib/web_ui/test/html/paragraph/text_goldens.dart
     201 lib/web_ui/test/html/paragraph/text_multiline_clipping_golden_test.dart
      60 lib/web_ui/test/html/paragraph/text_overflow_golden_test.dart
     130 lib/web_ui/test/html/paragraph/text_placeholders_golden_test.dart
     180 lib/web_ui/test/html/path_metrics_golden_test.dart
     102 lib/web_ui/test/html/path_ref_test.dart
     569 lib/web_ui/test/html/path_test.dart
     242 lib/web_ui/test/html/path_to_svg_golden_test.dart
     202 lib/web_ui/test/html/path_transform_golden_test.dart
      43 lib/web_ui/test/html/picture_golden_test.dart
     795 lib/web_ui/test/html/recording_canvas_golden_test.dart
      71 lib/web_ui/test/html/screenshot.dart
     678 lib/web_ui/test/html/shaders/gradient_golden_test.dart
     138 lib/web_ui/test/html/shaders/image_shader_golden_test.dart
     154 lib/web_ui/test/html/shaders/linear_gradient_golden_test.dart
     122 lib/web_ui/test/html/shaders/radial_gradient_golden_test.dart
     223 lib/web_ui/test/html/shaders/shader_mask_golden_test.dart
     161 lib/web_ui/test/html/shadow_golden_test.dart
     123 lib/web_ui/test/html/testimage.dart
     572 lib/web_ui/test/html/text/canvas_paragraph_builder_test.dart
     830 lib/web_ui/test/html/text/canvas_paragraph_test.dart
     231 lib/web_ui/test/html/text/font_collection_test.dart
     107 lib/web_ui/test/html/text/font_loading_test.dart
     289 lib/web_ui/test/html/text/layout_fragmenter_test.dart
     135 lib/web_ui/test/html/text/layout_service_helper.dart
     756 lib/web_ui/test/html/text/layout_service_plain_test.dart
     243 lib/web_ui/test/html/text/layout_service_rich_test.dart
     517 lib/web_ui/test/html/text/line_breaker_test.dart
     215 lib/web_ui/test/html/text/line_breaker_test_helper.dart
    7661 lib/web_ui/test/html/text/line_breaker_test_raw_data.dart
     198 lib/web_ui/test/html/text/text_direction_test.dart
     162 lib/web_ui/test/html/text/word_breaker_test.dart
     408 lib/web_ui/test/html/text_test.dart
      28 lib/web_ui/test/skwasm_stub/smoke_test.dart
      77 lib/web_ui/test/ui/canvas_curves_golden_test.dart
     119 lib/web_ui/test/ui/canvas_draw_points_golden_test.dart
     145 lib/web_ui/test/ui/canvas_lines_golden_test.dart
     329 lib/web_ui/test/ui/canvas_test.dart
     164 lib/web_ui/test/ui/color_test.dart
     225 lib/web_ui/test/ui/draw_atlas_golden_test.dart
     429 lib/web_ui/test/ui/fallback_fonts_golden_test.dart
     181 lib/web_ui/test/ui/filters_test.dart
     185 lib/web_ui/test/ui/font_collection_test.dart
      85 lib/web_ui/test/ui/fragment_shader_test.dart
     126 lib/web_ui/test/ui/gradient_golden_test.dart
      78 lib/web_ui/test/ui/gradient_test.dart
     309 lib/web_ui/test/ui/image_golden_test.dart
      41 lib/web_ui/test/ui/paragraph_builder_test.dart
     227 lib/web_ui/test/ui/path_metrics_test.dart
     242 lib/web_ui/test/ui/path_test.dart
      78 lib/web_ui/test/ui/picture_test.dart
     179 lib/web_ui/test/ui/platform_view_test.dart
      89 lib/web_ui/test/ui/rect_test.dart
     134 lib/web_ui/test/ui/rrect_test.dart
     264 lib/web_ui/test/ui/scene_builder_test.dart
      58 lib/web_ui/test/ui/shadow_test.dart
     747 lib/web_ui/test/ui/text_golden_test.dart
      61 lib/web_ui/test/ui/url_strategy_test.dart
      32 lib/web_ui/test/ui/utils.dart
     268 lib/web_ui/test/ui/vertices_test.dart
      93 runtime/fixtures/dart_tool/flutter_build/dart_plugin_registrant.dart
      10 runtime/fixtures/no_dart_plugin_registrant_test.dart
     190 runtime/fixtures/runtime_test.dart
       9 runtime/fixtures/split_lib_test.dart
     549 shell/common/fixtures/shell_test.dart
      71 shell/platform/darwin/macos/framework/Source/fixtures/flutter_desktop_test.dart
    1291 shell/platform/embedder/fixtures/main.dart
      89 shell/platform/fuchsia/dart-pkg/fuchsia/lib/fuchsia.dart
      68 shell/platform/fuchsia/dart-pkg/zircon/lib/src/handle.dart
      34 shell/platform/fuchsia/dart-pkg/zircon/lib/src/handle_disposition.dart
      20 shell/platform/fuchsia/dart-pkg/zircon/lib/src/handle_waiter.dart
      34 shell/platform/fuchsia/dart-pkg/zircon/lib/src/init.dart
     258 shell/platform/fuchsia/dart-pkg/zircon/lib/src/system.dart
      56 shell/platform/fuchsia/dart-pkg/zircon/lib/src/zd_channel.dart
      77 shell/platform/fuchsia/dart-pkg/zircon/lib/src/zd_handle.dart
      23 shell/platform/fuchsia/dart-pkg/zircon/lib/zircon.dart
     618 shell/platform/fuchsia/dart-pkg/zircon/test/zircon_tests.dart
     420 shell/platform/fuchsia/dart-pkg/zircon_ffi/lib/zircon_ffi.dart
      62 shell/platform/fuchsia/dart/compiler.dart
      60 shell/platform/fuchsia/dart_runner/embedder/builtin.dart
       5 shell/platform/fuchsia/dart_runner/embedder/shim.dart
      15 shell/platform/fuchsia/dart_runner/embedder/snapshot.dart
      14 shell/platform/fuchsia/dart_runner/tests/startup_integration_test/dart_echo_server/main.dart
       7 shell/platform/fuchsia/dart_runner/vmservice/empty.dart
       7 shell/platform/fuchsia/flutter/kernel/framework_shim.dart
      59 shell/platform/fuchsia/flutter/tests/integration/embedder/child-view/lib/child_view.dart
     201 shell/platform/fuchsia/flutter/tests/integration/embedder/parent-view/lib/parent_view.dart
     125 shell/platform/fuchsia/flutter/tests/integration/mouse-input/mouse-input-view/lib/mouse-input-view.dart
     100 shell/platform/fuchsia/flutter/tests/integration/text-input/text-input-view/lib/text_input_view.dart
     240 shell/platform/fuchsia/flutter/tests/integration/touch-input/embedding-flutter-view/lib/embedding-flutter-view.dart
      94 shell/platform/fuchsia/flutter/tests/integration/touch-input/touch-input-view/lib/touch-input-view.dart
     143 shell/platform/fuchsia/runtime/dart/profiler_symbols/dart_profiler_symbols.dart
     210 shell/platform/windows/fixtures/main.dart
       6 shell/testing/observatory/empty_main.dart
      79 shell/testing/observatory/launcher.dart
     107 shell/testing/observatory/service_client.dart
     206 shell/testing/observatory/test.dart
       6 shell/vmservice/empty.dart
       0 sky/packages/sky_engine/lib/_empty.dart
      59 testing/android_background_image/lib/main.dart
     123 testing/benchmark/bin/parse_and_send.dart
      51 testing/benchmark/test/parse_and_send_test.dart
     107 testing/dart/assets_test.dart
    1112 testing/dart/canvas_test.dart
     415 testing/dart/channel_buffers_test.dart
     256 testing/dart/codec_test.dart
     139 testing/dart/color_filter_test.dart
     137 testing/dart/color_test.dart
     469 testing/dart/compositing_test.dart
      24 testing/dart/dart_test.dart
     265 testing/dart/encoding_test.dart
     491 testing/dart/fragment_shader_test.dart
     516 testing/dart/geometry_test.dart
      57 testing/dart/gesture_settings_test.dart
      37 testing/dart/gpu_test.dart
      72 testing/dart/gradient_test.dart
      28 testing/dart/http_allow_http_connections_test.dart
     134 testing/dart/http_disallow_http_connections_test.dart
     103 testing/dart/image_descriptor_test.dart
     145 testing/dart/image_dispose_test.dart
      56 testing/dart/image_events_test.dart
     286 testing/dart/image_filter_test.dart
     210 testing/dart/image_resize_test.dart
      86 testing/dart/image_shader_test.dart
      26 testing/dart/image_test.dart
     141 testing/dart/isolate_name_server_test.dart
      34 testing/dart/isolate_test.dart
     125 testing/dart/lerp_test.dart
      68 testing/dart/locale_test.dart
      27 testing/dart/mask_filter_test.dart
      54 testing/dart/observatory/shader_reload_test.dart
      55 testing/dart/observatory/skp_test.dart
     108 testing/dart/observatory/tracing_test.dart
     124 testing/dart/observatory/vmservice_methods_test.dart
      63 testing/dart/painting_test.dart
      69 testing/dart/paragraph_builder_test.dart
     285 testing/dart/paragraph_test.dart
     243 testing/dart/path_test.dart
      70 testing/dart/picture_test.dart
      19 testing/dart/platform_view_test.dart
      46 testing/dart/plugin_utilities_test.dart
      42 testing/dart/semantics_test.dart
      22 testing/dart/serial_gc_test.dart
      26 testing/dart/shader_test_file_utils.dart
      49 testing/dart/task_order_test.dart
     343 testing/dart/text_test.dart
     106 testing/dart/window_test.dart
      23 testing/litetest/lib/litetest.dart
     133 testing/litetest/lib/src/matchers.dart
     118 testing/litetest/lib/src/test.dart
     114 testing/litetest/lib/src/test_suite.dart
     229 testing/litetest/test/litetest_test.dart
     228 testing/scenario_app/bin/android_integration_tests.dart
      31 testing/scenario_app/bin/utils/logs.dart
      48 testing/scenario_app/bin/utils/process_manager_extension.dart
      72 testing/scenario_app/bin/utils/screenshot_transformer.dart
     107 testing/scenario_app/lib/main.dart
      98 testing/scenario_app/lib/src/animated_color_square.dart
      54 testing/scenario_app/lib/src/bogus_font_text.dart
      43 testing/scenario_app/lib/src/channel_util.dart
      32 testing/scenario_app/lib/src/get_bitmap_scenario.dart
      22 testing/scenario_app/lib/src/initial_route_reply.dart
     146 testing/scenario_app/lib/src/locale_initialization.dart
    1935 testing/scenario_app/lib/src/platform_view.dart
      94 testing/scenario_app/lib/src/poppable_screen.dart
      53 testing/scenario_app/lib/src/scenario.dart
      99 testing/scenario_app/lib/src/scenarios.dart
      46 testing/scenario_app/lib/src/texture.dart
      41 testing/scenario_app/lib/src/touches_scenario.dart
     492 testing/skia_gold_client/lib/skia_gold_client.dart
      11 testing/smoke_test_failure/fail_test.dart
     310 testing/symbols/verify_exported.dart
     187 third_party/tonic/tests/fixtures/tonic_test.dart
       9 third_party/web_locale_keymap/lib/web_locale_keymap.dart
     272 third_party/web_locale_keymap/lib/web_locale_keymap/key_mappings.g.dart
      63 third_party/web_locale_keymap/lib/web_locale_keymap/locale_keymap.dart
      24 third_party/web_locale_keymap/test/layout_mapping_test.dart
    1302 third_party/web_locale_keymap/test/test_cases.g.dart
      55 third_party/web_locale_keymap/test/testing.dart
       7 third_party/web_test_fonts/lib/web_test_fonts.dart
     269 third_party/web_test_fonts/lib/web_test_fonts/web_test_fonts.dart
       8 third_party/web_unicode/lib/web_unicode.dart
      61 third_party/web_unicode/lib/web_unicode/codegen/line_break_properties.dart
      40 third_party/web_unicode/lib/web_unicode/codegen/word_break_properties.dart
     428 third_party/web_unicode/tool/unicode_sync_script.dart
     186 tools/android_lint/bin/main.dart
     175 tools/api_check/lib/apicheck.dart
     233 tools/api_check/test/apicheck_test.dart
      23 tools/clang_tidy/bin/main.dart
     389 tools/clang_tidy/lib/clang_tidy.dart
     156 tools/clang_tidy/lib/src/command.dart
     117 tools/clang_tidy/lib/src/git_repo.dart
     292 tools/clang_tidy/lib/src/options.dart
     462 tools/clang_tidy/test/clang_tidy_test.dart
     104 tools/const_finder/bin/main.dart
     208 tools/const_finder/lib/const_finder.dart
     490 tools/const_finder/test/const_finder_test.dart
      15 tools/const_finder/test/fixtures/.dart_tool/package_config.json
     227 tools/const_finder/test/fixtures/lib/box.dart
      77 tools/const_finder/test/fixtures/lib/consts.dart
      44 tools/const_finder/test/fixtures/lib/consts_and_non.dart
      31 tools/const_finder/test/fixtures/lib/static_icon_provider.dart
      50 tools/const_finder/test/fixtures/lib/target.dart
      16 tools/const_finder/test/fixtures/pkg/package.dart
      74 tools/gen_locale.dart
     228 tools/gen_web_locale_keymap/bin/gen_web_locale_keymap.dart
      50 tools/gen_web_locale_keymap/data/key_mappings.dart.tmpl
      32 tools/gen_web_locale_keymap/data/test_cases.dart.tmpl
     104 tools/gen_web_locale_keymap/lib/benchmark_planner.dart
     260 tools/gen_web_locale_keymap/lib/common.dart
     319 tools/gen_web_locale_keymap/lib/github.dart
     106 tools/gen_web_locale_keymap/lib/json_get.dart
      63 tools/gen_web_locale_keymap/lib/layout_types.dart
      11 tools/githooks/bin/main.dart
      78 tools/githooks/lib/githooks.dart
     133 tools/githooks/lib/src/pre_push_command.dart
      69 tools/githooks/test/githooks_test.dart
      45 tools/licenses/lib/cache.dart
     750 tools/licenses/lib/filesystem.dart
     198 tools/licenses/lib/formatter.dart
    1338 tools/licenses/lib/licenses.dart
      12 tools/licenses/lib/limits.dart
    2141 tools/licenses/lib/main.dart
     470 tools/licenses/lib/paths.dart
    1621 tools/licenses/lib/patterns.dart
     150 tools/licenses/lib/regexp_debug.dart
      87 tools/licenses/test/formatter_test.dart
     393 tools/path_ops/dart/lib/path_ops.dart
     115 tools/path_ops/dart/test/path_ops_test.dart
     228 tools/pkg/engine_repo_tools/lib/engine_repo_tools.dart
     257 tools/pkg/engine_repo_tools/test/engine_repo_tools_test.dart
     303 web_sdk/sdk_rewriter.dart
     378 web_sdk/test/api_conform_test.dart
     234 web_sdk/test/js_access_test.dart
     194 web_sdk/test/sdk_rewriter_test.dart
      94 web_sdk/web_engine_tester/lib/golden_tester.dart
     265 web_sdk/web_engine_tester/lib/static/host.dart
     179 web_sdk/web_test_utils/lib/environment.dart
      85 web_sdk/web_test_utils/lib/image_compare.dart
  208868 total

However, there is no (good) testing support. Most internal packages and tooling use the internal package:litetest, which is a basic wrapper around package:async_helper and package:expect from the Dart SDK. As a result, basic functionality has to be hand-authored (or we'd have to upgrade package:litetest).

For example, in engine_repo_tools_test.dart:

  1. There is no support for setUp and tearDown, requiring manual invocations of methods and use of try/finally:
void main() {
  late io.Directory emptyDir;

  void setUp() {
    emptyDir = io.Directory.systemTemp.createTempSync('engine_repo_tools.test');
  }

  void tearDown() {
    emptyDir.deleteSync(recursive: true);
  }

  group('Engine.fromSrcPath', () {
    group('should fail when', () {
      test('the path does not end in `${p.separator}src`', () {
        setUp();
        try {
          expect(
          () => Engine.fromSrcPath(emptyDir.path),
          _throwsInvalidEngineException,
        );
        } finally {
          tearDown();
        }
      });

  ...
}
  1. Matchers are completely missing, meaning that writing things like _throwsInvalidEngineException looks like this:
// This is needed because async_minitest and friends is not a proper testing
// library and is missing a lot of functionality that was exclusively added
// to pkg/test.
void _throwsInvalidEngineException(Object? o) {
  _checkThrow<InvalidEngineException>(o, (_){});
}

// Mostly copied from async_minitest.
void _checkThrow<T extends Object>(dynamic v, void Function(dynamic error) onError) {
  if (v is Future) {
    asyncStart();
    v.then((_) {
      Expect.fail('Did not throw');
    }, onError: (Object e, StackTrace s) {
      if (e is! T) {
        // ignore: only_throw_errors
        throw e;
      }
      onError(e);
      asyncEnd();
    });
    return;
  }
  v as void Function();
  Expect.throws<T>(v, (T e) {
    onError(e);
    return true;
  });
}
  1. groups appear to be entirely organizational, the name doesn't appear in the output:
$ dart tools/pkg/engine_repo_tools/test/engine_repo_tools_test.dart
unittest-suite-wait-for-done
Test "the path does not end in `/src`": Started
Test "the path does not end in `/src`": Passed
Test "the path does not exist": Started
Test "the path does not exist": Passed
Test "the path does not contain a "flutter" directory": Started
Test "the path does not contain a "flutter" directory": Passed
Test "returns an Engine": Started
Test "returns an Engine": Passed
Test "the path does not contain a "src" directory": Started
Test "the path does not contain a "src" directory": Passed
Test "the path contains a "src" directory but it is not an engine root": Started
Test "the path contains a "src" directory but it is not an engine root": Passed
Test "returns an Engine": Started
Test "returns an Engine": Passed
Test "returns an Engine even if a "src" directory exists deeper in the tree": Started
Test "returns an Engine even if a "src" directory exists deeper in the tree": Passed
Test "outputs an empty list of targets": Started
Test "outputs an empty list of targets": Passed
Test "outputs a list of targets": Started
Test "outputs a list of targets": Passed
Test "outputs the latest target and compile_commands.json": Started
Test "outputs the latest target and compile_commands.json": Passed
unittest-suite-success

As a test, I looked into if package:test_core could be a lighter-weight substitute:

name: example
description: A sample command-line application.
version: 1.0.0

environment:
  sdk: ^3.0.1
dev_dependencies:
  test: ^1.21.0
$ dart pub get
$ grep -n --no-line-number "\"name\"" .dart_tool/package_config.json | sed 's/^ *//g' | sort -u

"name": "_fe_analyzer_shared",
"name": "analyzer",
"name": "args",
"name": "async",
"name": "boolean_selector",
"name": "collection",
"name": "convert",
"name": "coverage",
"name": "crypto",
"name": "example",
"name": "file",
"name": "frontend_server_client",
"name": "glob",
"name": "io",
"name": "logging",
"name": "meta",
"name": "package_config",
"name": "path",
"name": "pool",
"name": "pub_semver",
"name": "source_map_stack_trace",
"name": "source_maps",
"name": "source_span",
"name": "stack_trace",
"name": "stream_channel",
"name": "string_scanner",
"name": "term_glyph",
"name": "test_api",
"name": "test_core",
"name": "typed_data",
"name": "vm_service",
"name": "watcher",
"name": "yaml",

I asked @natebosch about it, and he suggested building on package:test_api:

name: example
description: A sample command-line application.
version: 1.0.0

environment:
  sdk: ^3.0.1
dev_dependencies:
  test_api: any
$ dart pub get
$ grep -n --no-line-number "\"name\"" .dart_tool/package_config.json | sed 's/^ *//g' | sort -u

"name": "async",
"name": "boolean_selector",
"name": "collection",
"name": "example",
"name": "meta",
"name": "path",
"name": "source_span",
"name": "stack_trace",
"name": "stream_channel",
"name": "string_scanner",
"name": "term_glyph",
"name": "test_api",

... but that would require more (manual) work to wire up. Fwiw, we already seem to vend most packages:

$ cd third_party/dart
$ fd pubspec.yaml pkg | sort -u

pkg/_fe_analyzer_shared/pubspec.yaml
pkg/_js_interop_checks/pubspec.yaml
pkg/analysis_server/pubspec.yaml
pkg/analysis_server/test/mock_packages/flutter/pubspec.yaml
pkg/analysis_server/test/mock_packages/meta/pubspec.yaml
pkg/analysis_server/test/mock_packages/vector_math/pubspec.yaml
pkg/analysis_server_client/pubspec.yaml
pkg/analyzer/pubspec.yaml
pkg/analyzer_cli/pubspec.yaml
pkg/analyzer_cli/test/data/exclude_portion_of_inner_context/inner/pubspec.yaml
pkg/analyzer_cli/test/data/linter_project/pubspec.yaml
pkg/analyzer_plugin/pubspec.yaml
pkg/analyzer_utilities/pubspec.yaml
pkg/async_helper/pubspec.yaml
pkg/bisect_dart/pubspec.yaml
pkg/build_integration/pubspec.yaml
pkg/compiler/pubspec.yaml
pkg/compiler/test/codesize/swarm/pubspec.yaml
pkg/dap/pubspec.yaml
pkg/dart2js_info/pubspec.yaml
pkg/dart2js_runtime_metrics/pubspec.yaml
pkg/dart2js_tools/pubspec.yaml
pkg/dart2native/pubspec.yaml
pkg/dart2wasm/pubspec.yaml
pkg/dart_internal/pubspec.yaml
pkg/dartdev/pubspec.yaml
pkg/dds/pubspec.yaml
pkg/dds_service_extensions/pubspec.yaml
pkg/dev_compiler/pubspec.yaml
pkg/expect/pubspec.yaml
pkg/front_end/pubspec.yaml
pkg/front_end/test/id_testing/data/directory_testing/pubspec.yaml
pkg/front_end/test/language_versioning/data/both_packages_and_json/pubspec.yaml
pkg/front_end/test/language_versioning/data/package_default_version/pubspec.yaml
pkg/front_end/test/language_versioning/data/package_default_version_is_empty/pubspec.yaml
pkg/front_end/test/language_versioning/data/package_default_version_is_wrong/pubspec.yaml
pkg/front_end/test/language_versioning/data/package_default_version_is_wrong_2/pubspec.yaml
pkg/front_end/test/language_versioning/data/package_default_version_is_wrong_3/pubspec.yaml
pkg/front_end/test/language_versioning/data/package_default_version_is_wrong_4/pubspec.yaml
pkg/front_end/test/language_versioning/data/package_no_default_version/pubspec.yaml
pkg/front_end/test/language_versioning/data/package_non_package_default_version/pubspec.yaml
pkg/front_end/test/language_versioning/data/package_non_package_no_default_version/pubspec.yaml
pkg/front_end/test/language_versioning/data/package_to_high_default_version/pubspec.yaml
pkg/front_end/test/language_versioning/data/parts_disagreeing_has_package/pubspec.yaml
pkg/front_end/test/language_versioning/data/parts_disagreeing_has_package_2/pubspec.yaml
pkg/front_end/test/language_versioning/data/specified_packages_01/pubspec.yaml
pkg/front_end/test/language_versioning/data/specified_packages_02/pubspec.yaml
pkg/front_end/test/language_versioning/data/specified_packages_03/pubspec.yaml
pkg/front_end/test/language_versioning/data/specified_packages_04/pubspec.yaml
pkg/frontend_server/pubspec.yaml
pkg/js/pubspec.yaml
pkg/js_ast/pubspec.yaml
pkg/js_runtime/pubspec.yaml
pkg/js_shared/pubspec.yaml
pkg/kernel/pubspec.yaml
pkg/language_versioning_2_7_test/pubspec.yaml
pkg/meta/pubspec.yaml
pkg/mmap/pubspec.yaml
pkg/modular_test/pubspec.yaml
pkg/native_stack_traces/pubspec.yaml
pkg/nnbd_migration/pubspec.yaml
pkg/scrape/pubspec.yaml
pkg/smith/pubspec.yaml
pkg/sourcemap_testing/pubspec.yaml
pkg/status_file/pubspec.yaml
pkg/telemetry/pubspec.yaml
pkg/test_runner/pubspec.yaml
pkg/testing/pubspec.yaml
pkg/vm/pubspec.yaml
pkg/vm_service/pubspec.yaml
pkg/vm_service/test/test_package/pubspec.yaml
pkg/vm_service_protos/pubspec.yaml
pkg/vm_snapshot_analysis/pubspec.yaml
pkg/wasm_builder/pubspec.yaml

Metadata

Metadata

Assignees

Labels

P2Important issues not at the top of the work listblockedIssue is blocked by another issuec: tech-debtTechnical debt, code quality, testing, etc.engineflutter/engine related. See also e: labels.team-engineOwned by Engine teamtriaged-engineTriaged by Engine team

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions