Add and plumb useImplicitPubspecResolution
across flutter_tools
. (#157879)
Work towards https://github.com/flutter/flutter/issues/157819. **No behavior changes as a result of this PR**. Based on a proof of concept by @jonahwilliams (https://github.com/flutter/flutter/pull/157818). The existence of this flag (which for the time being, defaults to `true`) implies the following: 1. The (legacy, deprecated) `.flutter-plugins` file is not generated: https://docs.flutter.dev/release/breaking-changes/flutter-plugins-configuration 2. The (legacy, deprecated) `package:flutter_gen` is not synthetically generated: https://github.com/flutter/website/pull/11343 (awaiting website approvers, but owners approve this change) This change creates `useImplicitPubspecResolution` and plumbs it through as a required variable, parsing it from a `FlutterCommand.globalResults` where able. In tests, I've defaulted the value to `true` 100% of the time - except for places where the value itself is acted on directly, in which case there are true and false test-cases (e.g. localization and i10n based classes and functions). I'm not extremely happy this needed to change 50+ files, but is sort of a result of how inter-connected many of the elements of the tools are. I believe keeping this as an explicit (flagged) argument will be our best way to ensure the default behavior changes consistently and that tests are running as expected.
This commit is contained in:
parent
6aaa387f2e
commit
fb022290ff
@ -34,7 +34,7 @@ const List<String> _kRequiredOptions = <String>[
|
||||
Future<void> main(List<String> args) {
|
||||
return runInContext<void>(() => run(args), overrides: <Type, Generator>{
|
||||
Usage: () => DisabledUsage(),
|
||||
});
|
||||
}, useImplicitPubspecResolution: true);
|
||||
}
|
||||
|
||||
Future<void> writeAssetFile(libfs.File outputFile, AssetBundleEntry asset) async {
|
||||
|
@ -43,7 +43,7 @@ const String _kOptionCoveragePath = 'coverage-path';
|
||||
void main(List<String> args) {
|
||||
runInContext<void>(() => run(args), overrides: <Type, Generator>{
|
||||
Usage: () => DisabledUsage(),
|
||||
});
|
||||
}, useImplicitPubspecResolution: true);
|
||||
}
|
||||
|
||||
Future<void> run(List<String> args) async {
|
||||
|
@ -347,6 +347,7 @@ class Environment {
|
||||
required Analytics analytics,
|
||||
String? engineVersion,
|
||||
required bool generateDartPluginRegistry,
|
||||
required bool useImplicitPubspecResolution,
|
||||
Directory? buildDir,
|
||||
Map<String, String> defines = const <String, String>{},
|
||||
Map<String, String> inputs = const <String, String>{},
|
||||
@ -391,6 +392,7 @@ class Environment {
|
||||
engineVersion: engineVersion,
|
||||
inputs: inputs,
|
||||
generateDartPluginRegistry: generateDartPluginRegistry,
|
||||
useImplicitPubspecResolution: useImplicitPubspecResolution,
|
||||
);
|
||||
}
|
||||
|
||||
@ -412,6 +414,7 @@ class Environment {
|
||||
Usage? usage,
|
||||
Analytics? analytics,
|
||||
bool generateDartPluginRegistry = false,
|
||||
bool useImplicitPubspecResolution = true,
|
||||
required FileSystem fileSystem,
|
||||
required Logger logger,
|
||||
required Artifacts artifacts,
|
||||
@ -435,6 +438,7 @@ class Environment {
|
||||
analytics: analytics ?? const NoOpAnalytics(),
|
||||
engineVersion: engineVersion,
|
||||
generateDartPluginRegistry: generateDartPluginRegistry,
|
||||
useImplicitPubspecResolution: useImplicitPubspecResolution,
|
||||
);
|
||||
}
|
||||
|
||||
@ -457,6 +461,7 @@ class Environment {
|
||||
this.engineVersion,
|
||||
required this.inputs,
|
||||
required this.generateDartPluginRegistry,
|
||||
required this.useImplicitPubspecResolution,
|
||||
});
|
||||
|
||||
/// The [Source] value which is substituted with the path to [projectDir].
|
||||
@ -557,6 +562,10 @@ class Environment {
|
||||
/// the new entrypoint.
|
||||
final bool generateDartPluginRegistry;
|
||||
|
||||
/// Whether to generate a `.flutter-plugins` file and for Flutter i10n source
|
||||
/// generation to default to `synthetic-package: true`.
|
||||
final bool useImplicitPubspecResolution;
|
||||
|
||||
late final DepfileService depFileService = DepfileService(
|
||||
logger: logger,
|
||||
fileSystem: fileSystem,
|
||||
|
@ -56,6 +56,7 @@ class GenerateLocalizationsTarget extends Target {
|
||||
file: configFile,
|
||||
logger: environment.logger,
|
||||
defaultArbDir: defaultArbDir,
|
||||
defaultSyntheticPackage: environment.useImplicitPubspecResolution,
|
||||
);
|
||||
await generateLocalizations(
|
||||
logger: environment.logger,
|
||||
|
@ -37,6 +37,7 @@ class BundleBuilder {
|
||||
Future<void> build({
|
||||
required TargetPlatform platform,
|
||||
required BuildInfo buildInfo,
|
||||
required bool useImplicitPubspecResolution,
|
||||
FlutterProject? project,
|
||||
String? mainPath,
|
||||
String manifestPath = defaultManifestPath,
|
||||
@ -79,6 +80,7 @@ class BundleBuilder {
|
||||
analytics: globals.analytics,
|
||||
platform: globals.platform,
|
||||
generateDartPluginRegistry: true,
|
||||
useImplicitPubspecResolution: useImplicitPubspecResolution,
|
||||
);
|
||||
final Target target = buildInfo.mode == BuildMode.debug
|
||||
? globals.buildTargets.copyFlutterBundle
|
||||
|
@ -26,6 +26,7 @@ import '../globals.dart' as globals;
|
||||
import '../project.dart';
|
||||
import '../reporting/reporting.dart';
|
||||
import '../runner/flutter_command.dart';
|
||||
import '../runner/flutter_command_runner.dart';
|
||||
|
||||
/// All currently implemented targets.
|
||||
List<Target> _kDefaultTargets = <Target>[
|
||||
@ -252,6 +253,7 @@ class AssembleCommand extends FlutterCommand {
|
||||
? null
|
||||
: globals.flutterVersion.engineRevision,
|
||||
generateDartPluginRegistry: true,
|
||||
useImplicitPubspecResolution: globalResults!.flag(FlutterGlobalOptions.kImplicitPubspecResolution),
|
||||
);
|
||||
return result;
|
||||
}
|
||||
|
@ -280,6 +280,7 @@ known, it can be explicitly provided to attach via the command-line, e.g.
|
||||
? _logger
|
||||
: NotifyingLogger(verbose: _logger.isVerbose, parent: _logger),
|
||||
logToStdout: true,
|
||||
useImplicitPubspecResolution: globalResults!.flag(FlutterGlobalOptions.kImplicitPubspecResolution),
|
||||
)
|
||||
: null;
|
||||
|
||||
@ -466,6 +467,7 @@ known, it can be explicitly provided to attach via the command-line, e.g.
|
||||
printDtd: boolArg(FlutterGlobalOptions.kPrintDtd, global: true),
|
||||
);
|
||||
|
||||
final bool useImplicitPubspecResolution = globalResults!.flag(FlutterGlobalOptions.kImplicitPubspecResolution);
|
||||
return buildInfo.isDebug
|
||||
? _hotRunnerFactory.build(
|
||||
flutterDevices,
|
||||
@ -478,11 +480,13 @@ known, it can be explicitly provided to attach via the command-line, e.g.
|
||||
nativeAssetsYamlFile: stringArg(FlutterOptions.kNativeAssetsYamlFile),
|
||||
nativeAssetsBuilder: _nativeAssetsBuilder,
|
||||
analytics: analytics,
|
||||
useImplicitPubspecResolution: useImplicitPubspecResolution,
|
||||
)
|
||||
: ColdRunner(
|
||||
flutterDevices,
|
||||
target: targetFile,
|
||||
debuggingOptions: debuggingOptions,
|
||||
useImplicitPubspecResolution: useImplicitPubspecResolution,
|
||||
);
|
||||
}
|
||||
|
||||
@ -509,6 +513,7 @@ class HotRunnerFactory {
|
||||
FlutterProject? flutterProject,
|
||||
String? nativeAssetsYamlFile,
|
||||
required HotRunnerNativeAssetsBuilder? nativeAssetsBuilder,
|
||||
required bool useImplicitPubspecResolution,
|
||||
required Analytics analytics,
|
||||
}) => HotRunner(
|
||||
devices,
|
||||
@ -523,5 +528,6 @@ class HotRunnerFactory {
|
||||
nativeAssetsYamlFile: nativeAssetsYamlFile,
|
||||
nativeAssetsBuilder: nativeAssetsBuilder,
|
||||
analytics: analytics,
|
||||
useImplicitPubspecResolution: useImplicitPubspecResolution,
|
||||
);
|
||||
}
|
||||
|
@ -13,6 +13,7 @@ import '../globals.dart' as globals;
|
||||
import '../project.dart';
|
||||
import '../reporting/reporting.dart';
|
||||
import '../runner/flutter_command.dart';
|
||||
import '../runner/flutter_command_runner.dart';
|
||||
import 'build.dart';
|
||||
|
||||
class BuildBundleCommand extends BuildSubCommand {
|
||||
@ -149,6 +150,7 @@ class BuildBundleCommand extends BuildSubCommand {
|
||||
depfilePath: stringArg('depfile'),
|
||||
assetDirPath: stringArg('asset-dir'),
|
||||
buildNativeAssets: false,
|
||||
useImplicitPubspecResolution: globalResults!.flag(FlutterGlobalOptions.kImplicitPubspecResolution),
|
||||
);
|
||||
return FlutterCommandResult.success();
|
||||
}
|
||||
|
@ -21,6 +21,7 @@ import '../flutter_plugins.dart';
|
||||
import '../globals.dart' as globals;
|
||||
import '../macos/cocoapod_utils.dart';
|
||||
import '../runner/flutter_command.dart' show DevelopmentArtifact, FlutterCommandResult;
|
||||
import '../runner/flutter_command_runner.dart';
|
||||
import '../version.dart';
|
||||
import 'build.dart';
|
||||
|
||||
@ -460,6 +461,7 @@ end
|
||||
? null
|
||||
: globals.flutterVersion.engineRevision,
|
||||
generateDartPluginRegistry: true,
|
||||
useImplicitPubspecResolution: globalResults!.flag(FlutterGlobalOptions.kImplicitPubspecResolution),
|
||||
);
|
||||
Target target;
|
||||
// Always build debug for simulator.
|
||||
|
@ -19,6 +19,7 @@ import '../flutter_plugins.dart';
|
||||
import '../globals.dart' as globals;
|
||||
import '../macos/cocoapod_utils.dart';
|
||||
import '../runner/flutter_command.dart' show DevelopmentArtifact, FlutterCommandResult;
|
||||
import '../runner/flutter_command_runner.dart';
|
||||
import '../version.dart';
|
||||
import 'build_ios_framework.dart';
|
||||
|
||||
@ -239,6 +240,7 @@ end
|
||||
analytics: globals.analytics,
|
||||
engineVersion: globals.artifacts!.usesLocalArtifacts ? null : globals.flutterVersion.engineRevision,
|
||||
generateDartPluginRegistry: true,
|
||||
useImplicitPubspecResolution: globalResults!.flag(FlutterGlobalOptions.kImplicitPubspecResolution),
|
||||
);
|
||||
Target target;
|
||||
// Always build debug for simulator.
|
||||
|
@ -10,6 +10,7 @@ import '../features.dart';
|
||||
import '../globals.dart' as globals;
|
||||
import '../runner/flutter_command.dart'
|
||||
show DevelopmentArtifact, FlutterCommandResult, FlutterOptions;
|
||||
import '../runner/flutter_command_runner.dart';
|
||||
import '../web/compile.dart';
|
||||
import '../web/file_generators/flutter_service_worker_js.dart';
|
||||
import '../web/web_constants.dart';
|
||||
@ -226,6 +227,7 @@ class BuildWebCommand extends BuildSubCommand {
|
||||
flutterVersion: globals.flutterVersion,
|
||||
usage: globals.flutterUsage,
|
||||
analytics: globals.analytics,
|
||||
useImplicitPubspecResolution: globalResults!.flag(FlutterGlobalOptions.kImplicitPubspecResolution),
|
||||
);
|
||||
await webBuilder.buildWeb(
|
||||
project,
|
||||
|
@ -21,6 +21,7 @@ import '../flutter_project_metadata.dart';
|
||||
import '../globals.dart' as globals;
|
||||
import '../project.dart';
|
||||
import '../runner/flutter_command.dart';
|
||||
import '../runner/flutter_command_runner.dart';
|
||||
import '../template.dart';
|
||||
|
||||
const List<String> _kAvailablePlatforms = <String>[
|
||||
@ -574,6 +575,7 @@ abstract class CreateBase extends FlutterCommand {
|
||||
projectDir: project.directory,
|
||||
packageConfigPath: packageConfigPath(),
|
||||
generateDartPluginRegistry: true,
|
||||
useImplicitPubspecResolution: globalResults!.flag(FlutterGlobalOptions.kImplicitPubspecResolution),
|
||||
);
|
||||
|
||||
// Generate the l10n synthetic package that will be injected into the
|
||||
|
@ -377,7 +377,8 @@ class CustomDevicesAddCommand extends CustomDevicesCommandBase {
|
||||
final CustomDevice device = CustomDevice(
|
||||
config: config,
|
||||
logger: logger,
|
||||
processManager: _processManager
|
||||
processManager: _processManager,
|
||||
useImplicitPubspecResolution: globalResults!.flag(FlutterGlobalOptions.kImplicitPubspecResolution),
|
||||
);
|
||||
|
||||
bool result = true;
|
||||
|
@ -32,6 +32,7 @@ import '../resident_runner.dart';
|
||||
import '../run_cold.dart';
|
||||
import '../run_hot.dart';
|
||||
import '../runner/flutter_command.dart';
|
||||
import '../runner/flutter_command_runner.dart';
|
||||
import '../vmservice.dart';
|
||||
import '../web/web_runner.dart';
|
||||
|
||||
@ -66,6 +67,7 @@ class DaemonCommand extends FlutterCommand {
|
||||
|
||||
@override
|
||||
Future<FlutterCommandResult> runCommand() async {
|
||||
final bool useImplicitPubspecResolution = globalResults!.flag(FlutterGlobalOptions.kImplicitPubspecResolution);
|
||||
if (argResults!['listen-on-tcp-port'] != null) {
|
||||
int? port;
|
||||
try {
|
||||
@ -82,6 +84,7 @@ class DaemonCommand extends FlutterCommand {
|
||||
outputPreferences: globals.outputPreferences,
|
||||
),
|
||||
notifyingLogger: asLogger<NotifyingLogger>(globals.logger),
|
||||
useImplicitPubspecResolution: useImplicitPubspecResolution,
|
||||
).run();
|
||||
return FlutterCommandResult.success();
|
||||
}
|
||||
@ -92,6 +95,7 @@ class DaemonCommand extends FlutterCommand {
|
||||
logger: globals.logger,
|
||||
),
|
||||
notifyingLogger: asLogger<NotifyingLogger>(globals.logger),
|
||||
useImplicitPubspecResolution: useImplicitPubspecResolution,
|
||||
);
|
||||
final int code = await daemon.onExit;
|
||||
if (code != 0) {
|
||||
@ -105,10 +109,11 @@ class DaemonCommand extends FlutterCommand {
|
||||
class DaemonServer {
|
||||
DaemonServer({
|
||||
this.port,
|
||||
required bool useImplicitPubspecResolution,
|
||||
required this.logger,
|
||||
this.notifyingLogger,
|
||||
@visibleForTesting Future<ServerSocket> Function(InternetAddress address, int port) bind = ServerSocket.bind,
|
||||
}) : _bind = bind;
|
||||
}) : _bind = bind, _useImplicitPubspecResolution = useImplicitPubspecResolution;
|
||||
|
||||
final int? port;
|
||||
|
||||
@ -117,6 +122,7 @@ class DaemonServer {
|
||||
|
||||
// Logger that sends the message to the other end of daemon connection.
|
||||
final NotifyingLogger? notifyingLogger;
|
||||
final bool _useImplicitPubspecResolution;
|
||||
|
||||
final Future<ServerSocket> Function(InternetAddress address, int port) _bind;
|
||||
|
||||
@ -151,6 +157,7 @@ class DaemonServer {
|
||||
logger: logger,
|
||||
),
|
||||
notifyingLogger: notifyingLogger,
|
||||
useImplicitPubspecResolution: _useImplicitPubspecResolution,
|
||||
);
|
||||
await daemon.onExit;
|
||||
await socketDone;
|
||||
@ -169,13 +176,14 @@ typedef CommandHandlerWithBinary = Future<Object?> Function(Map<String, Object?>
|
||||
class Daemon {
|
||||
Daemon(
|
||||
this.connection, {
|
||||
required bool useImplicitPubspecResolution,
|
||||
this.notifyingLogger,
|
||||
this.logToStdout = false,
|
||||
FileTransfer fileTransfer = const FileTransfer(),
|
||||
}) {
|
||||
// Set up domains.
|
||||
registerDomain(daemonDomain = DaemonDomain(this));
|
||||
registerDomain(appDomain = AppDomain(this));
|
||||
registerDomain(appDomain = AppDomain(this, useImplicitPubspecResolution: useImplicitPubspecResolution));
|
||||
registerDomain(deviceDomain = DeviceDomain(this));
|
||||
registerDomain(emulatorDomain = EmulatorDomain(this));
|
||||
registerDomain(devToolsDomain = DevToolsDomain(this));
|
||||
@ -637,7 +645,10 @@ typedef RunOrAttach = Future<void> Function({
|
||||
///
|
||||
/// It fires events for application start, stop, and stdout and stderr.
|
||||
class AppDomain extends Domain {
|
||||
AppDomain(Daemon daemon) : super(daemon, 'app') {
|
||||
AppDomain(Daemon daemon, {
|
||||
required bool useImplicitPubspecResolution,
|
||||
}) : _useImplicitPubspecResolution = useImplicitPubspecResolution,
|
||||
super(daemon, 'app') {
|
||||
registerHandler('restart', restart);
|
||||
registerHandler('callServiceExtension', callServiceExtension);
|
||||
registerHandler('stop', stop);
|
||||
@ -649,6 +660,7 @@ class AppDomain extends Domain {
|
||||
static String _getNewAppId() => _uuidGenerator.v4();
|
||||
|
||||
final List<AppInstance> _apps = <AppInstance>[];
|
||||
final bool _useImplicitPubspecResolution;
|
||||
|
||||
final DebounceOperationQueue<OperationResult, OperationType> operationQueue = DebounceOperationQueue<OperationResult, OperationType>();
|
||||
|
||||
@ -705,6 +717,7 @@ class AppDomain extends Domain {
|
||||
systemClock: globals.systemClock,
|
||||
logger: globals.logger,
|
||||
fileSystem: globals.fs,
|
||||
useImplicitPubspecResolution: _useImplicitPubspecResolution,
|
||||
);
|
||||
} else if (enableHotReload) {
|
||||
runner = HotRunner(
|
||||
@ -718,6 +731,7 @@ class AppDomain extends Domain {
|
||||
machine: machine,
|
||||
analytics: globals.analytics,
|
||||
nativeAssetsBuilder: nativeAssetsBuilder,
|
||||
useImplicitPubspecResolution: _useImplicitPubspecResolution,
|
||||
);
|
||||
} else {
|
||||
runner = ColdRunner(
|
||||
@ -726,6 +740,7 @@ class AppDomain extends Domain {
|
||||
debuggingOptions: options,
|
||||
applicationBinary: applicationBinary,
|
||||
machine: machine,
|
||||
useImplicitPubspecResolution: _useImplicitPubspecResolution,
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -28,6 +28,7 @@ import '../ios/devices.dart';
|
||||
import '../macos/macos_ipad_device.dart';
|
||||
import '../resident_runner.dart';
|
||||
import '../runner/flutter_command.dart' show FlutterCommandCategory, FlutterCommandResult, FlutterOptions;
|
||||
import '../runner/flutter_command_runner.dart';
|
||||
import '../web/web_device.dart';
|
||||
import 'run.dart';
|
||||
|
||||
@ -260,6 +261,7 @@ class DriveCommand extends RunCommandBase {
|
||||
processUtils: globals.processUtils,
|
||||
dartSdkPath: globals.artifacts!.getArtifactPath(Artifact.engineDartBinary),
|
||||
devtoolsLauncher: DevtoolsLauncher.instance!,
|
||||
useImplicitPubspecResolution: globalResults!.flag(FlutterGlobalOptions.kImplicitPubspecResolution),
|
||||
);
|
||||
final File packageConfigFile = findPackageConfigFileOrDefault(_fileSystem.currentDirectory);
|
||||
|
||||
|
@ -11,6 +11,7 @@ import '../base/logger.dart';
|
||||
import '../localizations/gen_l10n.dart';
|
||||
import '../localizations/localizations_utils.dart';
|
||||
import '../runner/flutter_command.dart';
|
||||
import '../runner/flutter_command_runner.dart';
|
||||
|
||||
/// A command to generate localizations source files for a Flutter project.
|
||||
///
|
||||
@ -246,6 +247,7 @@ class GenerateLocalizationsCommand extends FlutterCommand {
|
||||
file: _fileSystem.file('l10n.yaml'),
|
||||
logger: _logger,
|
||||
defaultArbDir: defaultArbDir,
|
||||
defaultSyntheticPackage: globalResults!.flag(FlutterGlobalOptions.kImplicitPubspecResolution),
|
||||
);
|
||||
_logger.printStatus(
|
||||
'Because l10n.yaml exists, the options defined there will be used '
|
||||
|
@ -305,6 +305,7 @@ class PackagesGetCommand extends FlutterCommand {
|
||||
projectDir: rootProject.directory,
|
||||
packageConfigPath: packageConfigPath(),
|
||||
generateDartPluginRegistry: true,
|
||||
useImplicitPubspecResolution: globalResults!.flag(FlutterGlobalOptions.kImplicitPubspecResolution),
|
||||
);
|
||||
|
||||
await generateLocalizationsSyntheticPackage(
|
||||
@ -328,6 +329,7 @@ class PackagesGetCommand extends FlutterCommand {
|
||||
projectDir: rootProject.directory,
|
||||
packageConfigPath: packageConfigPath(),
|
||||
generateDartPluginRegistry: true,
|
||||
useImplicitPubspecResolution: globalResults!.flag(FlutterGlobalOptions.kImplicitPubspecResolution),
|
||||
);
|
||||
final BuildResult result = await globals.buildSystem.build(
|
||||
const GenerateLocalizationsTarget(),
|
||||
|
@ -682,6 +682,7 @@ class RunCommand extends RunCommandBase {
|
||||
required String? applicationBinaryPath,
|
||||
required FlutterProject flutterProject,
|
||||
}) async {
|
||||
final bool useImplicitPubspecResolution = globalResults!.flag(FlutterGlobalOptions.kImplicitPubspecResolution);
|
||||
if (hotMode && !webMode) {
|
||||
return HotRunner(
|
||||
flutterDevices,
|
||||
@ -697,6 +698,7 @@ class RunCommand extends RunCommandBase {
|
||||
analytics: globals.analytics,
|
||||
nativeAssetsYamlFile: stringArg(FlutterOptions.kNativeAssetsYamlFile),
|
||||
nativeAssetsBuilder: _nativeAssetsBuilder,
|
||||
useImplicitPubspecResolution: useImplicitPubspecResolution,
|
||||
);
|
||||
} else if (webMode) {
|
||||
return webRunnerFactory!.createWebRunner(
|
||||
@ -710,6 +712,7 @@ class RunCommand extends RunCommandBase {
|
||||
analytics: globals.analytics,
|
||||
logger: globals.logger,
|
||||
systemClock: globals.systemClock,
|
||||
useImplicitPubspecResolution: useImplicitPubspecResolution,
|
||||
);
|
||||
}
|
||||
return ColdRunner(
|
||||
@ -722,11 +725,13 @@ class RunCommand extends RunCommandBase {
|
||||
? null
|
||||
: globals.fs.file(applicationBinaryPath),
|
||||
stayResident: stayResident,
|
||||
useImplicitPubspecResolution: useImplicitPubspecResolution,
|
||||
);
|
||||
}
|
||||
|
||||
@visibleForTesting
|
||||
Daemon createMachineDaemon() {
|
||||
final bool useImplicitPubspecResolution = globalResults!.flag(FlutterGlobalOptions.kImplicitPubspecResolution);
|
||||
final Daemon daemon = Daemon(
|
||||
DaemonConnection(
|
||||
daemonStreams: DaemonStreams.fromStdio(globals.stdio, logger: globals.logger),
|
||||
@ -736,6 +741,7 @@ class RunCommand extends RunCommandBase {
|
||||
? globals.logger as NotifyingLogger
|
||||
: NotifyingLogger(verbose: globals.logger.isVerbose, parent: globals.logger),
|
||||
logToStdout: true,
|
||||
useImplicitPubspecResolution: useImplicitPubspecResolution,
|
||||
);
|
||||
return daemon;
|
||||
}
|
||||
|
@ -68,6 +68,7 @@ import 'windows/windows_workflow.dart';
|
||||
|
||||
Future<T> runInContext<T>(
|
||||
FutureOr<T> Function() runner, {
|
||||
bool useImplicitPubspecResolution = true,
|
||||
Map<Type, Generator>? overrides,
|
||||
}) async {
|
||||
|
||||
@ -210,6 +211,7 @@ Future<T> runInContext<T>(
|
||||
operatingSystemUtils: globals.os,
|
||||
customDevicesConfig: globals.customDevicesConfig,
|
||||
nativeAssetsBuilder: globals.nativeAssetsBuilder,
|
||||
useImplicitPubspecResolution: useImplicitPubspecResolution,
|
||||
),
|
||||
DevtoolsLauncher: () => DevtoolsServerLauncher(
|
||||
processManager: globals.processManager,
|
||||
|
@ -440,8 +440,10 @@ class CustomDevice extends Device {
|
||||
required CustomDeviceConfig config,
|
||||
required super.logger,
|
||||
required ProcessManager processManager,
|
||||
required bool useImplicitPubspecResolution,
|
||||
}) : _config = config,
|
||||
_logger = logger,
|
||||
_useImplicitPubspecResolution = useImplicitPubspecResolution,
|
||||
_processManager = processManager,
|
||||
_processUtils = ProcessUtils(
|
||||
processManager: processManager,
|
||||
@ -469,6 +471,7 @@ class CustomDevice extends Device {
|
||||
final ProcessUtils _processUtils;
|
||||
final Map<ApplicationPackage, CustomDeviceAppSession> _sessions = <ApplicationPackage, CustomDeviceAppSession>{};
|
||||
final CustomDeviceLogReader _globalLogReader;
|
||||
final bool _useImplicitPubspecResolution;
|
||||
|
||||
@override
|
||||
final DevicePortForwarder portForwarder;
|
||||
@ -762,6 +765,7 @@ class CustomDevice extends Device {
|
||||
mainPath: mainPath,
|
||||
depfilePath: defaultDepfilePath,
|
||||
assetDirPath: assetBundleDir,
|
||||
useImplicitPubspecResolution: _useImplicitPubspecResolution,
|
||||
);
|
||||
|
||||
// if we have a post build step (needed for some embedders), execute it
|
||||
@ -822,15 +826,18 @@ class CustomDevices extends PollingDeviceDiscovery {
|
||||
required FeatureFlags featureFlags,
|
||||
required ProcessManager processManager,
|
||||
required Logger logger,
|
||||
required CustomDevicesConfig config
|
||||
required CustomDevicesConfig config,
|
||||
required bool useImplicitPubspecResolution,
|
||||
}) : _customDeviceWorkflow = CustomDeviceWorkflow(
|
||||
featureFlags: featureFlags,
|
||||
),
|
||||
_useImplicitPubspecResolution = useImplicitPubspecResolution,
|
||||
_logger = logger,
|
||||
_processManager = processManager,
|
||||
_config = config,
|
||||
super('custom devices');
|
||||
|
||||
final bool _useImplicitPubspecResolution;
|
||||
final CustomDeviceWorkflow _customDeviceWorkflow;
|
||||
final ProcessManager _processManager;
|
||||
final Logger _logger;
|
||||
@ -851,7 +858,8 @@ class CustomDevices extends PollingDeviceDiscovery {
|
||||
(CustomDeviceConfig config) => CustomDevice(
|
||||
config: config,
|
||||
logger: _logger,
|
||||
processManager: _processManager
|
||||
processManager: _processManager,
|
||||
useImplicitPubspecResolution: _useImplicitPubspecResolution,
|
||||
)
|
||||
).toList();
|
||||
}
|
||||
|
@ -28,17 +28,20 @@ class FlutterDriverFactory {
|
||||
required ProcessUtils processUtils,
|
||||
required String dartSdkPath,
|
||||
required DevtoolsLauncher devtoolsLauncher,
|
||||
required bool useImplicitPubspecResolution,
|
||||
}) : _applicationPackageFactory = applicationPackageFactory,
|
||||
_logger = logger,
|
||||
_processUtils = processUtils,
|
||||
_dartSdkPath = dartSdkPath,
|
||||
_devtoolsLauncher = devtoolsLauncher;
|
||||
_devtoolsLauncher = devtoolsLauncher,
|
||||
_useImplicitPubspecResolution = useImplicitPubspecResolution;
|
||||
|
||||
final ApplicationPackageFactory _applicationPackageFactory;
|
||||
final Logger _logger;
|
||||
final ProcessUtils _processUtils;
|
||||
final String _dartSdkPath;
|
||||
final DevtoolsLauncher _devtoolsLauncher;
|
||||
final bool _useImplicitPubspecResolution;
|
||||
|
||||
/// Create a driver service for running `flutter drive`.
|
||||
DriverService createDriverService(bool web) {
|
||||
@ -47,6 +50,7 @@ class FlutterDriverFactory {
|
||||
logger: _logger,
|
||||
processUtils: _processUtils,
|
||||
dartSdkPath: _dartSdkPath,
|
||||
useImplicitPubspecResolution: _useImplicitPubspecResolution,
|
||||
);
|
||||
}
|
||||
return FlutterDriverService(
|
||||
|
@ -30,13 +30,16 @@ class WebDriverService extends DriverService {
|
||||
required ProcessUtils processUtils,
|
||||
required String dartSdkPath,
|
||||
required Logger logger,
|
||||
required bool useImplicitPubspecResolution,
|
||||
}) : _processUtils = processUtils,
|
||||
_dartSdkPath = dartSdkPath,
|
||||
_logger = logger;
|
||||
_logger = logger,
|
||||
_useImplicitPubspecResolution = useImplicitPubspecResolution;
|
||||
|
||||
final ProcessUtils _processUtils;
|
||||
final String _dartSdkPath;
|
||||
final Logger _logger;
|
||||
final bool _useImplicitPubspecResolution;
|
||||
|
||||
late ResidentRunner _residentRunner;
|
||||
Uri? _webUri;
|
||||
@ -94,6 +97,7 @@ class WebDriverService extends DriverService {
|
||||
analytics: globals.analytics,
|
||||
logger: _logger,
|
||||
systemClock: globals.systemClock,
|
||||
useImplicitPubspecResolution: _useImplicitPubspecResolution,
|
||||
);
|
||||
final Completer<void> appStartedCompleter = Completer<void>.sync();
|
||||
final Future<int?> runFuture = _residentRunner.run(
|
||||
|
@ -53,6 +53,7 @@ class FlutterDeviceManager extends DeviceManager {
|
||||
required WindowsWorkflow windowsWorkflow,
|
||||
required CustomDevicesConfig customDevicesConfig,
|
||||
required TestCompilerNativeAssetsBuilder? nativeAssetsBuilder,
|
||||
required bool useImplicitPubspecResolution,
|
||||
}) : deviceDiscoverers = <DeviceDiscovery>[
|
||||
AndroidDevices(
|
||||
logger: logger,
|
||||
@ -79,6 +80,7 @@ class FlutterDeviceManager extends DeviceManager {
|
||||
logger: logger,
|
||||
artifacts: artifacts,
|
||||
nativeAssetsBuilder: nativeAssetsBuilder,
|
||||
useImplicitPubspecResolution: useImplicitPubspecResolution,
|
||||
),
|
||||
MacOSDevices(
|
||||
processManager: processManager,
|
||||
@ -103,6 +105,7 @@ class FlutterDeviceManager extends DeviceManager {
|
||||
logger: logger,
|
||||
processManager: processManager,
|
||||
featureFlags: featureFlags,
|
||||
useImplicitPubspecResolution: useImplicitPubspecResolution,
|
||||
),
|
||||
LinuxDevices(
|
||||
platform: platform,
|
||||
@ -130,7 +133,8 @@ class FlutterDeviceManager extends DeviceManager {
|
||||
featureFlags: featureFlags,
|
||||
processManager: processManager,
|
||||
logger: logger,
|
||||
config: customDevicesConfig
|
||||
config: customDevicesConfig,
|
||||
useImplicitPubspecResolution: useImplicitPubspecResolution,
|
||||
),
|
||||
];
|
||||
|
||||
|
@ -57,6 +57,7 @@ class DwdsWebRunnerFactory extends WebRunnerFactory {
|
||||
required SystemClock systemClock,
|
||||
required Usage usage,
|
||||
required Analytics analytics,
|
||||
required bool useImplicitPubspecResolution,
|
||||
bool machine = false,
|
||||
}) {
|
||||
return ResidentWebRunner(
|
||||
@ -72,6 +73,7 @@ class DwdsWebRunnerFactory extends WebRunnerFactory {
|
||||
systemClock: systemClock,
|
||||
fileSystem: fileSystem,
|
||||
logger: logger,
|
||||
useImplicitPubspecResolution: useImplicitPubspecResolution,
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -87,6 +89,7 @@ class ResidentWebRunner extends ResidentRunner {
|
||||
bool stayResident = true,
|
||||
bool machine = false,
|
||||
required this.flutterProject,
|
||||
required bool useImplicitPubspecResolution,
|
||||
required DebuggingOptions debuggingOptions,
|
||||
required FileSystem fileSystem,
|
||||
required Logger logger,
|
||||
@ -102,6 +105,7 @@ class ResidentWebRunner extends ResidentRunner {
|
||||
_usage = usage,
|
||||
_analytics = analytics,
|
||||
_urlTunneller = urlTunneller,
|
||||
_useImplicitPubspecResolution = useImplicitPubspecResolution,
|
||||
super(
|
||||
<FlutterDevice>[device],
|
||||
target: target ?? fileSystem.path.join('lib', 'main.dart'),
|
||||
@ -109,6 +113,7 @@ class ResidentWebRunner extends ResidentRunner {
|
||||
stayResident: stayResident,
|
||||
machine: machine,
|
||||
devtoolsHandler: devtoolsHandler,
|
||||
useImplicitPubspecResolution: useImplicitPubspecResolution,
|
||||
);
|
||||
|
||||
final FileSystem _fileSystem;
|
||||
@ -117,6 +122,7 @@ class ResidentWebRunner extends ResidentRunner {
|
||||
final Usage _usage;
|
||||
final Analytics _analytics;
|
||||
final UrlTunneller? _urlTunneller;
|
||||
final bool _useImplicitPubspecResolution;
|
||||
|
||||
@override
|
||||
Logger get logger => _logger;
|
||||
@ -345,6 +351,7 @@ Please provide a valid TCP port (an integer between 0 and 65535, inclusive).
|
||||
flutterVersion: globals.flutterVersion,
|
||||
usage: globals.flutterUsage,
|
||||
analytics: globals.analytics,
|
||||
useImplicitPubspecResolution: _useImplicitPubspecResolution,
|
||||
);
|
||||
await webBuilder.buildWeb(
|
||||
flutterProject,
|
||||
@ -441,6 +448,7 @@ Please provide a valid TCP port (an integer between 0 and 65535, inclusive).
|
||||
flutterVersion: globals.flutterVersion,
|
||||
usage: globals.flutterUsage,
|
||||
analytics: globals.analytics,
|
||||
useImplicitPubspecResolution: _useImplicitPubspecResolution,
|
||||
);
|
||||
await webBuilder.buildWeb(
|
||||
flutterProject,
|
||||
|
@ -9,6 +9,7 @@ import '../base/common.dart';
|
||||
import '../base/file_system.dart';
|
||||
import '../base/logger.dart';
|
||||
import '../runner/flutter_command.dart';
|
||||
import '../runner/flutter_command_runner.dart';
|
||||
import 'gen_l10n_types.dart';
|
||||
import 'language_subtag_registry.dart';
|
||||
|
||||
@ -471,6 +472,7 @@ LocalizationOptions parseLocalizationsOptionsFromYAML({
|
||||
required File file,
|
||||
required Logger logger,
|
||||
required String defaultArbDir,
|
||||
required bool defaultSyntheticPackage,
|
||||
}) {
|
||||
final String contents = file.readAsStringSync();
|
||||
if (contents.trim().isEmpty) {
|
||||
@ -497,7 +499,7 @@ LocalizationOptions parseLocalizationsOptionsFromYAML({
|
||||
headerFile: _tryReadUri(yamlNode, 'header-file', logger)?.path,
|
||||
useDeferredLoading: _tryReadBool(yamlNode, 'use-deferred-loading', logger),
|
||||
preferredSupportedLocales: _tryReadStringList(yamlNode, 'preferred-supported-locales', logger),
|
||||
syntheticPackage: _tryReadBool(yamlNode, 'synthetic-package', logger),
|
||||
syntheticPackage: _tryReadBool(yamlNode, 'synthetic-package', logger) ?? defaultSyntheticPackage,
|
||||
requiredResourceAttributes: _tryReadBool(yamlNode, 'required-resource-attributes', logger),
|
||||
nullableGetter: _tryReadBool(yamlNode, 'nullable-getter', logger),
|
||||
format: _tryReadBool(yamlNode, 'format', logger),
|
||||
@ -513,6 +515,15 @@ LocalizationOptions parseLocalizationsOptionsFromCommand({
|
||||
required FlutterCommand command,
|
||||
required String defaultArbDir,
|
||||
}) {
|
||||
// TODO(matanlurey): Remove as part of https://github.com/flutter/flutter/issues/102983.
|
||||
final bool syntheticPackage;
|
||||
if (command.argResults!.wasParsed('synthetic-package')) {
|
||||
// If provided explicitly, use the explicit value.
|
||||
syntheticPackage = command.boolArg('synthetic-package');
|
||||
} else {
|
||||
// Otherwise, inherit from whatever the default of --implicit-pubspec-resolution is.
|
||||
syntheticPackage = command.globalResults!.flag(FlutterGlobalOptions.kImplicitPubspecResolution);
|
||||
}
|
||||
return LocalizationOptions(
|
||||
arbDir: command.stringArg('arb-dir') ?? defaultArbDir,
|
||||
outputDir: command.stringArg('output-dir'),
|
||||
@ -524,7 +535,7 @@ LocalizationOptions parseLocalizationsOptionsFromCommand({
|
||||
headerFile: command.stringArg('header-file'),
|
||||
useDeferredLoading: command.boolArg('use-deferred-loading'),
|
||||
genInputsAndOutputsList: command.stringArg('gen-inputs-and-outputs-list'),
|
||||
syntheticPackage: command.boolArg('synthetic-package'),
|
||||
syntheticPackage: syntheticPackage,
|
||||
projectDir: command.stringArg('project-dir'),
|
||||
requiredResourceAttributes: command.boolArg('required-resource-attributes'),
|
||||
nullableGetter: command.boolArg('nullable-getter'),
|
||||
|
@ -37,12 +37,14 @@ class PreviewDeviceDiscovery extends PollingDeviceDiscovery {
|
||||
required Logger logger,
|
||||
required ProcessManager processManager,
|
||||
required FeatureFlags featureFlags,
|
||||
required bool useImplicitPubspecResolution,
|
||||
}) : _artifacts = artifacts,
|
||||
_logger = logger,
|
||||
_processManager = processManager,
|
||||
_fileSystem = fileSystem,
|
||||
_platform = platform,
|
||||
_features = featureFlags,
|
||||
_useImplicitPubspecResolution = useImplicitPubspecResolution,
|
||||
super('Flutter preview device');
|
||||
|
||||
final Platform _platform;
|
||||
@ -51,6 +53,7 @@ class PreviewDeviceDiscovery extends PollingDeviceDiscovery {
|
||||
final ProcessManager _processManager;
|
||||
final FileSystem _fileSystem;
|
||||
final FeatureFlags _features;
|
||||
final bool _useImplicitPubspecResolution;
|
||||
|
||||
@override
|
||||
bool get canListAnything => _platform.isWindows;
|
||||
@ -75,6 +78,7 @@ class PreviewDeviceDiscovery extends PollingDeviceDiscovery {
|
||||
logger: _logger,
|
||||
processManager: _processManager,
|
||||
previewBinary: previewBinary,
|
||||
useImplicitPubspecResolution: _useImplicitPubspecResolution,
|
||||
);
|
||||
return <Device>[
|
||||
if (_features.isPreviewDeviceEnabled)
|
||||
@ -99,6 +103,7 @@ class PreviewDevice extends Device {
|
||||
required FileSystem fileSystem,
|
||||
required Artifacts artifacts,
|
||||
required File previewBinary,
|
||||
required bool useImplicitPubspecResolution,
|
||||
@visibleForTesting BundleBuilderFactory builderFactory = _defaultBundleBuilder,
|
||||
}) : _previewBinary = previewBinary,
|
||||
_processManager = processManager,
|
||||
@ -106,6 +111,7 @@ class PreviewDevice extends Device {
|
||||
_fileSystem = fileSystem,
|
||||
_bundleBuilderFactory = builderFactory,
|
||||
_artifacts = artifacts,
|
||||
_useImplicitPubspecResolution = useImplicitPubspecResolution,
|
||||
super('preview', ephemeral: false, category: Category.desktop, platformType: PlatformType.windowsPreview);
|
||||
|
||||
final ProcessManager _processManager;
|
||||
@ -114,6 +120,7 @@ class PreviewDevice extends Device {
|
||||
final BundleBuilderFactory _bundleBuilderFactory;
|
||||
final Artifacts _artifacts;
|
||||
final File _previewBinary;
|
||||
final bool _useImplicitPubspecResolution;
|
||||
|
||||
/// The set of plugins that are allowed to be used by Preview users.
|
||||
///
|
||||
@ -184,6 +191,7 @@ class PreviewDevice extends Device {
|
||||
mainPath: mainPath,
|
||||
platform: TargetPlatform.windows_x64,
|
||||
assetDirPath: getAssetBuildDirectory(),
|
||||
useImplicitPubspecResolution: _useImplicitPubspecResolution,
|
||||
);
|
||||
copyDirectory(_fileSystem.directory(
|
||||
getAssetBuildDirectory()),
|
||||
|
@ -1053,6 +1053,7 @@ abstract class ResidentRunner extends ResidentHandlers {
|
||||
this.flutterDevices, {
|
||||
required this.target,
|
||||
required this.debuggingOptions,
|
||||
required bool useImplicitPubspecResolution,
|
||||
String? projectRootPath,
|
||||
this.stayResident = true,
|
||||
this.hotMode = true,
|
||||
@ -1063,6 +1064,7 @@ abstract class ResidentRunner extends ResidentHandlers {
|
||||
packagesFilePath = debuggingOptions.buildInfo.packageConfigPath,
|
||||
projectRootPath = projectRootPath ?? globals.fs.currentDirectory.path,
|
||||
_dillOutputPath = dillOutputPath,
|
||||
_useImplicitPubspecResolution = useImplicitPubspecResolution,
|
||||
artifactDirectory = dillOutputPath == null
|
||||
? globals.fs.systemTempDirectory.createTempSync('flutter_tool.')
|
||||
: globals.fs.file(dillOutputPath).parent,
|
||||
@ -1095,6 +1097,7 @@ abstract class ResidentRunner extends ResidentHandlers {
|
||||
@override
|
||||
final bool stayResident;
|
||||
final String? _dillOutputPath;
|
||||
final bool _useImplicitPubspecResolution;
|
||||
/// The parent location of the incremental artifacts.
|
||||
final Directory artifactDirectory;
|
||||
final String packagesFilePath;
|
||||
@ -1221,6 +1224,7 @@ abstract class ResidentRunner extends ResidentHandlers {
|
||||
// Needed for Dart plugin registry generation.
|
||||
kTargetFile: mainPath,
|
||||
},
|
||||
useImplicitPubspecResolution: _useImplicitPubspecResolution,
|
||||
);
|
||||
|
||||
final CompositeTarget compositeTarget = CompositeTarget(<Target>[
|
||||
|
@ -18,6 +18,7 @@ class ColdRunner extends ResidentRunner {
|
||||
super.flutterDevices, {
|
||||
required super.target,
|
||||
required super.debuggingOptions,
|
||||
required super.useImplicitPubspecResolution,
|
||||
this.traceStartup = false,
|
||||
this.awaitFirstFrameWhenTracing = true,
|
||||
this.applicationBinary,
|
||||
|
@ -79,6 +79,7 @@ class HotRunner extends ResidentRunner {
|
||||
super.flutterDevices, {
|
||||
required super.target,
|
||||
required super.debuggingOptions,
|
||||
required super.useImplicitPubspecResolution,
|
||||
this.benchmarkMode = false,
|
||||
this.applicationBinary,
|
||||
this.hostIsIde = false,
|
||||
|
@ -1770,6 +1770,7 @@ Run 'flutter -h' (or 'flutter <command> -h') for available flutter commands and
|
||||
projectDir: project.directory,
|
||||
packageConfigPath: packageConfigPath(),
|
||||
generateDartPluginRegistry: true,
|
||||
useImplicitPubspecResolution: globalResults!.flag(FlutterGlobalOptions.kImplicitPubspecResolution),
|
||||
);
|
||||
|
||||
await pub.get(
|
||||
|
@ -51,6 +51,7 @@ class FlutterTesterDevice extends Device {
|
||||
required super.logger,
|
||||
required FileSystem fileSystem,
|
||||
required Artifacts artifacts,
|
||||
required bool useImplicitPubspecResolution,
|
||||
TestCompilerNativeAssetsBuilder? nativeAssetsBuilder,
|
||||
}) : _processManager = processManager,
|
||||
_flutterVersion = flutterVersion,
|
||||
@ -58,6 +59,7 @@ class FlutterTesterDevice extends Device {
|
||||
_fileSystem = fileSystem,
|
||||
_artifacts = artifacts,
|
||||
_nativeAssetsBuilder = nativeAssetsBuilder,
|
||||
_useImplicitPubspecResolution = useImplicitPubspecResolution,
|
||||
super(
|
||||
platformType: null,
|
||||
category: null,
|
||||
@ -70,6 +72,7 @@ class FlutterTesterDevice extends Device {
|
||||
final FileSystem _fileSystem;
|
||||
final Artifacts _artifacts;
|
||||
final TestCompilerNativeAssetsBuilder? _nativeAssetsBuilder;
|
||||
final bool _useImplicitPubspecResolution;
|
||||
|
||||
Process? _process;
|
||||
final DevicePortForwarder _portForwarder = const NoOpDevicePortForwarder();
|
||||
@ -164,6 +167,7 @@ class FlutterTesterDevice extends Device {
|
||||
applicationKernelFilePath: applicationKernelFilePath,
|
||||
platform: TargetPlatform.tester,
|
||||
assetDirPath: assetDirectory.path,
|
||||
useImplicitPubspecResolution: _useImplicitPubspecResolution,
|
||||
);
|
||||
|
||||
final List<String> command = <String>[
|
||||
@ -265,6 +269,7 @@ class FlutterTesterDevices extends PollingDeviceDiscovery {
|
||||
required ProcessManager processManager,
|
||||
required Logger logger,
|
||||
required FlutterVersion flutterVersion,
|
||||
required bool useImplicitPubspecResolution,
|
||||
TestCompilerNativeAssetsBuilder? nativeAssetsBuilder,
|
||||
}) : _testerDevice = FlutterTesterDevice(
|
||||
kTesterDeviceId,
|
||||
@ -274,6 +279,7 @@ class FlutterTesterDevices extends PollingDeviceDiscovery {
|
||||
logger: logger,
|
||||
flutterVersion: flutterVersion,
|
||||
nativeAssetsBuilder: nativeAssetsBuilder,
|
||||
useImplicitPubspecResolution: useImplicitPubspecResolution,
|
||||
),
|
||||
super('Flutter tester');
|
||||
|
||||
|
@ -46,13 +46,15 @@ class WebBuilder {
|
||||
required Analytics analytics,
|
||||
required FlutterVersion flutterVersion,
|
||||
required FileSystem fileSystem,
|
||||
required bool useImplicitPubspecResolution,
|
||||
}) : _logger = logger,
|
||||
_processManager = processManager,
|
||||
_buildSystem = buildSystem,
|
||||
_flutterUsage = usage,
|
||||
_analytics = analytics,
|
||||
_flutterVersion = flutterVersion,
|
||||
_fileSystem = fileSystem;
|
||||
_fileSystem = fileSystem,
|
||||
_useImplicitPubspecResolution = useImplicitPubspecResolution;
|
||||
|
||||
final Logger _logger;
|
||||
final ProcessManager _processManager;
|
||||
@ -61,6 +63,7 @@ class WebBuilder {
|
||||
final Analytics _analytics;
|
||||
final FlutterVersion _flutterVersion;
|
||||
final FileSystem _fileSystem;
|
||||
final bool _useImplicitPubspecResolution;
|
||||
|
||||
Future<void> buildWeb(
|
||||
FlutterProject flutterProject,
|
||||
@ -116,6 +119,7 @@ class WebBuilder {
|
||||
// Web uses a different Dart plugin registry.
|
||||
// https://github.com/flutter/flutter/issues/80406
|
||||
generateDartPluginRegistry: false,
|
||||
useImplicitPubspecResolution: _useImplicitPubspecResolution,
|
||||
));
|
||||
if (!result.success) {
|
||||
for (final ExceptionMeasurement measurement in result.exceptions.values) {
|
||||
|
@ -33,6 +33,7 @@ abstract class WebRunnerFactory {
|
||||
required SystemClock systemClock,
|
||||
required Usage usage,
|
||||
required Analytics analytics,
|
||||
required bool useImplicitPubspecResolution,
|
||||
bool machine = false,
|
||||
});
|
||||
}
|
||||
|
@ -1260,6 +1260,7 @@ class FakeHotRunnerFactory extends Fake implements HotRunnerFactory {
|
||||
Analytics? analytics,
|
||||
String? nativeAssetsYamlFile,
|
||||
HotRunnerNativeAssetsBuilder? nativeAssetsBuilder,
|
||||
required bool useImplicitPubspecResolution,
|
||||
}) {
|
||||
if (_artifactTester != null) {
|
||||
for (final FlutterDevice device in devices) {
|
||||
|
@ -99,6 +99,7 @@ void main() {
|
||||
daemon = Daemon(
|
||||
daemonConnection,
|
||||
notifyingLogger: notifyingLogger,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
daemonStreams.inputs.add(DaemonMessage(<String, Object?>{'id': 0, 'method': 'daemon.version'}));
|
||||
final DaemonMessage response = await daemonStreams.outputs.stream.firstWhere(_notEvent);
|
||||
@ -111,6 +112,7 @@ void main() {
|
||||
daemon = Daemon(
|
||||
daemonConnection,
|
||||
notifyingLogger: notifyingLogger,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
// Use the flutter_gallery project which has a known set of supported platforms.
|
||||
final String projectPath = globals.fs.path.join(getFlutterRoot(), 'dev', 'integration_tests', 'flutter_gallery');
|
||||
@ -215,6 +217,7 @@ void main() {
|
||||
daemon = Daemon(
|
||||
daemonConnection,
|
||||
notifyingLogger: notifyingLogger,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
globals.printError('daemon.logMessage test');
|
||||
final DaemonMessage response = await daemonStreams.outputs.stream.firstWhere((DaemonMessage message) {
|
||||
@ -233,6 +236,7 @@ void main() {
|
||||
daemon = Daemon(
|
||||
daemonConnection,
|
||||
notifyingLogger: notifyingLogger,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
globals.printWarning('daemon.logMessage test');
|
||||
final DaemonMessage response = await daemonStreams.outputs.stream.firstWhere((DaemonMessage message) {
|
||||
@ -253,6 +257,7 @@ void main() {
|
||||
daemonConnection,
|
||||
notifyingLogger: notifyingLogger,
|
||||
logToStdout: true,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
globals.printStatus('daemon.logMessage test');
|
||||
return Future<void>.value();
|
||||
@ -269,6 +274,7 @@ void main() {
|
||||
daemonConnection,
|
||||
notifyingLogger: notifyingLogger,
|
||||
logToStdout: true,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
globals.printBox('This is the box message', title: 'Sample title');
|
||||
return Future<void>.value();
|
||||
@ -283,6 +289,7 @@ void main() {
|
||||
daemon = Daemon(
|
||||
daemonConnection,
|
||||
notifyingLogger: notifyingLogger,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
notifyingLogger.notifyVerbose = false;
|
||||
globals.printTrace('daemon.logMessage test 1');
|
||||
@ -304,6 +311,7 @@ void main() {
|
||||
daemon = Daemon(
|
||||
daemonConnection,
|
||||
notifyingLogger: notifyingLogger,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
expect(notifyingLogger.notifyVerbose, false);
|
||||
|
||||
@ -322,6 +330,7 @@ void main() {
|
||||
daemon = Daemon(
|
||||
daemonConnection,
|
||||
notifyingLogger: notifyingLogger,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
notifyingLogger.notifyVerbose = false;
|
||||
|
||||
@ -340,6 +349,7 @@ void main() {
|
||||
daemon = Daemon(
|
||||
daemonConnection,
|
||||
notifyingLogger: notifyingLogger,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
daemonStreams.inputs.add(DaemonMessage(<String, Object?>{'id': 0, 'method': 'daemon.shutdown'}));
|
||||
return daemon.onExit.then<void>((int code) async {
|
||||
@ -352,6 +362,7 @@ void main() {
|
||||
daemon = Daemon(
|
||||
daemonConnection,
|
||||
notifyingLogger: notifyingLogger,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
daemonStreams.inputs.add(DaemonMessage(<String, Object?>{'id': 0, 'method': 'app.restart'}));
|
||||
@ -364,6 +375,7 @@ void main() {
|
||||
daemon = Daemon(
|
||||
daemonConnection,
|
||||
notifyingLogger: notifyingLogger,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
daemonStreams.inputs.add(DaemonMessage(<String, Object?>{
|
||||
@ -382,6 +394,7 @@ void main() {
|
||||
daemon = Daemon(
|
||||
daemonConnection,
|
||||
notifyingLogger: notifyingLogger,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
daemonStreams.inputs.add(DaemonMessage(<String, Object?>{'id': 0, 'method': 'app.stop'}));
|
||||
@ -394,6 +407,7 @@ void main() {
|
||||
daemon = Daemon(
|
||||
daemonConnection,
|
||||
notifyingLogger: notifyingLogger,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
daemonStreams.inputs.add(DaemonMessage(<String, Object?>{'id': 0, 'method': 'device.getDevices'}));
|
||||
final DaemonMessage response = await daemonStreams.outputs.stream.firstWhere(_notEvent);
|
||||
@ -405,6 +419,7 @@ void main() {
|
||||
daemon = Daemon(
|
||||
daemonConnection,
|
||||
notifyingLogger: notifyingLogger,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
final FakePollingDeviceDiscovery discoverer = FakePollingDeviceDiscovery();
|
||||
daemon.deviceDomain.addDeviceDiscoverer(discoverer);
|
||||
@ -421,6 +436,7 @@ void main() {
|
||||
daemon = Daemon(
|
||||
daemonConnection,
|
||||
notifyingLogger: notifyingLogger,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
final FakePollingDeviceDiscovery discoverer = FakePollingDeviceDiscovery();
|
||||
@ -434,6 +450,7 @@ void main() {
|
||||
previewBinary: fs.file(r'preview_device.exe'),
|
||||
artifacts: Artifacts.test(fileSystem: fs),
|
||||
builderFactory: () => throw UnimplementedError('TODO implement builder factory'),
|
||||
useImplicitPubspecResolution: true,
|
||||
));
|
||||
|
||||
final List<Map<String, Object?>> names = <Map<String, Object?>>[];
|
||||
@ -504,6 +521,7 @@ void main() {
|
||||
daemon = Daemon(
|
||||
daemonConnection,
|
||||
notifyingLogger: notifyingLogger,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
daemonStreams.inputs.add(DaemonMessage(<String, Object?>{'id': 0, 'method': 'device.discoverDevices'}));
|
||||
final DaemonMessage response = await daemonStreams.outputs.stream.firstWhere(_notEvent);
|
||||
@ -515,6 +533,7 @@ void main() {
|
||||
daemon = Daemon(
|
||||
daemonConnection,
|
||||
notifyingLogger: notifyingLogger,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
final FakePollingDeviceDiscovery discoverer = FakePollingDeviceDiscovery();
|
||||
daemon.deviceDomain.addDeviceDiscoverer(discoverer);
|
||||
@ -532,6 +551,7 @@ void main() {
|
||||
daemon = Daemon(
|
||||
daemonConnection,
|
||||
notifyingLogger: notifyingLogger,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
final FakePollingDeviceDiscovery discoverer = FakePollingDeviceDiscovery();
|
||||
daemon.deviceDomain.addDeviceDiscoverer(discoverer);
|
||||
@ -556,6 +576,7 @@ void main() {
|
||||
daemon = Daemon(
|
||||
daemonConnection,
|
||||
notifyingLogger: notifyingLogger,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
final FakePollingDeviceDiscovery discoverer = FakePollingDeviceDiscovery();
|
||||
daemon.deviceDomain.addDeviceDiscoverer(discoverer);
|
||||
@ -607,6 +628,7 @@ void main() {
|
||||
daemon = Daemon(
|
||||
daemonConnection,
|
||||
notifyingLogger: notifyingLogger,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
final FakePollingDeviceDiscovery discoverer = FakePollingDeviceDiscovery();
|
||||
daemon.deviceDomain.addDeviceDiscoverer(discoverer);
|
||||
@ -673,6 +695,7 @@ void main() {
|
||||
daemon = Daemon(
|
||||
daemonConnection,
|
||||
notifyingLogger: notifyingLogger,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
final FakePollingDeviceDiscovery discoverer = FakePollingDeviceDiscovery();
|
||||
daemon.deviceDomain.addDeviceDiscoverer(discoverer);
|
||||
@ -732,6 +755,7 @@ void main() {
|
||||
daemon = Daemon(
|
||||
daemonConnection,
|
||||
notifyingLogger: notifyingLogger,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
final FakePollingDeviceDiscovery discoverer1 = FakePollingDeviceDiscovery();
|
||||
discoverer1.diagnostics = <String>['fake diagnostic 1', 'fake diagnostic 2'];
|
||||
@ -757,6 +781,7 @@ void main() {
|
||||
daemon = Daemon(
|
||||
daemonConnection,
|
||||
notifyingLogger: notifyingLogger,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
daemonStreams.inputs.add(DaemonMessage(<String, Object?>{'id': 0, 'method': 'emulator.launch'}));
|
||||
@ -769,6 +794,7 @@ void main() {
|
||||
daemon = Daemon(
|
||||
daemonConnection,
|
||||
notifyingLogger: notifyingLogger,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
final Map<String, Object?> params = <String, Object?>{'emulatorId': 'device', 'coldBoot': 1};
|
||||
daemonStreams.inputs.add(DaemonMessage(<String, Object?>{'id': 0, 'method': 'emulator.launch', 'params': params}));
|
||||
@ -781,6 +807,7 @@ void main() {
|
||||
daemon = Daemon(
|
||||
daemonConnection,
|
||||
notifyingLogger: notifyingLogger,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
daemonStreams.inputs.add(DaemonMessage(<String, Object?>{'id': 0, 'method': 'emulator.getEmulators'}));
|
||||
final DaemonMessage response = await daemonStreams.outputs.stream.firstWhere(_notEvent);
|
||||
@ -795,6 +822,7 @@ void main() {
|
||||
daemon = Daemon(
|
||||
daemonConnection,
|
||||
notifyingLogger: notifyingLogger,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
// Respond to any requests from the daemon to expose a URL.
|
||||
@ -814,6 +842,7 @@ void main() {
|
||||
daemon = Daemon(
|
||||
daemonConnection,
|
||||
notifyingLogger: notifyingLogger,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
daemonStreams.inputs.add(DaemonMessage(<String, Object?>{'id': 0, 'method': 'devtools.serve'}));
|
||||
@ -830,6 +859,7 @@ void main() {
|
||||
daemon = Daemon(
|
||||
daemonConnection,
|
||||
notifyingLogger: notifyingLogger,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
daemonStreams.inputs.add(DaemonMessage(<String, Object?>{'id': 0, 'method': 'devtools.serve'}));
|
||||
@ -860,6 +890,7 @@ void main() {
|
||||
daemon = Daemon(
|
||||
daemonConnection,
|
||||
notifyingLogger: notifyingLogger,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
daemonStreams.inputs.add(DaemonMessage(<String, Object?>{'id': 0, 'method': 'proxy.connect', 'params': <String, Object?>{'port': 123}}));
|
||||
|
||||
@ -920,6 +951,7 @@ void main() {
|
||||
daemon = Daemon(
|
||||
daemonConnection,
|
||||
notifyingLogger: notifyingLogger,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
daemonStreams.inputs.add(DaemonMessage(<String, Object?>{'id': 0, 'method': 'proxy.connect', 'params': <String, Object?>{'port': 123}}));
|
||||
|
||||
@ -940,6 +972,7 @@ void main() {
|
||||
daemon = Daemon(
|
||||
daemonConnection,
|
||||
notifyingLogger: notifyingLogger,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
daemonStreams.inputs.add(DaemonMessage(<String, Object?>{'id': 0, 'method': 'proxy.connect', 'params': <String, Object?>{'port': 123}}));
|
||||
|
||||
|
@ -64,7 +64,7 @@ void main() {
|
||||
ProcessManager: () => FakeProcessManager.any(),
|
||||
});
|
||||
|
||||
testUsingContext('not using synthetic packages', () async {
|
||||
testUsingContext('not using synthetic packages (explicitly)', () async {
|
||||
final Directory l10nDirectory = fileSystem.directory(
|
||||
fileSystem.path.join('lib', 'l10n'),
|
||||
);
|
||||
@ -104,6 +104,46 @@ flutter:
|
||||
ProcessManager: () => FakeProcessManager.any(),
|
||||
});
|
||||
|
||||
testUsingContext('not using synthetic packages (due to --no-implicit-pubspec-resolution)', () async {
|
||||
final Directory l10nDirectory = fileSystem.directory(
|
||||
fileSystem.path.join('lib', 'l10n'),
|
||||
);
|
||||
final File arbFile = l10nDirectory.childFile(
|
||||
'app_en.arb',
|
||||
)..createSync(recursive: true);
|
||||
|
||||
arbFile.writeAsStringSync('''
|
||||
{
|
||||
"helloWorld": "Hello, World!",
|
||||
"@helloWorld": {
|
||||
"description": "Sample description"
|
||||
}
|
||||
}''');
|
||||
fileSystem.file('pubspec.yaml').writeAsStringSync('''
|
||||
flutter:
|
||||
generate: true''');
|
||||
|
||||
final GenerateLocalizationsCommand command = GenerateLocalizationsCommand(
|
||||
fileSystem: fileSystem,
|
||||
logger: logger,
|
||||
artifacts: artifacts,
|
||||
processManager: processManager,
|
||||
);
|
||||
await createTestCommandRunner(command).run(<String>[
|
||||
'--no-implicit-pubspec-resolution',
|
||||
'gen-l10n',
|
||||
]);
|
||||
|
||||
expect(l10nDirectory.existsSync(), true);
|
||||
expect(l10nDirectory.childFile('app_localizations_en.dart').existsSync(),
|
||||
true);
|
||||
expect(
|
||||
l10nDirectory.childFile('app_localizations.dart').existsSync(), true);
|
||||
}, overrides: <Type, Generator>{
|
||||
FileSystem: () => fileSystem,
|
||||
ProcessManager: () => FakeProcessManager.any(),
|
||||
});
|
||||
|
||||
testUsingContext('throws error when arguments are invalid', () async {
|
||||
final File arbFile = fileSystem.file(fileSystem.path.join('lib', 'l10n', 'app_en.arb'))
|
||||
..createSync(recursive: true);
|
||||
|
@ -71,6 +71,7 @@ void main() {
|
||||
daemon = Daemon(
|
||||
serverDaemonConnection,
|
||||
notifyingLogger: notifyingLogger,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
fakeDevice = FakeAndroidDevice();
|
||||
final FakePollingDeviceDiscovery discoverer = FakePollingDeviceDiscovery();
|
||||
@ -92,6 +93,7 @@ void main() {
|
||||
daemon = Daemon(
|
||||
serverDaemonConnection,
|
||||
notifyingLogger: notifyingLogger,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
fakeDevice = FakeAndroidDevice();
|
||||
final FakePollingDeviceDiscovery discoverer = FakePollingDeviceDiscovery();
|
||||
@ -114,6 +116,7 @@ void main() {
|
||||
daemon = Daemon(
|
||||
serverDaemonConnection,
|
||||
notifyingLogger: notifyingLogger,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
fakeDevice = FakeAndroidDevice();
|
||||
final FakePollingDeviceDiscovery discoverer = FakePollingDeviceDiscovery();
|
||||
@ -144,6 +147,7 @@ void main() {
|
||||
daemon = Daemon(
|
||||
serverDaemonConnection,
|
||||
notifyingLogger: notifyingLogger,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
fakeDevice = FakeAndroidDevice();
|
||||
final FakePollingDeviceDiscovery discoverer = FakePollingDeviceDiscovery();
|
||||
@ -197,6 +201,7 @@ void main() {
|
||||
daemon = Daemon(
|
||||
serverDaemonConnection,
|
||||
notifyingLogger: notifyingLogger,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
fakeDevice = FakeAndroidDevice();
|
||||
final FakePollingDeviceDiscovery discoverer = FakePollingDeviceDiscovery();
|
||||
|
@ -1584,14 +1584,14 @@ class DaemonCapturingRunCommand extends RunCommand {
|
||||
@override
|
||||
Daemon createMachineDaemon() {
|
||||
daemon = super.createMachineDaemon();
|
||||
appDomain = daemon.appDomain = CapturingAppDomain(daemon);
|
||||
appDomain = daemon.appDomain = CapturingAppDomain(daemon, useImplicitPubspecResolution: true);
|
||||
daemon.registerDomain(appDomain);
|
||||
return daemon;
|
||||
}
|
||||
}
|
||||
|
||||
class CapturingAppDomain extends AppDomain {
|
||||
CapturingAppDomain(super.daemon);
|
||||
CapturingAppDomain(super.daemon, {required super.useImplicitPubspecResolution});
|
||||
|
||||
String? userIdentifier;
|
||||
bool? enableDevTools;
|
||||
|
@ -544,5 +544,6 @@ class FakeBundleBuilder extends Fake implements BundleBuilder {
|
||||
String? assetDirPath,
|
||||
bool buildNativeAssets = true,
|
||||
@visibleForTesting BuildSystem? buildSystem,
|
||||
required bool useImplicitPubspecResolution,
|
||||
}) async {}
|
||||
}
|
||||
|
@ -53,6 +53,7 @@ nullable-getter: false
|
||||
file: configFile,
|
||||
logger: BufferLogger.test(),
|
||||
defaultArbDir: fileSystem.path.join('lib', 'l10n'),
|
||||
defaultSyntheticPackage: true,
|
||||
);
|
||||
|
||||
expect(options.arbDir, Uri.parse('arb').path);
|
||||
@ -69,6 +70,65 @@ nullable-getter: false
|
||||
expect(options.nullableGetter, false);
|
||||
});
|
||||
|
||||
testWithoutContext(
|
||||
'parseLocalizationsOptions uses defaultSyntheticPackage = true', () async {
|
||||
final FileSystem fileSystem = MemoryFileSystem.test();
|
||||
final File configFile = fileSystem.file('l10n.yaml')..writeAsStringSync('''
|
||||
arb-dir: arb
|
||||
template-arb-file: example.arb
|
||||
output-localization-file: bar
|
||||
untranslated-messages-file: untranslated
|
||||
output-class: Foo
|
||||
header-file: header
|
||||
header: HEADER
|
||||
use-deferred-loading: true
|
||||
preferred-supported-locales: en_US
|
||||
# Intentionally omitted
|
||||
# synthetic-package: ...
|
||||
required-resource-attributes: false
|
||||
nullable-getter: false
|
||||
''');
|
||||
|
||||
final LocalizationOptions options = parseLocalizationsOptionsFromYAML(
|
||||
file: configFile,
|
||||
logger: BufferLogger.test(),
|
||||
defaultArbDir: fileSystem.path.join('lib', 'l10n'),
|
||||
defaultSyntheticPackage: true,
|
||||
);
|
||||
|
||||
expect(options.syntheticPackage, true);
|
||||
});
|
||||
|
||||
testWithoutContext(
|
||||
'parseLocalizationsOptions uses defaultSyntheticPackage = false',
|
||||
() async {
|
||||
final FileSystem fileSystem = MemoryFileSystem.test();
|
||||
final File configFile = fileSystem.file('l10n.yaml')..writeAsStringSync('''
|
||||
arb-dir: arb
|
||||
template-arb-file: example.arb
|
||||
output-localization-file: bar
|
||||
untranslated-messages-file: untranslated
|
||||
output-class: Foo
|
||||
header-file: header
|
||||
header: HEADER
|
||||
use-deferred-loading: true
|
||||
preferred-supported-locales: en_US
|
||||
# Intentionally omitted
|
||||
# synthetic-package: ...
|
||||
required-resource-attributes: false
|
||||
nullable-getter: false
|
||||
''');
|
||||
|
||||
final LocalizationOptions options = parseLocalizationsOptionsFromYAML(
|
||||
file: configFile,
|
||||
logger: BufferLogger.test(),
|
||||
defaultArbDir: fileSystem.path.join('lib', 'l10n'),
|
||||
defaultSyntheticPackage: false,
|
||||
);
|
||||
|
||||
expect(options.syntheticPackage, false);
|
||||
});
|
||||
|
||||
testWithoutContext('parseLocalizationsOptions handles preferredSupportedLocales as list', () async {
|
||||
final FileSystem fileSystem = MemoryFileSystem.test();
|
||||
final File configFile = fileSystem.file('l10n.yaml')..writeAsStringSync('''
|
||||
@ -79,6 +139,7 @@ preferred-supported-locales: ['en_US', 'de']
|
||||
file: configFile,
|
||||
logger: BufferLogger.test(),
|
||||
defaultArbDir: fileSystem.path.join('lib', 'l10n'),
|
||||
defaultSyntheticPackage: true,
|
||||
);
|
||||
|
||||
expect(options.preferredSupportedLocales, <String>['en_US', 'de']);
|
||||
@ -97,6 +158,7 @@ use-deferred-loading: string
|
||||
file: configFile,
|
||||
logger: BufferLogger.test(),
|
||||
defaultArbDir: fileSystem.path.join('lib', 'l10n'),
|
||||
defaultSyntheticPackage: true,
|
||||
),
|
||||
throwsException,
|
||||
);
|
||||
@ -113,6 +175,7 @@ template-arb-file: {name}_en.arb
|
||||
file: configFile,
|
||||
logger: BufferLogger.test(),
|
||||
defaultArbDir: fileSystem.path.join('lib', 'l10n'),
|
||||
defaultSyntheticPackage: true,
|
||||
),
|
||||
throwsToolExit(),
|
||||
);
|
||||
|
@ -47,7 +47,8 @@ void main() {
|
||||
mainPath: globals.fs.path.join('lib', 'main.dart'),
|
||||
assetDirPath: 'example',
|
||||
depfilePath: 'example.d',
|
||||
buildSystem: buildSystem
|
||||
buildSystem: buildSystem,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
expect(globals.fs.file(globals.fs.path.join('example', 'kernel_blob.bin')).existsSync(), true);
|
||||
expect(globals.fs.file(globals.fs.path.join('example', 'LICENSE')).existsSync(), true);
|
||||
@ -136,7 +137,8 @@ void main() {
|
||||
mainPath: 'lib/main.dart',
|
||||
assetDirPath: 'example',
|
||||
depfilePath: 'example.d',
|
||||
buildSystem: TestBuildSystem.all(BuildResult(success: false))
|
||||
buildSystem: TestBuildSystem.all(BuildResult(success: false)),
|
||||
useImplicitPubspecResolution: true,
|
||||
),
|
||||
throwsToolExit()
|
||||
);
|
||||
@ -181,7 +183,8 @@ void main() {
|
||||
mainPath: mainPath,
|
||||
assetDirPath: assetDirPath,
|
||||
depfilePath: depfilePath,
|
||||
buildSystem: buildSystem
|
||||
buildSystem: buildSystem,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
expect(env, isNotNull);
|
||||
|
@ -42,6 +42,7 @@ void main() {
|
||||
final int exitCode = await ColdRunner(devices,
|
||||
debuggingOptions: DebuggingOptions.enabled(BuildInfo.debug),
|
||||
target: 'main.dart',
|
||||
useImplicitPubspecResolution: true,
|
||||
).attach();
|
||||
expect(exitCode, 2);
|
||||
});
|
||||
@ -58,6 +59,7 @@ void main() {
|
||||
await ColdRunner(devices,
|
||||
debuggingOptions: DebuggingOptions.enabled(BuildInfo.debug),
|
||||
target: 'main.dart',
|
||||
useImplicitPubspecResolution: true,
|
||||
).cleanupAtFinish();
|
||||
|
||||
expect(flutterDevice1.stopEchoingDeviceLogCount, 1);
|
||||
@ -87,6 +89,7 @@ void main() {
|
||||
applicationBinary: applicationBinary,
|
||||
debuggingOptions: DebuggingOptions.enabled(BuildInfo.debug),
|
||||
target: 'main.dart',
|
||||
useImplicitPubspecResolution: true,
|
||||
).run();
|
||||
|
||||
expect(result, 1);
|
||||
@ -103,6 +106,7 @@ void main() {
|
||||
debuggingOptions: DebuggingOptions.disabled(BuildInfo.debug),
|
||||
target: 'main.dart',
|
||||
traceStartup: true,
|
||||
useImplicitPubspecResolution: true,
|
||||
).run();
|
||||
|
||||
expect(result, 0);
|
||||
@ -126,6 +130,7 @@ void main() {
|
||||
debuggingOptions: DebuggingOptions.disabled(BuildInfo.debug),
|
||||
target: 'main.dart',
|
||||
traceStartup: true,
|
||||
useImplicitPubspecResolution: true,
|
||||
).run();
|
||||
|
||||
expect(result, 0);
|
||||
|
@ -29,6 +29,7 @@ void main() {
|
||||
bindPorts.add(port);
|
||||
return socket;
|
||||
},
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
await server.run();
|
||||
expect(bindCalledTimes, 1);
|
||||
@ -56,6 +57,7 @@ void main() {
|
||||
}
|
||||
return socket;
|
||||
},
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
await server.run();
|
||||
expect(bindCalledTimes, 2);
|
||||
|
@ -122,7 +122,8 @@ void main() {
|
||||
final CustomDevice device = CustomDevice(
|
||||
config: testConfig,
|
||||
processManager: FakeProcessManager.any(),
|
||||
logger: BufferLogger.test()
|
||||
logger: BufferLogger.test(),
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
final PrebuiltLinuxApp linuxApp = PrebuiltLinuxApp(executable: 'foo');
|
||||
@ -165,7 +166,8 @@ void main() {
|
||||
fileSystem: fs,
|
||||
directory: dir,
|
||||
logger: BufferLogger.test()
|
||||
)
|
||||
),
|
||||
useImplicitPubspecResolution: true,
|
||||
).devices(), <Device>[]);
|
||||
});
|
||||
|
||||
@ -183,7 +185,8 @@ void main() {
|
||||
fileSystem: fs,
|
||||
directory: dir,
|
||||
logger: BufferLogger.test()
|
||||
)
|
||||
),
|
||||
useImplicitPubspecResolution: true,
|
||||
).devices(), <Device>[]);
|
||||
});
|
||||
|
||||
@ -207,7 +210,8 @@ void main() {
|
||||
fileSystem: fs,
|
||||
directory: dir,
|
||||
logger: BufferLogger.test()
|
||||
)
|
||||
),
|
||||
useImplicitPubspecResolution: true,
|
||||
).devices(),
|
||||
hasLength(1)
|
||||
);
|
||||
@ -236,6 +240,7 @@ void main() {
|
||||
directory: dir,
|
||||
logger: BufferLogger.test(),
|
||||
),
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
final List<Device> discoveredDevices = await discovery.discoverDevices();
|
||||
@ -265,6 +270,7 @@ void main() {
|
||||
directory: dir,
|
||||
logger: BufferLogger.test(),
|
||||
),
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
expect(await discovery.discoverDevices(), hasLength(0));
|
||||
@ -289,6 +295,7 @@ void main() {
|
||||
directory: dir,
|
||||
logger: BufferLogger.test(),
|
||||
),
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
expect(await discovery.discoverDevices(), hasLength(0));
|
||||
@ -308,6 +315,7 @@ void main() {
|
||||
config: testConfig,
|
||||
logger: BufferLogger.test(),
|
||||
processManager: FakeProcessManager.any(),
|
||||
useImplicitPubspecResolution: true,
|
||||
).isSupportedForProject(flutterProject), true);
|
||||
});
|
||||
|
||||
@ -317,12 +325,13 @@ void main() {
|
||||
bool bothCommandsWereExecuted = false;
|
||||
|
||||
final CustomDevice device = CustomDevice(
|
||||
config: testConfig,
|
||||
logger: BufferLogger.test(),
|
||||
processManager: FakeProcessManager.list(<FakeCommand>[
|
||||
FakeCommand(command: testConfig.uninstallCommand),
|
||||
FakeCommand(command: testConfig.installCommand, onRun: (_) => bothCommandsWereExecuted = true),
|
||||
])
|
||||
config: testConfig,
|
||||
logger: BufferLogger.test(),
|
||||
processManager: FakeProcessManager.list(<FakeCommand>[
|
||||
FakeCommand(command: testConfig.uninstallCommand),
|
||||
FakeCommand(command: testConfig.installCommand, onRun: (_) => bothCommandsWereExecuted = true),
|
||||
]),
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
expect(await device.installApp(PrebuiltLinuxApp(executable: 'exe')), true);
|
||||
@ -384,7 +393,8 @@ void main() {
|
||||
device: CustomDevice(
|
||||
config: testConfig,
|
||||
logger: BufferLogger.test(),
|
||||
processManager: processManager
|
||||
processManager: processManager,
|
||||
useImplicitPubspecResolution: true,
|
||||
),
|
||||
appPackage: PrebuiltLinuxApp(executable: 'testexecutable'),
|
||||
logger: BufferLogger.test(),
|
||||
@ -421,7 +431,8 @@ void main() {
|
||||
device: CustomDevice(
|
||||
config: testConfigNonForwarding,
|
||||
logger: BufferLogger.test(),
|
||||
processManager: processManager
|
||||
processManager: processManager,
|
||||
useImplicitPubspecResolution: true,
|
||||
),
|
||||
appPackage: PrebuiltLinuxApp(executable: 'testexecutable'),
|
||||
logger: BufferLogger.test(),
|
||||
@ -486,7 +497,8 @@ void main() {
|
||||
fileSystem: fs,
|
||||
directory: configFileDir,
|
||||
logger: BufferLogger.test()
|
||||
)
|
||||
),
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
final List<Device> devices = await customDevices.discoverDevices();
|
||||
@ -535,7 +547,8 @@ void main() {
|
||||
final CustomDevice device = CustomDevice(
|
||||
config: testConfig,
|
||||
logger: BufferLogger.test(),
|
||||
processManager: processManager
|
||||
processManager: processManager,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
expect(device.supportsScreenshot, true);
|
||||
@ -563,7 +576,8 @@ void main() {
|
||||
explicitScreenshotCommand: true
|
||||
),
|
||||
logger: BufferLogger.test(),
|
||||
processManager: processManager
|
||||
processManager: processManager,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
expect(device.supportsScreenshot, false);
|
||||
@ -581,7 +595,8 @@ void main() {
|
||||
platform: TargetPlatform.linux_x64
|
||||
),
|
||||
logger: BufferLogger.test(),
|
||||
processManager: FakeProcessManager.empty()
|
||||
processManager: FakeProcessManager.empty(),
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
expect(await device.targetPlatform, TargetPlatform.linux_x64);
|
||||
@ -649,6 +664,7 @@ class FakeBundleBuilder extends Fake implements BundleBuilder {
|
||||
String? assetDirPath,
|
||||
Uri? nativeAssets,
|
||||
bool buildNativeAssets = true,
|
||||
required bool useImplicitPubspecResolution,
|
||||
@visibleForTesting BuildSystem? buildSystem
|
||||
}) async {}
|
||||
}
|
||||
|
@ -318,6 +318,7 @@ class FakeWebRunnerFactory implements WebRunnerFactory {
|
||||
Usage? usage,
|
||||
Analytics? analytics,
|
||||
bool machine = false,
|
||||
required bool useImplicitPubspecResolution,
|
||||
}) {
|
||||
expect(stayResident, isTrue);
|
||||
return FakeResidentRunner(
|
||||
@ -381,6 +382,7 @@ WebDriverService setUpDriverService() {
|
||||
processManager: FakeProcessManager.any(),
|
||||
),
|
||||
dartSdkPath: 'dart',
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -149,6 +149,7 @@ void main() {
|
||||
debuggingOptions: DebuggingOptions.disabled(BuildInfo.debug),
|
||||
target: 'main.dart',
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
useImplicitPubspecResolution: true,
|
||||
analytics: fakeAnalytics,
|
||||
).restart(fullRestart: true);
|
||||
expect(result.isOk, false);
|
||||
@ -181,6 +182,7 @@ void main() {
|
||||
debuggingOptions: DebuggingOptions.disabled(BuildInfo.debug),
|
||||
target: 'main.dart',
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
useImplicitPubspecResolution: true,
|
||||
reassembleHelper: (
|
||||
List<FlutterDevice?> flutterDevices,
|
||||
Map<FlutterDevice?, List<FlutterView>> viewCache,
|
||||
@ -230,6 +232,7 @@ void main() {
|
||||
debuggingOptions: DebuggingOptions.disabled(BuildInfo.debug),
|
||||
target: 'main.dart',
|
||||
analytics: fakeAnalytics,
|
||||
useImplicitPubspecResolution: true,
|
||||
).cleanupAfterSignal();
|
||||
expect(shutdownTestingConfig.shutdownHookCalled, true);
|
||||
}, overrides: <Type, Generator>{
|
||||
@ -258,6 +261,7 @@ void main() {
|
||||
debuggingOptions: DebuggingOptions.disabled(BuildInfo.debug),
|
||||
target: 'main.dart',
|
||||
analytics: fakeAnalytics,
|
||||
useImplicitPubspecResolution: true,
|
||||
).preExit();
|
||||
expect(shutdownTestingConfig.shutdownHookCalled, true);
|
||||
}, overrides: <Type, Generator>{
|
||||
@ -308,6 +312,7 @@ void main() {
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
stopwatchFactory: fakeStopwatchFactory,
|
||||
analytics: fakeAnalytics,
|
||||
useImplicitPubspecResolution: true,
|
||||
).restart(fullRestart: true);
|
||||
|
||||
expect(result.isOk, true);
|
||||
@ -395,6 +400,7 @@ void main() {
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
stopwatchFactory: fakeStopwatchFactory,
|
||||
analytics: fakeAnalytics,
|
||||
useImplicitPubspecResolution: true,
|
||||
reloadSourcesHelper: (
|
||||
HotRunner hotRunner,
|
||||
List<FlutterDevice?> flutterDevices,
|
||||
@ -501,6 +507,7 @@ void main() {
|
||||
target: 'main.dart',
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
analytics: fakeAnalytics,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
await expectLater(runner.restart(fullRestart: true), throwsA(isA<Exception>().having((Exception e) => e.toString(), 'message', 'Exception: updateDevFS failed')));
|
||||
@ -536,6 +543,7 @@ void main() {
|
||||
target: 'main.dart',
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
analytics: fakeAnalytics,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
await expectLater(runner.restart(), throwsA(isA<Exception>().having((Exception e) => e.toString(), 'message', 'Exception: updateDevFS failed')));
|
||||
@ -589,6 +597,7 @@ void main() {
|
||||
debuggingOptions: DebuggingOptions.enabled(BuildInfo.debug),
|
||||
target: 'main.dart',
|
||||
analytics: fakeAnalytics,
|
||||
useImplicitPubspecResolution: true,
|
||||
).attach(needsFullRestart: false);
|
||||
expect(exitCode, 2);
|
||||
}, overrides: <Type, Generator>{
|
||||
@ -627,6 +636,7 @@ void main() {
|
||||
debuggingOptions: DebuggingOptions.enabled(BuildInfo.debug),
|
||||
target: 'main.dart',
|
||||
analytics: fakeAnalytics,
|
||||
useImplicitPubspecResolution: true,
|
||||
).cleanupAtFinish();
|
||||
|
||||
expect(device1.disposed, true);
|
||||
|
@ -89,6 +89,7 @@ void main() {
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
nativeAssetsBuilder: FakeHotRunnerNativeAssetsBuilder(buildRunner),
|
||||
analytics: fakeAnalytics,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
final OperationResult result = await hotRunner.restart(fullRestart: true);
|
||||
expect(result.isOk, true);
|
||||
@ -157,6 +158,7 @@ void main() {
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
nativeAssetsBuilder: FakeHotRunnerNativeAssetsBuilder(buildRunner),
|
||||
analytics: fakeAnalytics,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
expect(
|
||||
() => hotRunner.run(),
|
||||
|
@ -74,6 +74,7 @@ void main() {
|
||||
nativeAssetsBuilder: FakeHotRunnerNativeAssetsBuilder(buildRunner),
|
||||
analytics: FakeAnalytics(),
|
||||
nativeAssetsYamlFile: 'foo.yaml',
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
final int result = await residentRunner.run();
|
||||
|
@ -49,6 +49,7 @@ void main() {
|
||||
processManager: FakeProcessManager.any(),
|
||||
previewBinary: previewBinary,
|
||||
logger: BufferLogger.test(),
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
expect(await device.isLocalEmulator, false);
|
||||
@ -84,6 +85,7 @@ void main() {
|
||||
]),
|
||||
logger: logger,
|
||||
builderFactory: () => FakeBundleBuilder(fs),
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
final Directory previewDeviceCacheDir = fs
|
||||
.directory('Artifact.windowsDesktopPath.TargetPlatform.windows_x64.debug')
|
||||
@ -121,6 +123,7 @@ void main() {
|
||||
processManager: processManager,
|
||||
platform: linuxPlatform,
|
||||
featureFlags: featureFlags,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
final List<Device> devices = await discovery.devices();
|
||||
@ -136,6 +139,7 @@ void main() {
|
||||
processManager: processManager,
|
||||
platform: macPlatform,
|
||||
featureFlags: featureFlags,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
final List<Device> devices = await discovery.devices();
|
||||
@ -153,6 +157,7 @@ void main() {
|
||||
processManager: processManager,
|
||||
platform: windowsPlatform,
|
||||
featureFlags: featureFlags,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
final List<Device> devices = await discovery.devices();
|
||||
@ -170,6 +175,7 @@ void main() {
|
||||
processManager: processManager,
|
||||
platform: windowsPlatform,
|
||||
featureFlags: featureFlags,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
final List<Device> devices = await discovery.devices();
|
||||
@ -197,7 +203,8 @@ class FakeBundleBuilder extends Fake implements BundleBuilder {
|
||||
String? depfilePath,
|
||||
String? assetDirPath,
|
||||
bool buildNativeAssets = true,
|
||||
@visibleForTesting BuildSystem? buildSystem
|
||||
@visibleForTesting BuildSystem? buildSystem,
|
||||
required bool useImplicitPubspecResolution,
|
||||
}) async {
|
||||
final Directory assetDirectory = fileSystem
|
||||
.directory(assetDirPath)
|
||||
|
@ -63,6 +63,7 @@ void main() {
|
||||
target: 'main.dart',
|
||||
analytics: fakeAnalytics,
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
}, overrides: <Type, Generator>{
|
||||
Analytics: () => FakeAnalytics(),
|
||||
@ -114,6 +115,7 @@ void main() {
|
||||
target: 'main.dart',
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
analytics: globals.analytics,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
flutterDevice.generator = residentCompiler;
|
||||
|
||||
@ -138,6 +140,7 @@ void main() {
|
||||
target: 'main.dart',
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
analytics: globals.analytics,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
flutterDevice.generator = residentCompiler;
|
||||
|
||||
@ -159,6 +162,7 @@ void main() {
|
||||
debuggingOptions: DebuggingOptions.enabled(BuildInfo.release),
|
||||
target: 'main.dart',
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
flutterDevice.runColdCode = 1;
|
||||
|
||||
@ -180,6 +184,7 @@ void main() {
|
||||
debuggingOptions: DebuggingOptions.enabled(BuildInfo.release),
|
||||
target: 'main.dart',
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
flutterDevice.runColdError = Exception('BAD STUFF');
|
||||
|
||||
@ -208,6 +213,7 @@ void main() {
|
||||
target: 'main.dart',
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
analytics: globals.analytics,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
flutterDevice.generator = residentCompiler;
|
||||
|
||||
@ -268,6 +274,7 @@ void main() {
|
||||
target: 'main.dart',
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
analytics: globals.analytics,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
final Completer<DebugConnectionInfo> futureConnectionInfo = Completer<DebugConnectionInfo>.sync();
|
||||
final Completer<void> futureAppStart = Completer<void>.sync();
|
||||
@ -409,6 +416,7 @@ void main() {
|
||||
enableDevTools: false,
|
||||
),
|
||||
analytics: fakeAnalytics,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
final Completer<DebugConnectionInfo> futureConnectionInfo = Completer<DebugConnectionInfo>.sync();
|
||||
final Completer<void> futureAppStart = Completer<void>.sync();
|
||||
@ -473,6 +481,7 @@ void main() {
|
||||
target: 'main.dart',
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
analytics: fakeAnalytics,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
final Completer<DebugConnectionInfo> futureConnectionInfo = Completer<DebugConnectionInfo>.sync();
|
||||
final Completer<void> futureAppStart = Completer<void>.sync();
|
||||
@ -737,6 +746,7 @@ void main() {
|
||||
target: 'main.dart',
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
analytics: fakeAnalytics,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
devFS.nextUpdateReport = UpdateFSReport(
|
||||
success: true,
|
||||
@ -1081,6 +1091,7 @@ void main() {
|
||||
target: 'main.dart',
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
analytics: fakeAnalytics,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
expect(otherRunner.artifactDirectory.path, contains('foobar'));
|
||||
}));
|
||||
@ -1194,6 +1205,7 @@ flutter:
|
||||
target: 'custom_main.dart',
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
analytics: fakeAnalytics,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
await residentRunner.runSourceGenerators();
|
||||
|
||||
@ -1254,6 +1266,7 @@ flutter:
|
||||
target: 'main.dart',
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
analytics: fakeAnalytics,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
flutterDevice.generator = residentCompiler;
|
||||
|
||||
@ -1354,6 +1367,7 @@ flutter:
|
||||
debuggingOptions: DebuggingOptions.disabled(BuildInfo.release),
|
||||
target: 'main.dart',
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
residentRunner.printHelp(details: true);
|
||||
|
||||
@ -1389,6 +1403,7 @@ flutter:
|
||||
debuggingOptions: DebuggingOptions.disabled(BuildInfo.release),
|
||||
target: 'main.dart',
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
residentRunner.printHelp(details: false);
|
||||
|
||||
@ -1478,6 +1493,7 @@ flutter:
|
||||
debuggingOptions: DebuggingOptions.enabled(BuildInfo.profile, vmserviceOutFile: 'foo', enableDevTools: false),
|
||||
target: 'main.dart',
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
final Future<int?> result = residentRunner.attach();
|
||||
@ -1523,6 +1539,7 @@ flutter:
|
||||
target: 'main.dart',
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
analytics: fakeAnalytics,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
await residentRunner.run();
|
||||
@ -1553,6 +1570,7 @@ flutter:
|
||||
target: 'main.dart',
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
analytics: fakeAnalytics,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
residentRunner.artifactDirectory.childFile('app.dill').writeAsStringSync('ABC');
|
||||
|
||||
@ -1584,6 +1602,7 @@ flutter:
|
||||
target: 'main.dart',
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
analytics: fakeAnalytics,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
residentRunner.artifactDirectory.childFile('app.dill').writeAsStringSync('ABC');
|
||||
|
||||
@ -1616,6 +1635,7 @@ flutter:
|
||||
target: 'main.dart',
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
analytics: fakeAnalytics,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
residentRunner.artifactDirectory.childFile('app.dill').writeAsStringSync('ABC');
|
||||
|
||||
@ -1640,6 +1660,7 @@ flutter:
|
||||
target: 'main.dart',
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
analytics: fakeAnalytics,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
residentRunner.artifactDirectory.childFile('app.dill').writeAsStringSync('ABC');
|
||||
|
||||
@ -1665,6 +1686,7 @@ flutter:
|
||||
target: 'main.dart',
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
analytics: fakeAnalytics,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
residentRunner.artifactDirectory.childFile('app.dill').writeAsStringSync('ABC');
|
||||
|
||||
@ -1694,6 +1716,7 @@ flutter:
|
||||
target: 'main.dart',
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
analytics: fakeAnalytics,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
residentRunner.artifactDirectory.childFile('app.dill').writeAsStringSync('ABC');
|
||||
|
||||
@ -1717,6 +1740,7 @@ flutter:
|
||||
target: 'main.dart',
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
analytics: fakeAnalytics,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
await residentRunner.run();
|
||||
@ -1738,6 +1762,7 @@ flutter:
|
||||
target: 'main.dart',
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
analytics: fakeAnalytics,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
await residentRunner.run();
|
||||
@ -1761,6 +1786,7 @@ flutter:
|
||||
debuggingOptions: DebuggingOptions.enabled(BuildInfo.profile, vmserviceOutFile: 'foo'),
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
target: 'main.dart',
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
await residentRunner.run();
|
||||
@ -2142,6 +2168,7 @@ flutter:
|
||||
target: 'main.dart',
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
analytics: fakeAnalytics,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
await residentRunner.cleanupAtFinish();
|
||||
|
||||
@ -2163,6 +2190,7 @@ flutter:
|
||||
target: 'main.dart',
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
analytics: fakeAnalytics,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
(flutterDevice.devFS! as FakeDevFS).assetPathsToEvict = <String>{'asset'};
|
||||
@ -2188,6 +2216,7 @@ flutter:
|
||||
target: 'main.dart',
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
analytics: fakeAnalytics,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
(flutterDevice.devFS! as FakeDevFS).shaderPathsToEvict = <String>{'foo.frag'};
|
||||
@ -2210,6 +2239,7 @@ flutter:
|
||||
target: 'main.dart',
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
analytics: fakeAnalytics,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
expect(flutterDevice.devFS!.hasSetAssetDirectory, false);
|
||||
@ -2232,6 +2262,7 @@ flutter:
|
||||
target: 'main.dart',
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
analytics: fakeAnalytics,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
(flutterDevice.devFS! as FakeDevFS).assetPathsToEvict = <String>{'asset'};
|
||||
@ -2281,6 +2312,7 @@ flutter:
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
analytics: globals.analytics,
|
||||
nativeAssetsYamlFile: 'foo.yaml',
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
final int? result = await residentRunner.run();
|
||||
|
@ -61,6 +61,7 @@ void main() {
|
||||
fs: fileSystem,
|
||||
fakeFlutterVersion: FakeFlutterVersion(),
|
||||
),
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
final Completer<DebugConnectionInfo> connectionInfoCompleter = Completer<DebugConnectionInfo>();
|
||||
@ -91,6 +92,7 @@ void main() {
|
||||
fs: fileSystem,
|
||||
fakeFlutterVersion: FakeFlutterVersion(),
|
||||
),
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
expect(() => residentWebRunner.run(), throwsToolExit());
|
||||
@ -116,6 +118,7 @@ void main() {
|
||||
fs: fileSystem,
|
||||
fakeFlutterVersion: FakeFlutterVersion(),
|
||||
),
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
expect(() async => residentWebRunner.run(), throwsException);
|
||||
@ -140,6 +143,7 @@ void main() {
|
||||
fs: fileSystem,
|
||||
fakeFlutterVersion: FakeFlutterVersion(),
|
||||
),
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
final Completer<DebugConnectionInfo> connectionInfoCompleter = Completer<DebugConnectionInfo>();
|
||||
unawaited(residentWebRunner.run(
|
||||
@ -169,6 +173,7 @@ void main() {
|
||||
fs: fileSystem,
|
||||
fakeFlutterVersion: FakeFlutterVersion(),
|
||||
),
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
final Completer<DebugConnectionInfo> connectionInfoCompleter = Completer<DebugConnectionInfo>();
|
||||
unawaited(residentWebRunner.run(
|
||||
|
@ -170,6 +170,7 @@ void main() {
|
||||
usage: globals.flutterUsage,
|
||||
analytics: globals.analytics,
|
||||
systemClock: globals.systemClock,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
expect(profileResidentWebRunner.debuggingEnabled, false);
|
||||
@ -202,6 +203,7 @@ void main() {
|
||||
usage: globals.flutterUsage,
|
||||
analytics: globals.analytics,
|
||||
systemClock: globals.systemClock,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
expect(profileResidentWebRunner.uri, webDevFS.baseUri);
|
||||
@ -221,6 +223,7 @@ void main() {
|
||||
usage: globals.flutterUsage,
|
||||
analytics: globals.analytics,
|
||||
systemClock: globals.systemClock,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[]);
|
||||
flutterDevice.device = chromeDevice;
|
||||
@ -234,6 +237,7 @@ void main() {
|
||||
usage: globals.flutterUsage,
|
||||
analytics: globals.analytics,
|
||||
systemClock: globals.systemClock,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
expect(profileResidentWebRunner.supportsServiceProtocol, false);
|
||||
@ -368,6 +372,7 @@ void main() {
|
||||
analytics: globals.analytics,
|
||||
systemClock: globals.systemClock,
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
expect(await residentWebRunner.run(), 0);
|
||||
@ -395,6 +400,7 @@ void main() {
|
||||
analytics: globals.analytics,
|
||||
systemClock: globals.systemClock,
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
expect(await residentWebRunner.run(), 0);
|
||||
@ -596,6 +602,7 @@ void main() {
|
||||
analytics: globals.analytics,
|
||||
systemClock: globals.systemClock,
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
fakeVmServiceHost =
|
||||
FakeVmServiceHost(requests: kAttachExpectations.toList());
|
||||
@ -1120,6 +1127,7 @@ void main() {
|
||||
analytics: globals.analytics,
|
||||
systemClock: globals.systemClock,
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
final Completer<DebugConnectionInfo> connectionInfoCompleter =
|
||||
@ -1169,6 +1177,7 @@ void main() {
|
||||
analytics: globals.analytics,
|
||||
systemClock: globals.systemClock,
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
final Completer<DebugConnectionInfo> connectionInfoCompleter =
|
||||
@ -1212,6 +1221,7 @@ void main() {
|
||||
analytics: globals.analytics,
|
||||
systemClock: globals.systemClock,
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
|
||||
// Create necessary files.
|
||||
@ -1468,6 +1478,7 @@ ResidentRunner setUpResidentRunner(
|
||||
fileSystem: globals.fs,
|
||||
logger: logger ?? BufferLogger.test(),
|
||||
devtoolsHandler: createNoOpHandler,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -98,6 +98,7 @@ void main() {
|
||||
artifacts: Artifacts.test(),
|
||||
logger: BufferLogger.test(),
|
||||
flutterVersion: FakeFlutterVersion(),
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
logLines = <String>[];
|
||||
device.getLogReader().logLines.listen(logLines.add);
|
||||
@ -217,6 +218,7 @@ FlutterTesterDevices setUpFlutterTesterDevices() {
|
||||
processManager: FakeProcessManager.any(),
|
||||
fileSystem: MemoryFileSystem.test(),
|
||||
flutterVersion: FakeFlutterVersion(),
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -70,6 +70,7 @@ void main() {
|
||||
flutterVersion: flutterVersion,
|
||||
fileSystem: fileSystem,
|
||||
analytics: fakeAnalytics,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
await webBuilder.buildWeb(
|
||||
flutterProject,
|
||||
@ -160,6 +161,7 @@ void main() {
|
||||
flutterVersion: flutterVersion,
|
||||
fileSystem: fileSystem,
|
||||
analytics: fakeAnalytics,
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
await expectLater(
|
||||
() async => webBuilder.buildWeb(
|
||||
|
@ -183,7 +183,7 @@ void testUsingContext(
|
||||
// can provide the AlwaysFalseBotDetector in the overrides, or its own
|
||||
// BotDetector implementation in the overrides.
|
||||
BotDetector: overrides[BotDetector] ?? () => const FakeBotDetector(true),
|
||||
});
|
||||
}, useImplicitPubspecResolution: true);
|
||||
}, testOn: testOn, skip: skip);
|
||||
// We don't support "timeout"; see ../../dart_test.yaml which
|
||||
// configures all tests to have a 15 minute timeout which should
|
||||
|
@ -92,7 +92,7 @@ class Testbed {
|
||||
///
|
||||
/// `overrides` may be used to provide new context values for the single test
|
||||
/// case or override any context values from the setup.
|
||||
Future<T?> run<T>(FutureOr<T> Function() test, {Map<Type, Generator>? overrides}) {
|
||||
Future<T?> run<T>(FutureOr<T> Function() test, {Map<Type, Generator>? overrides, bool useImplicitPubspecResolution = true}) {
|
||||
final Map<Type, Generator> testOverrides = <Type, Generator>{
|
||||
..._testbedDefaults,
|
||||
// Add the initial setUp overrides
|
||||
@ -139,7 +139,7 @@ class Testbed {
|
||||
}
|
||||
return null;
|
||||
});
|
||||
});
|
||||
}, useImplicitPubspecResolution: useImplicitPubspecResolution);
|
||||
}, createHttpClient: (SecurityContext? c) => FakeHttpClient.any());
|
||||
}
|
||||
}
|
||||
|
@ -21,6 +21,7 @@ void main() {
|
||||
processManager: FakeProcessManager.empty(),
|
||||
),
|
||||
dartSdkPath: 'dart',
|
||||
useImplicitPubspecResolution: true,
|
||||
);
|
||||
const String link = 'https://flutter.dev/to/integration-test-on-web';
|
||||
try {
|
||||
|
Loading…
x
Reference in New Issue
Block a user