From fcfbe83be95c3b7a63fb6eead6048f76a712e2a8 Mon Sep 17 00:00:00 2001 From: Srujan Gaddam <58529443+srujzs@users.noreply.github.com> Date: Mon, 19 May 2025 15:05:15 -0700 Subject: [PATCH] Fix DDC library bundle format test files to correctly pass flags (#169095) Fixes a couple issues: - Passes --web-experimental-hot-reload when library bundle format is enabled. - Passes chrome id only if chrome is enabled. - Makes sure common code is run with VM and chrome. ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [ ] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. --- .../test_data/hot_reload_errors_common.dart | 9 +++++-- .../test_data/hot_reload_test_common.dart | 26 ++++++------------- .../hot_reload_with_asset_test_common.dart | 5 ++-- ...eless_stateful_hot_reload_test_common.dart | 13 ++++------ .../test/integration.shard/test_driver.dart | 9 +++---- .../expression_evaluation_web_common.dart | 17 +++++++++--- .../hot_restart_web_test_common.dart | 21 ++++++++++----- 7 files changed, 55 insertions(+), 45 deletions(-) diff --git a/packages/flutter_tools/test/integration.shard/test_data/hot_reload_errors_common.dart b/packages/flutter_tools/test/integration.shard/test_data/hot_reload_errors_common.dart index 3baf503b345..0c8b9386de6 100644 --- a/packages/flutter_tools/test/integration.shard/test_data/hot_reload_errors_common.dart +++ b/packages/flutter_tools/test/integration.shard/test_data/hot_reload_errors_common.dart @@ -3,6 +3,7 @@ // found in the LICENSE file. import 'package:file/file.dart'; +import 'package:flutter_tools/src/tester/flutter_tester.dart'; import 'package:flutter_tools/src/web/web_device.dart' show GoogleChromeDevice; import '../../src/common.dart'; @@ -36,7 +37,11 @@ void testAll({ testWithoutContext( 'hot reload displays a formatted error message when removing a field from a const class', () async { - await flutter.run(); + await flutter.run( + device: + chrome ? GoogleChromeDevice.kChromeDeviceId : FlutterTesterDevices.kTesterDeviceId, + additionalCommandArgs: additionalCommandArgs, + ); project.removeFieldFromConstClass(); expect( @@ -54,7 +59,7 @@ void testAll({ testWithoutContext('hot restart succeeds when removing a field from a const class', () async { await flutter.run( - device: GoogleChromeDevice.kChromeDeviceId, + device: chrome ? GoogleChromeDevice.kChromeDeviceId : FlutterTesterDevices.kTesterDeviceId, additionalCommandArgs: additionalCommandArgs, ); project.removeFieldFromConstClass(); diff --git a/packages/flutter_tools/test/integration.shard/test_data/hot_reload_test_common.dart b/packages/flutter_tools/test/integration.shard/test_data/hot_reload_test_common.dart index edf34de89e0..f6cf2435b0f 100644 --- a/packages/flutter_tools/test/integration.shard/test_data/hot_reload_test_common.dart +++ b/packages/flutter_tools/test/integration.shard/test_data/hot_reload_test_common.dart @@ -5,6 +5,7 @@ import 'dart:async'; import 'package:file/file.dart'; +import 'package:flutter_tools/src/tester/flutter_tester.dart'; import 'package:flutter_tools/src/web/web_device.dart' show GoogleChromeDevice; import 'package:vm_service/vm_service.dart'; @@ -275,21 +276,10 @@ Future runFlutterWithDevice( bool withDebugger = false, bool startPaused = false, List additionalCommandArgs = const [], -}) async { - if (chrome) { - await flutter.run( - verbose: verbose, - withDebugger: withDebugger, - startPaused: startPaused, - device: GoogleChromeDevice.kChromeDeviceId, - additionalCommandArgs: additionalCommandArgs, - ); - } else { - await flutter.run( - verbose: verbose, - withDebugger: withDebugger, - startPaused: startPaused, - additionalCommandArgs: additionalCommandArgs, - ); - } -} +}) => flutter.run( + verbose: verbose, + withDebugger: withDebugger, + startPaused: startPaused, + device: chrome ? GoogleChromeDevice.kChromeDeviceId : FlutterTesterDevices.kTesterDeviceId, + additionalCommandArgs: additionalCommandArgs, +); diff --git a/packages/flutter_tools/test/integration.shard/test_data/hot_reload_with_asset_test_common.dart b/packages/flutter_tools/test/integration.shard/test_data/hot_reload_with_asset_test_common.dart index cf46804c089..7525565c3d2 100644 --- a/packages/flutter_tools/test/integration.shard/test_data/hot_reload_with_asset_test_common.dart +++ b/packages/flutter_tools/test/integration.shard/test_data/hot_reload_with_asset_test_common.dart @@ -5,6 +5,7 @@ import 'dart:async'; import 'package:file/file.dart'; +import 'package:flutter_tools/src/tester/flutter_tester.dart'; import 'package:flutter_tools/src/web/web_device.dart' show GoogleChromeDevice; import '../../src/common.dart'; @@ -50,7 +51,7 @@ void testAll({bool chrome = false, List additionalCommandArgs = const additionalCommandArgs = const additionalCommandArgs = const [WebServerDevice.kWebServerDeviceId]; default: - deviceArgs = ['flutter-tester']; + deviceArgs = [device]; } await _setupProcess( diff --git a/packages/flutter_tools/test/web.shard/test_data/expression_evaluation_web_common.dart b/packages/flutter_tools/test/web.shard/test_data/expression_evaluation_web_common.dart index e128cfb5c56..c3eb5114c35 100644 --- a/packages/flutter_tools/test/web.shard/test_data/expression_evaluation_web_common.dart +++ b/packages/flutter_tools/test/web.shard/test_data/expression_evaluation_web_common.dart @@ -16,7 +16,7 @@ import '../../src/common.dart'; final RegExp stackTraceCurrentRegexp = RegExp(r'\.dart\s+[0-9]+:[0-9]+\s+get current'); Future testAll({required bool useDDCLibraryBundleFormat}) async { - group('Flutter run for web', () { + group('Flutter run for web, DDC library bundle format: $useDDCLibraryBundleFormat', () { final BasicProject project = BasicProject(); late Directory tempDir; late FlutterRunTestDriver flutter; @@ -45,7 +45,10 @@ Future testAll({required bool useDDCLibraryBundleFormat}) async { expressionEvaluation: expressionEvaluation, additionalCommandArgs: [ '--verbose', - if (useDDCLibraryBundleFormat) '--web-experimental-hot-reload', + if (useDDCLibraryBundleFormat) + '--web-experimental-hot-reload' + else + '--no-web-experimental-hot-reload', ], ); } @@ -140,7 +143,7 @@ Future testAll({required bool useDDCLibraryBundleFormat}) async { }); }); - group('Flutter test for web', () { + group('Flutter test for web, DDC library bundle format: $useDDCLibraryBundleFormat', () { final TestsProject project = TestsProject(); late Directory tempDir; late FlutterRunTestDriver flutter; @@ -171,7 +174,13 @@ Future testAll({required bool useDDCLibraryBundleFormat}) async { expressionEvaluation: expressionEvaluation, startPaused: true, script: project.testFilePath, - additionalCommandArgs: ['--verbose'], + additionalCommandArgs: [ + '--verbose', + if (useDDCLibraryBundleFormat) + '--web-experimental-hot-reload' + else + '--no-web-experimental-hot-reload', + ], ); } diff --git a/packages/flutter_tools/test/web.shard/test_data/hot_restart_web_test_common.dart b/packages/flutter_tools/test/web.shard/test_data/hot_restart_web_test_common.dart index 84c13a2b1f3..add4581c374 100644 --- a/packages/flutter_tools/test/web.shard/test_data/hot_restart_web_test_common.dart +++ b/packages/flutter_tools/test/web.shard/test_data/hot_restart_web_test_common.dart @@ -69,11 +69,8 @@ Future _testProject( late Directory tempDir; late FlutterRunTestDriver flutter; - final List additionalCommandArgs = - useDDCLibraryBundleFormat ? ['--web-experimental-hot-reload'] : []; final String testName = - 'Hot restart (index.html: $name)' - '${additionalCommandArgs.isEmpty ? '' : ' with args: $additionalCommandArgs'}'; + 'Hot restart (index.html: $name), DDC library bundle format: $useDDCLibraryBundleFormat'; setUp(() async { tempDir = createResolvedTempDirectorySync('hot_restart_test.'); @@ -91,7 +88,13 @@ Future _testProject( flutter.stdout.listen(printOnFailure); await flutter.run( device: GoogleChromeDevice.kChromeDeviceId, - additionalCommandArgs: ['--verbose', ...additionalCommandArgs], + additionalCommandArgs: [ + '--verbose', + if (useDDCLibraryBundleFormat) + '--web-experimental-hot-reload' + else + '--no-web-experimental-hot-reload', + ], ); await flutter.hotRestart(); }); @@ -108,7 +111,13 @@ Future _testProject( }); await flutter.run( device: GoogleChromeDevice.kChromeDeviceId, - additionalCommandArgs: ['--verbose', ...additionalCommandArgs], + additionalCommandArgs: [ + '--verbose', + if (useDDCLibraryBundleFormat) + '--web-experimental-hot-reload' + else + '--no-web-experimental-hot-reload', + ], ); project.uncommentHotReloadPrint(); try {