flutter/packages/flutter_tools/test/general.shard
Daco Harkes 1f16d9121c
[native_assets] Add support for link hooks (#148474)
This PR adds support invoking `link.dart` hooks.

Link hooks can add new assets. Link hooks can transform assets sent to link hook from build hooks.

This PR does not yet add support for getting tree-shake information in the link hooks. This is pending on defining the `resources.json` format (https://github.com/dart-lang/sdk/issues/55494).

Issue:

* https://github.com/flutter/flutter/issues/146263

## Implementation considerations

The build hooks could be run before Dart compilation and the link hooks after Dart compilation. (This is how it's done in Dart standalone.) However, due to the way the `Target`s are set up, this would require two targets and serializing and deserializing the `BuildResult` in between these. This would lead to more code but no benefits. Currently there is nothing that mandates running build hooks before Dart compilation.

## Testing

* The unit tests verify that the native_assets_builder `link` and `linkDryRun` would be invoked with help of the existing fake.
* The native assets integration test now also invokes an FFI call of a package that adds the asset during the link hook instead of the build hook.
  * In order to keep coverage of the `flutter create --template=package_ffi`, `flutter create` is still run and the extra dependency is added and an extra ffi call is added. (Open to alternative suggestions.)
2024-05-22 16:02:00 +00:00
..
android Add a migrator to remove FlutterMultiDexApplication.java (#148515) 2024-05-21 18:53:53 +00:00
base [tools] Make SnapshotType.platform non-nullable (#146958) 2024-04-18 16:34:06 +00:00
build_system Fixes incorrect read/write permissions on Flutter.framework and FlutterMacOS.framework (#148580) 2024-05-20 14:41:52 -07:00
commands Make daemon server work on ipv6-only machines. (#144359) 2024-02-29 23:10:50 +00:00
custom_devices provide command to FakeCommand::onRun (#142206) 2024-01-25 07:51:25 +00:00
dap Roll pub packages + update DAP tests (#145349) 2024-03-18 21:39:21 +00:00
dart Remove message about pub cache that is not actionable (#143357) 2024-02-13 11:15:15 -08:00
drive Add a --print-dtd flag to print the DTD address served by DevTools server (#144272) 2024-03-25 13:04:18 -07:00
fuchsia Remove outdated ignores from tool (#140467) 2023-12-20 22:14:32 +00:00
intellij prevent tool crash when IntelliJValidatorOnMac encounters an installation with a missing CFBundleIdentifier (#138095) 2023-11-09 03:46:25 +00:00
ios Add Swift Package Manager as new opt-in feature for iOS and macOS (#146256) 2024-04-18 21:12:36 +00:00
isolated [native_assets] Add support for link hooks (#148474) 2024-05-22 16:02:00 +00:00
linux Reland "Move native assets to isolated/ directory" (#143055) 2024-02-08 17:49:48 +00:00
macos Fix iOS reference in macOS Cocoapods error (#148506) 2024-05-16 19:58:08 +00:00
migrations Add Swift Package Manager as new opt-in feature for iOS and macOS (#146256) 2024-04-18 21:12:36 +00:00
proxied_devices Avoid forwarding the data after socket is disconnected. (#146665) 2024-04-12 21:45:32 +00:00
reporting [flutter_tools] fix instructions to disable CLI animations (#139094) 2023-11-27 22:00:50 +00:00
runner add default-flavor field to flutter pubspec, which will be used as the flavor in flutter build/run if --flavor is not provided (#147968) 2024-05-22 05:11:24 +00:00
test flutter test --wasm support (#145347) 2024-03-21 20:08:07 +00:00
tester Native assets support for MacOS and iOS (#130494) 2023-09-10 08:07:13 +00:00
vscode Added support for vscode and vscode-insiders installed via Flatpak (#137123) 2023-12-04 21:59:53 +00:00
web Support flutter run --wasm and flutter drive --wasm. (#146231) 2024-04-12 19:27:26 +00:00
windows Convert ProjectMigration and ProjectMigrator to be async (#146537) 2024-04-10 16:26:19 +00:00
analytics_test.dart Flutter preview device (#135639) 2023-10-18 00:27:54 +00:00
android_plugin_test.dart
application_package_test.dart
args_test.dart [flutter_tools] Precache after channel switch (#118129) 2023-06-09 01:46:24 +00:00
artifact_updater_test.dart Enable unreachable_from_main lint - it is stable now!!1 (#129854) 2023-07-06 00:09:01 +00:00
artifacts_test.dart Reland "Add FlutterMacOS.xcframework artifact (#143244)" (#144275) 2024-02-28 20:09:54 +00:00
asset_bundle_flavors_test.dart Catch file system exceptions when trying to parse user-provided asset file paths (#142214) 2024-01-29 18:43:57 +00:00
asset_bundle_package_fonts_test.dart rename generated asset manifest file back to AssetManifest.bin (from AssetManifest.smcbin) (#128529) 2023-06-09 21:20:50 +00:00
asset_bundle_package_test.dart rename generated asset manifest file back to AssetManifest.bin (from AssetManifest.smcbin) (#128529) 2023-06-09 21:20:50 +00:00
asset_bundle_test.dart Reland "Expose build mode in environment of asset transformer processes" (#144958) 2024-04-22 15:46:13 +00:00
asset_bundle_variant_test.dart refactor asset bundle code to not depend on the global Cache.flutterRoot (#142277) 2024-01-26 22:01:26 +00:00
asset_test.dart refactor asset bundle code to not depend on the global Cache.flutterRoot (#142277) 2024-01-26 22:01:26 +00:00
base_utils_test.dart Fixed race condition in PollingDeviceDiscovery. (#145506) 2024-03-21 22:37:08 +00:00
build_info_test.dart [reland] Support conditional bundling of assets based on --flavor (#139834) 2023-12-14 05:30:10 +00:00
bundle_builder_test.dart Reland "Expose build mode in environment of asset transformer processes" (#144958) 2024-04-22 15:46:13 +00:00
cache_test.dart Reland "Add FlutterMacOS.xcframework artifact (#143244)" (#144275) 2024-02-28 20:09:54 +00:00
channel_test.dart [flutter_tools] Suppress git output in flutter channel (#128475) 2023-06-13 19:28:06 +00:00
cmake_test.dart Reduce usage of testUsingContext (#131078) 2023-07-24 17:22:25 +00:00
cold_test.dart Avoid depending on files from build_system/targets other than from top level entrypoints in flutter_tools. (#142760) 2024-02-02 18:23:08 +00:00
common_test.dart
compile_batch_test.dart Remove toString() overrides in dart:ui/package:flutter in profile/release mode on wasm/vm targets (#144763) 2024-03-08 09:55:02 +01:00
compile_expression_test.dart Roll engine, patch expression evaluation (#128255) 2023-06-07 19:48:42 +00:00
compile_incremental_test.dart Reland "Switch flutter_tools to run frontend server from AOT snapshot" (#136282) 2023-10-11 16:15:26 -04:00
compile_test.dart Remove toString() overrides in dart:ui/package:flutter in profile/release mode on wasm/vm targets (#144763) 2024-03-08 09:55:02 +01:00
config_test.dart
convert_test.dart
coverage_collector_test.dart Fix implementation imports outside of lib (#143594) 2024-02-16 22:38:10 +00:00
crash_reporting_test.dart Swap crash reporting with unified analytics (#148525) 2024-05-18 01:30:13 +00:00
create_config_test.dart Suggest a potential valid name for the flutter project when using flutter create (#130900) 2023-07-21 19:09:25 +00:00
daemon_test.dart [flutter_tools] Fix missing stack trace from daemon (#144113) 2024-02-27 08:39:49 +00:00
dart_plugin_test.dart feat: Rework getting plugin implementation candidates and plugin resolution (#145258) 2024-05-07 20:03:27 +00:00
desktop_device_test.dart Add --trace-to-file option to flutter run (#135713) 2023-10-12 13:23:52 -04:00
devfs_test.dart Reland "Expose build mode in environment of asset transformer processes" (#144958) 2024-04-22 15:46:13 +00:00
device_port_forwarder_test.dart
device_test.dart Fixed race condition in PollingDeviceDiscovery. (#145506) 2024-03-21 22:37:08 +00:00
device_vm_service_discovery_for_attach_test.dart Support mdns when attaching to proxied devices. (#146021) 2024-04-09 20:00:21 +00:00
devtools_launcher_test.dart Add a --print-dtd flag to print the DTD address served by DevTools server (#144272) 2024-03-25 13:04:18 -07:00
emulator_test.dart Fixed few typos (#147087) 2024-04-22 16:49:19 +00:00
fake_process_manager_test.dart
features_test.dart Add Swift Package Manager as new opt-in feature for iOS and macOS (#146256) 2024-04-18 21:12:36 +00:00
flutter_manifest_assets_test.dart add parsing of assets transformer declarations in pubspec.yaml (#143557) 2024-02-16 22:24:59 +00:00
flutter_manifest_assets_transformers_test.dart add parsing of assets transformer declarations in pubspec.yaml (#143557) 2024-02-16 22:24:59 +00:00
flutter_manifest_test.dart add default-flavor field to flutter pubspec, which will be used as the flavor in flutter build/run if --flavor is not provided (#147968) 2024-05-22 05:11:24 +00:00
flutter_platform_test.dart cleanup now-irrelevant ignores for deprecated_member_use (#143403) 2024-02-14 21:08:25 +00:00
flutter_project_metadata_test.dart Native assets support for MacOS and iOS (#130494) 2023-09-10 08:07:13 +00:00
flutter_tester_device_test.dart Add impeller key to skia gold client, Turn on a framework test shard that will run unit tests with --enable-impeller (#141341) 2024-01-11 17:57:00 +00:00
flutter_validator_test.dart Give channel descriptions in flutter channel, use branch instead of upstream for channel name (#126936) 2023-05-23 19:59:20 +00:00
generate_localizations_test.dart chore: fix some comments (#145397) 2024-03-19 17:00:24 +00:00
github_template_test.dart Added missing code block language in docs (#147481) 2024-05-01 14:44:27 +00:00
hot_shared.dart remove unused firstBuildTime parameter in DevFS::update (#144576) 2024-03-05 19:14:48 +00:00
hot_test.dart Bump dependencies in Flutter (#147546) 2024-04-29 15:53:25 -07:00
integration_test_device_test.dart
license_collector_test.dart
mdns_discovery_test.dart Clean up lint ignores (#144229) 2024-02-27 23:21:03 +00:00
message_parser_test.dart Relax syntax for gen-l10n (#130736) 2023-07-18 13:59:48 -07:00
persistent_tool_state_test.dart
plugin_parsing_test.dart
plugins_test.dart Add Swift Package Manager as new opt-in feature for iOS and macOS (#146256) 2024-04-18 21:12:36 +00:00
preview_device_test.dart [flutter_tools] Ensure flutter daemon clients can detect preview device (#140112) 2023-12-21 19:01:16 +00:00
project_file_invalidator_test.dart
project_test.dart Add Swift Package Manager as new opt-in feature for iOS and macOS (#146256) 2024-04-18 21:12:36 +00:00
project_validator_result_test.dart
protocol_discovery_test.dart
pub_dependencies_project_validator_test.dart
resident_devtools_handler_test.dart Add a --print-dtd flag to print the DTD address served by DevTools server (#144272) 2024-03-25 13:04:18 -07:00
resident_runner_helpers.dart Bump dependencies in Flutter (#147546) 2024-04-29 15:53:25 -07:00
resident_runner_test.dart Bump dependencies in Flutter (#147546) 2024-04-29 15:53:25 -07:00
resident_web_runner_cold_test.dart Bump dependencies in Flutter (#147546) 2024-04-29 15:53:25 -07:00
resident_web_runner_test.dart [flutter web] Listen for service extension registration events to determine hot-restart method name (#147897) 2024-05-07 23:06:59 +00:00
run_hot_test.dart Clean up lint ignores (#144229) 2024-02-27 23:21:03 +00:00
template_test.dart Locate the template directory using a TemplatePathProvider. (#132156) 2023-08-08 21:43:00 +00:00
terminal_handler_test.dart [flutter_tools] Catch rpc error in render frame with raster stats (#144190) 2024-02-28 18:54:18 +00:00
testbed_test.dart
time_test.dart
tracing_test.dart [flutter_tools] Catch rpc error in render frame with raster stats (#144190) 2024-02-28 18:54:18 +00:00
unified_analytics_test.dart Bump dependencies in Flutter (#147546) 2024-04-29 15:53:25 -07:00
update_packages_test.dart Allow explicit exclusion of packages from pinned packages in flutter update-packages --force-update (#147679) 2024-05-02 01:16:54 +00:00
utils_test.dart Reland #128236 "Improve build output for all platforms" (#145495) 2024-03-23 12:05:21 +00:00
version_test.dart [flutter_tools] Fix "FormatException: Invalid date format" during version freshness check (#134088) 2023-09-06 17:22:13 +00:00
vmservice_test.dart add more print traces in hot runner workflow (#148258) 2024-05-13 22:51:48 +00:00
web_template_test.dart Flutter Web Bootstrapping Improvements (#144434) 2024-03-12 22:41:26 +00:00
windows_version_validator_test.dart Add check for Bank of Brazil security module to Windows Flutter Doctor validators (#141135) 2024-01-18 12:32:49 -05:00
xcode_backend_test.dart Add Swift Package Manager as new opt-in feature for iOS and macOS (#146256) 2024-04-18 21:12:36 +00:00
xcode_project_test.dart Add Swift Package Manager as new opt-in feature for iOS and macOS (#146256) 2024-04-18 21:12:36 +00:00