flutter/packages/flutter_tools/test/general.shard
Daco Harkes e410b7cd5e
[native_assets] Use kernel concatenation (#147158)
Uses kernel concatenation to concatenate the `program.dill` and `native_assets.dill`.

This will enable compiling `native_assets.dill` after `program.dill` so that tree-shaking information can be used.

Issue:

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

## Implementation choices

* We can either run the frontend_server twice as a process invocation (current PR), or keep the process running after the dart compilation and then shut it down after native assets compilation to kernel. Keeping the process running would require more coordination between different `Target`s.
* We can either chose to only do separate kernel file compilation in release (AOT) builds, or do it both for JIT and AOT (current PR). Doing it differently in JIT/AOT means more conditionals in lib/src/build_system/targets/, doing it single-shot in JIT might be more performant though.

Update: Both of these are mitigated by not running the kernel compiler process if there are no native assets at all.

## Implementation notes

This only updates `flutter assemble`.

The kernel compilation calls in `flutter run` do not require kernel concatenation. The native-assets-kernel-mapping in `flutter run` contains results from `--dry-run` invocations of `hook/build.dart` (and in the future `hook/link.dart`). These `--dry-run` invocations do not get access to tree-shaking information, so the `link` hook to be introduced later can be run before Dart compilation.

## Tests

* Updated the `Target`s tests to reflect the new implementation.

## Related CLs

* frontend_server support: https://dart-review.googlesource.com/c/sdk/+/363567
* Same PR for Dart standalone: https://dart-review.googlesource.com/c/sdk/+/362384
2024-04-25 11:22:17 +00:00
..
android Convert ProjectMigration and ProjectMigrator to be async (#146537) 2024-04-10 16:26:19 +00:00
base [tools] Make SnapshotType.platform non-nullable (#146958) 2024-04-18 16:34:06 +00:00
build_system [native_assets] Use kernel concatenation (#147158) 2024-04-25 11:22:17 +00: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 [deps] Bump native assets dependencies (#145612) 2024-03-25 15:02:49 +01:00
linux Reland "Move native assets to isolated/ directory" (#143055) 2024-02-08 17:49:48 +00:00
macos Add Swift Package Manager as new opt-in feature for iOS and macOS (#146256) 2024-04-18 21:12:36 +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 Update docs around ga3 ga4 mismatch (#147075) 2024-04-19 19:15:09 +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 Fix path name to discover debug apk on add2app builds (#117999) 2023-01-24 13:19:09 -08:00
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 [flutter_tools] fix Cannot delete file ENOENT from fuchsia_asset_builder (#119867) 2023-02-03 19:24:41 +00:00
convert_test.dart Remove unnecessary null checks in flutter_tool (#118857) 2023-01-23 21:43:08 +00:00
coverage_collector_test.dart Fix implementation imports outside of lib (#143594) 2024-02-16 22:38:10 +00:00
crash_reporting_test.dart Appended period remove & Uri parsing fix. (#131293) 2023-07-31 20:42:11 +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 refactor: Remove throwOnPluginPubspecError flag for plugin validation (#144214) 2024-03-07 23:04:08 +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 Remove outdated ignores (#108924) 2022-08-03 23:37:05 +00:00
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 Swift Package Manager as new opt-in feature for iOS and macOS (#146256) 2024-04-18 21:12:36 +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
hot_shared.dart remove unused firstBuildTime parameter in DevFS::update (#144576) 2024-03-05 19:14:48 +00:00
hot_test.dart Reland "Move native assets to isolated/ directory" (#143055) 2024-02-08 17:49:48 +00:00
integration_test_device_test.dart Adds vmservices for getting iOS build options (#121736) 2023-03-06 22:37:55 +00:00
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 Allow iOS and macOS plugins to share darwin directory (#115337) 2023-01-09 10:33:03 -08:00
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 Reland "Remove references to Observatory (#118577)" (#121606) 2023-02-28 11:57:04 -05:00
pub_dependencies_project_validator_test.dart Add info project validator status (#109169) 2022-08-09 17:59:06 +00:00
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 remove unused firstBuildTime parameter in DevFS::update (#144576) 2024-03-05 19:14:48 +00:00
resident_runner_test.dart [flutter_tools] Catch rpc error in render frame with raster stats (#144190) 2024-02-28 18:54:18 +00:00
resident_web_runner_cold_test.dart Remove outdated ignores from tool (#140467) 2023-12-20 22:14:32 +00:00
resident_web_runner_test.dart remove unused firstBuildTime parameter in DevFS::update (#144576) 2024-03-05 19:14:48 +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 Use new enabledFeature param for Analytics (#139934) 2023-12-15 19:58:05 +00:00
update_packages_test.dart Copy the flutter version JSON file into the simulated Flutter SDK used by update_packages (#143035) 2024-02-06 20:00:08 -08: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 [flutter_tools] Catch rpc error in render frame with raster stats (#144190) 2024-02-28 18:54:18 +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