Move dart pub deps
call to <Pub>.deps
and use it accordingly (#158524)
Closes https://github.com/flutter/flutter/issues/158396, closes https://github.com/flutter/flutter/pull/158370.
This commit is contained in:
parent
4de32b8702
commit
2d1a3efc38
@ -2,11 +2,10 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
import 'package:process/process.dart';
|
|
||||||
|
|
||||||
import 'base/io.dart';
|
|
||||||
import 'base/logger.dart';
|
import 'base/logger.dart';
|
||||||
import 'convert.dart';
|
import 'convert.dart';
|
||||||
|
import 'dart/pub.dart';
|
||||||
|
import 'project.dart';
|
||||||
|
|
||||||
/// Returns dependencies of [project] that are _only_ used as `dev_dependency`.
|
/// Returns dependencies of [project] that are _only_ used as `dev_dependency`.
|
||||||
///
|
///
|
||||||
@ -15,54 +14,19 @@ import 'convert.dart';
|
|||||||
/// `pubspec.yaml` file, and removing packages from that set that appear as
|
/// `pubspec.yaml` file, and removing packages from that set that appear as
|
||||||
/// dependencies (implicitly non-dev) in any non-dev package depended on.
|
/// dependencies (implicitly non-dev) in any non-dev package depended on.
|
||||||
Future<Set<String>> computeExclusiveDevDependencies(
|
Future<Set<String>> computeExclusiveDevDependencies(
|
||||||
ProcessManager processes, {
|
Pub pub, {
|
||||||
required Logger logger,
|
required Logger logger,
|
||||||
required String projectPath,
|
required FlutterProject project,
|
||||||
}) async {
|
}) async {
|
||||||
final ProcessResult processResult = await processes.run(
|
final Map<String, Object?> jsonResult = await pub.deps(project);
|
||||||
<String>['dart', 'pub', 'deps', '--json'],
|
|
||||||
workingDirectory: projectPath,
|
|
||||||
);
|
|
||||||
|
|
||||||
Never fail([String? reason]) {
|
Never fail([String? reason]) {
|
||||||
final Object? stdout = processResult.stdout;
|
logger.printTrace(const JsonEncoder.withIndent(' ').convert(jsonResult));
|
||||||
if (stdout is String && stdout.isNotEmpty) {
|
|
||||||
logger.printTrace(stdout);
|
|
||||||
}
|
|
||||||
final String stderr = processResult.stderr.toString();
|
|
||||||
throw StateError(
|
throw StateError(
|
||||||
'dart pub deps --json ${reason != null ? 'had unexpected output: $reason' : 'failed'}'
|
'dart pub deps --json ${reason != null ? 'had unexpected output: $reason' : 'failed'}'
|
||||||
'${stderr.isNotEmpty ? '\n$stderr' : ''}',
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Guard against dart pub deps crashing.
|
|
||||||
final Map<String, Object?> jsonResult;
|
|
||||||
if (processResult.exitCode != 0 || processResult.stdout is! String) {
|
|
||||||
fail();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Guard against dart pub deps having explicitly invalid output.
|
|
||||||
final String stdout;
|
|
||||||
try {
|
|
||||||
stdout = processResult.stdout as String;
|
|
||||||
|
|
||||||
// This is an indication that `FakeProcessManager.any` was used, which by
|
|
||||||
// contract emits exit code 0 and no output on either stdout or stderr. To
|
|
||||||
// avoid this code, we'd have to go and make this function injectable into
|
|
||||||
// every callsite and mock-it out manually, which at the time of this
|
|
||||||
// writing was 130+ unit test cases alone.
|
|
||||||
//
|
|
||||||
// So, this is the lesser of two evils.
|
|
||||||
if (stdout.isEmpty && processResult.stderr == '') {
|
|
||||||
return <String>{};
|
|
||||||
}
|
|
||||||
|
|
||||||
jsonResult = json.decode(stdout) as Map<String, Object?>;
|
|
||||||
} on FormatException catch (e) {
|
|
||||||
fail('$e');
|
|
||||||
}
|
|
||||||
|
|
||||||
List<T> asListOrFail<T>(Object? value, String name) {
|
List<T> asListOrFail<T>(Object? value, String name) {
|
||||||
// Allow omitting a list as empty to default to an empty list
|
// Allow omitting a list as empty to default to an empty list
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
|
@ -157,6 +157,13 @@ abstract class Pub {
|
|||||||
PubOutputMode outputMode = PubOutputMode.all,
|
PubOutputMode outputMode = PubOutputMode.all,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/// Runs, parses, and returns `pub deps --json` for [project].
|
||||||
|
///
|
||||||
|
/// While it is guaranteed that, if succcessful, that the result are a valid
|
||||||
|
/// JSON object, the exact contents returned are _not_ validated, and are left
|
||||||
|
/// as a responsibility of the caller.
|
||||||
|
Future<Map<String, Object?>> deps(FlutterProject project);
|
||||||
|
|
||||||
/// Runs pub in 'batch' mode.
|
/// Runs pub in 'batch' mode.
|
||||||
///
|
///
|
||||||
/// forwarding complete lines written by pub to its stdout/stderr streams to
|
/// forwarding complete lines written by pub to its stdout/stderr streams to
|
||||||
@ -373,6 +380,48 @@ class _DefaultPub implements Pub {
|
|||||||
await _updateVersionAndPackageConfig(project);
|
await _updateVersionAndPackageConfig(project);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<Map<String, Object?>> deps(FlutterProject project) async {
|
||||||
|
final List<String> pubCommand = <String>[
|
||||||
|
..._pubCommand,
|
||||||
|
'deps',
|
||||||
|
'--json',
|
||||||
|
];
|
||||||
|
|
||||||
|
final RunResult runResult = await _processUtils.run(
|
||||||
|
pubCommand,
|
||||||
|
workingDirectory: project.directory.path,
|
||||||
|
);
|
||||||
|
|
||||||
|
Never fail([String? reason]) {
|
||||||
|
final String stdout = runResult.stdout;
|
||||||
|
if (stdout.isNotEmpty) {
|
||||||
|
_logger.printTrace(stdout);
|
||||||
|
}
|
||||||
|
final String stderr = runResult.stderr;
|
||||||
|
throw StateError(
|
||||||
|
'${pubCommand.join(' ')} ${reason != null ? 'had unexpected output: $reason' : 'failed'}'
|
||||||
|
'${stderr.isNotEmpty ? '\n$stderr' : ''}',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Guard against dart pub deps crashing.
|
||||||
|
if (runResult.exitCode != 0) {
|
||||||
|
fail();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Guard against dart pub deps having explicitly invalid output.
|
||||||
|
try {
|
||||||
|
final Object? result = json.decode(runResult.stdout);
|
||||||
|
if (result is! Map<String, Object?>) {
|
||||||
|
fail('Not a JSON object');
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
} on FormatException catch (e) {
|
||||||
|
fail('$e');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Runs pub with [arguments] and [ProcessStartMode.inheritStdio] mode.
|
/// Runs pub with [arguments] and [ProcessStartMode.inheritStdio] mode.
|
||||||
///
|
///
|
||||||
/// Uses [ProcessStartMode.normal] and [Pub._stdio] if [Pub.test] constructor
|
/// Uses [ProcessStartMode.normal] and [Pub._stdio] if [Pub.test] constructor
|
||||||
|
@ -21,6 +21,7 @@ import 'compute_dev_dependencies.dart';
|
|||||||
import 'convert.dart';
|
import 'convert.dart';
|
||||||
import 'dart/language_version.dart';
|
import 'dart/language_version.dart';
|
||||||
import 'dart/package_map.dart';
|
import 'dart/package_map.dart';
|
||||||
|
import 'dart/pub.dart';
|
||||||
import 'features.dart';
|
import 'features.dart';
|
||||||
import 'globals.dart' as globals;
|
import 'globals.dart' as globals;
|
||||||
import 'macos/darwin_dependency_management.dart';
|
import 'macos/darwin_dependency_management.dart';
|
||||||
@ -128,9 +129,9 @@ Future<List<Plugin>> findPlugins(
|
|||||||
devDependencies = <String>{};
|
devDependencies = <String>{};
|
||||||
} else {
|
} else {
|
||||||
devDependencies = await computeExclusiveDevDependencies(
|
devDependencies = await computeExclusiveDevDependencies(
|
||||||
globals.processManager,
|
pub,
|
||||||
logger: globals.logger,
|
logger: globals.logger,
|
||||||
projectPath: project.directory.path,
|
project: project,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
for (final Package package in packageConfig.packages) {
|
for (final Package package in packageConfig.packages) {
|
||||||
|
@ -17,6 +17,7 @@ import 'package:flutter_tools/src/build_system/build_system.dart';
|
|||||||
import 'package:flutter_tools/src/cache.dart';
|
import 'package:flutter_tools/src/cache.dart';
|
||||||
import 'package:flutter_tools/src/commands/build.dart';
|
import 'package:flutter_tools/src/commands/build.dart';
|
||||||
import 'package:flutter_tools/src/commands/build_ios.dart';
|
import 'package:flutter_tools/src/commands/build_ios.dart';
|
||||||
|
import 'package:flutter_tools/src/dart/pub.dart';
|
||||||
import 'package:flutter_tools/src/ios/code_signing.dart';
|
import 'package:flutter_tools/src/ios/code_signing.dart';
|
||||||
import 'package:flutter_tools/src/ios/mac.dart';
|
import 'package:flutter_tools/src/ios/mac.dart';
|
||||||
import 'package:flutter_tools/src/ios/plist_parser.dart';
|
import 'package:flutter_tools/src/ios/plist_parser.dart';
|
||||||
@ -28,6 +29,7 @@ import 'package:unified_analytics/unified_analytics.dart';
|
|||||||
import '../../general.shard/ios/xcresult_test_data.dart';
|
import '../../general.shard/ios/xcresult_test_data.dart';
|
||||||
import '../../src/common.dart';
|
import '../../src/common.dart';
|
||||||
import '../../src/context.dart';
|
import '../../src/context.dart';
|
||||||
|
import '../../src/fake_pub_deps.dart';
|
||||||
import '../../src/fakes.dart';
|
import '../../src/fakes.dart';
|
||||||
import '../../src/test_build_system.dart';
|
import '../../src/test_build_system.dart';
|
||||||
import '../../src/test_flutter_command_runner.dart';
|
import '../../src/test_flutter_command_runner.dart';
|
||||||
@ -114,13 +116,6 @@ void main() {
|
|||||||
'xattr', '-r', '-d', 'com.apple.FinderInfo', '/',
|
'xattr', '-r', '-d', 'com.apple.FinderInfo', '/',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const FakeCommand dartPubDepsCommand = FakeCommand(command: <String>[
|
|
||||||
'dart',
|
|
||||||
'pub',
|
|
||||||
'deps',
|
|
||||||
'--json',
|
|
||||||
]);
|
|
||||||
|
|
||||||
FakeCommand setUpRsyncCommand({void Function(List<String> command)? onRun}) {
|
FakeCommand setUpRsyncCommand({void Function(List<String> command)? onRun}) {
|
||||||
return FakeCommand(
|
return FakeCommand(
|
||||||
command: const <String>[
|
command: const <String>[
|
||||||
@ -305,9 +300,9 @@ void main() {
|
|||||||
expect(testLogger.statusText, contains(RegExp(r'✓ Built build/ios/iphoneos/Runner\.app \(\d+\.\d+MB\)')));
|
expect(testLogger.statusText, contains(RegExp(r'✓ Built build/ios/iphoneos/Runner\.app \(\d+\.\d+MB\)')));
|
||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
ProcessManager: () => FakeProcessManager.list(<FakeCommand>[
|
ProcessManager: () => FakeProcessManager.list(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(onRun: (_) {
|
setUpFakeXcodeBuildHandler(onRun: (_) {
|
||||||
fileSystem.directory('build/ios/Release-iphoneos/Runner.app').createSync(recursive: true);
|
fileSystem.directory('build/ios/Release-iphoneos/Runner.app').createSync(recursive: true);
|
||||||
}),
|
}),
|
||||||
@ -331,7 +326,6 @@ void main() {
|
|||||||
|
|
||||||
processManager.addCommands(<FakeCommand>[
|
processManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(onRun: (_) {
|
setUpFakeXcodeBuildHandler(onRun: (_) {
|
||||||
fileSystem.directory('build/ios/Release-iphoneos/Runner.app').createSync(recursive: true);
|
fileSystem.directory('build/ios/Release-iphoneos/Runner.app').createSync(recursive: true);
|
||||||
}),
|
}),
|
||||||
@ -345,6 +339,7 @@ void main() {
|
|||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
ProcessManager: () => processManager,
|
ProcessManager: () => processManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
@ -369,7 +364,6 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
ProcessManager: () => FakeProcessManager.list(<FakeCommand>[
|
ProcessManager: () => FakeProcessManager.list(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(
|
setUpFakeXcodeBuildHandler(
|
||||||
disablePortPublication: true,
|
disablePortPublication: true,
|
||||||
onRun: (_) {
|
onRun: (_) {
|
||||||
@ -378,6 +372,7 @@ void main() {
|
|||||||
),
|
),
|
||||||
setUpRsyncCommand(),
|
setUpRsyncCommand(),
|
||||||
]),
|
]),
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
@ -402,7 +397,6 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
ProcessManager: () => FakeProcessManager.list(<FakeCommand>[
|
ProcessManager: () => FakeProcessManager.list(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(
|
setUpFakeXcodeBuildHandler(
|
||||||
onRun: (_) {
|
onRun: (_) {
|
||||||
fileSystem.directory('build/ios/Release-iphoneos/Runner.app').createSync(recursive: true);
|
fileSystem.directory('build/ios/Release-iphoneos/Runner.app').createSync(recursive: true);
|
||||||
@ -410,6 +404,7 @@ void main() {
|
|||||||
),
|
),
|
||||||
setUpRsyncCommand(),
|
setUpRsyncCommand(),
|
||||||
]),
|
]),
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
@ -427,7 +422,6 @@ void main() {
|
|||||||
|
|
||||||
processManager.addCommands(<FakeCommand>[
|
processManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(customNaming: true, onRun: (_) {
|
setUpFakeXcodeBuildHandler(customNaming: true, onRun: (_) {
|
||||||
fileSystem.directory('build/ios/Release-iphoneos/Runner.app').createSync(recursive: true);
|
fileSystem.directory('build/ios/Release-iphoneos/Runner.app').createSync(recursive: true);
|
||||||
}),
|
}),
|
||||||
@ -446,6 +440,7 @@ void main() {
|
|||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
ProcessManager: () => processManager,
|
ProcessManager: () => processManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
@ -462,7 +457,6 @@ void main() {
|
|||||||
);
|
);
|
||||||
processManager.addCommands(<FakeCommand>[
|
processManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(deviceId: '1234', onRun: (_) {
|
setUpFakeXcodeBuildHandler(deviceId: '1234', onRun: (_) {
|
||||||
fileSystem.directory('build/ios/Release-iphoneos/Runner.app').createSync(recursive: true);
|
fileSystem.directory('build/ios/Release-iphoneos/Runner.app').createSync(recursive: true);
|
||||||
}),
|
}),
|
||||||
@ -477,6 +471,7 @@ void main() {
|
|||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
ProcessManager: () => processManager,
|
ProcessManager: () => processManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
@ -493,7 +488,6 @@ void main() {
|
|||||||
);
|
);
|
||||||
processManager.addCommands(<FakeCommand>[
|
processManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(simulator: true, onRun: (_) {
|
setUpFakeXcodeBuildHandler(simulator: true, onRun: (_) {
|
||||||
fileSystem.directory('build/ios/Debug-iphonesimulator/Runner.app').createSync(recursive: true);
|
fileSystem.directory('build/ios/Debug-iphonesimulator/Runner.app').createSync(recursive: true);
|
||||||
}),
|
}),
|
||||||
@ -507,6 +501,7 @@ void main() {
|
|||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
ProcessManager: () => processManager,
|
ProcessManager: () => processManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
@ -524,7 +519,6 @@ void main() {
|
|||||||
createMinimalMockProjectFiles();
|
createMinimalMockProjectFiles();
|
||||||
processManager.addCommands(<FakeCommand>[
|
processManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(verbose: true, onRun: (_) {
|
setUpFakeXcodeBuildHandler(verbose: true, onRun: (_) {
|
||||||
fileSystem.directory('build/ios/Release-iphoneos/Runner.app').createSync(recursive: true);
|
fileSystem.directory('build/ios/Release-iphoneos/Runner.app').createSync(recursive: true);
|
||||||
}),
|
}),
|
||||||
@ -537,6 +531,7 @@ void main() {
|
|||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
ProcessManager: () => processManager,
|
ProcessManager: () => processManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
@ -553,7 +548,6 @@ void main() {
|
|||||||
);
|
);
|
||||||
processManager.addCommands(<FakeCommand>[
|
processManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(onRun: (_) {
|
setUpFakeXcodeBuildHandler(onRun: (_) {
|
||||||
fileSystem.directory('build/ios/Release-iphoneos/Runner.app').createSync(recursive: true);
|
fileSystem.directory('build/ios/Release-iphoneos/Runner.app').createSync(recursive: true);
|
||||||
fileSystem.file('build/flutter_size_01/snapshot.arm64.json')
|
fileSystem.file('build/flutter_size_01/snapshot.arm64.json')
|
||||||
@ -591,6 +585,7 @@ void main() {
|
|||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => processManager,
|
ProcessManager: () => processManager,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
FileSystemUtils: () => FileSystemUtils(fileSystem: fileSystem, platform: macosPlatform),
|
FileSystemUtils: () => FileSystemUtils(fileSystem: fileSystem, platform: macosPlatform),
|
||||||
Analytics: () => fakeAnalytics,
|
Analytics: () => fakeAnalytics,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
@ -640,7 +635,6 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
ProcessManager: () => FakeProcessManager.list(<FakeCommand>[
|
ProcessManager: () => FakeProcessManager.list(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(onRun: (_) {
|
setUpFakeXcodeBuildHandler(onRun: (_) {
|
||||||
fileSystem.directory('build/ios/Release-iphoneos/Runner.app')
|
fileSystem.directory('build/ios/Release-iphoneos/Runner.app')
|
||||||
.createSync(recursive: true);
|
.createSync(recursive: true);
|
||||||
@ -656,6 +650,7 @@ void main() {
|
|||||||
platform: macosPlatform,
|
platform: macosPlatform,
|
||||||
),
|
),
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Analytics: () => fakeAnalytics,
|
Analytics: () => fakeAnalytics,
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -695,7 +690,6 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
ProcessManager: () => FakeProcessManager.list(<FakeCommand>[
|
ProcessManager: () => FakeProcessManager.list(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(onRun: (_) {
|
setUpFakeXcodeBuildHandler(onRun: (_) {
|
||||||
fileSystem.directory('build/ios/Release-iphoneos/Runner.app')
|
fileSystem.directory('build/ios/Release-iphoneos/Runner.app')
|
||||||
.createSync(recursive: true);
|
.createSync(recursive: true);
|
||||||
@ -722,6 +716,7 @@ void main() {
|
|||||||
plutilCommand, plutilCommand, plutilCommand,
|
plutilCommand, plutilCommand, plutilCommand,
|
||||||
]),
|
]),
|
||||||
),
|
),
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Analytics: () => fakeAnalytics,
|
Analytics: () => fakeAnalytics,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -739,7 +734,6 @@ void main() {
|
|||||||
);
|
);
|
||||||
processManager.addCommands(<FakeCommand>[
|
processManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(exitCode: 1, onRun: (_) {
|
setUpFakeXcodeBuildHandler(exitCode: 1, onRun: (_) {
|
||||||
fileSystem.systemTempDirectory.childDirectory(_xcBundleDirectoryPath).createSync();
|
fileSystem.systemTempDirectory.childDirectory(_xcBundleDirectoryPath).createSync();
|
||||||
}),
|
}),
|
||||||
@ -759,6 +753,7 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => processManager,
|
ProcessManager: () => processManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
@ -775,7 +770,6 @@ void main() {
|
|||||||
);
|
);
|
||||||
processManager.addCommands(<FakeCommand>[
|
processManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(exitCode: 1, onRun: (_) {
|
setUpFakeXcodeBuildHandler(exitCode: 1, onRun: (_) {
|
||||||
fileSystem.systemTempDirectory.childDirectory(_xcBundleDirectoryPath).createSync();
|
fileSystem.systemTempDirectory.childDirectory(_xcBundleDirectoryPath).createSync();
|
||||||
}, stdout: 'Lots of spew from Xcode',
|
}, stdout: 'Lots of spew from Xcode',
|
||||||
@ -799,6 +793,7 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => processManager,
|
ProcessManager: () => processManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
@ -815,7 +810,6 @@ void main() {
|
|||||||
);
|
);
|
||||||
processManager.addCommands(<FakeCommand>[
|
processManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(exitCode: 1, onRun: (_) {
|
setUpFakeXcodeBuildHandler(exitCode: 1, onRun: (_) {
|
||||||
fileSystem.systemTempDirectory.childDirectory(_xcBundleDirectoryPath).createSync();
|
fileSystem.systemTempDirectory.childDirectory(_xcBundleDirectoryPath).createSync();
|
||||||
}),
|
}),
|
||||||
@ -838,6 +832,7 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => processManager,
|
ProcessManager: () => processManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
@ -854,7 +849,6 @@ void main() {
|
|||||||
);
|
);
|
||||||
processManager.addCommands(<FakeCommand>[
|
processManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(exitCode: 1),
|
setUpFakeXcodeBuildHandler(exitCode: 1),
|
||||||
setUpXCResultCommand(stdout: kSampleResultJsonWithIssues),
|
setUpXCResultCommand(stdout: kSampleResultJsonWithIssues),
|
||||||
setUpRsyncCommand(),
|
setUpRsyncCommand(),
|
||||||
@ -871,6 +865,7 @@ void main() {
|
|||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
ProcessManager: () => processManager,
|
ProcessManager: () => processManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
@ -887,7 +882,6 @@ void main() {
|
|||||||
);
|
);
|
||||||
processManager.addCommands(<FakeCommand>[
|
processManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(exitCode: 1, onRun: (_) {
|
setUpFakeXcodeBuildHandler(exitCode: 1, onRun: (_) {
|
||||||
fileSystem.systemTempDirectory.childDirectory(_xcBundleDirectoryPath).createSync();
|
fileSystem.systemTempDirectory.childDirectory(_xcBundleDirectoryPath).createSync();
|
||||||
}),
|
}),
|
||||||
@ -911,6 +905,7 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => processManager,
|
ProcessManager: () => processManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
@ -927,7 +922,6 @@ void main() {
|
|||||||
);
|
);
|
||||||
processManager.addCommands(<FakeCommand>[
|
processManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(
|
setUpFakeXcodeBuildHandler(
|
||||||
exitCode: 1,
|
exitCode: 1,
|
||||||
onRun: (_) {
|
onRun: (_) {
|
||||||
@ -951,6 +945,7 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => processManager,
|
ProcessManager: () => processManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
@ -967,7 +962,6 @@ void main() {
|
|||||||
);
|
);
|
||||||
processManager.addCommands(<FakeCommand>[
|
processManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(exitCode: 1, onRun: (_) {
|
setUpFakeXcodeBuildHandler(exitCode: 1, onRun: (_) {
|
||||||
fileSystem.systemTempDirectory.childDirectory(_xcBundleDirectoryPath).createSync();
|
fileSystem.systemTempDirectory.childDirectory(_xcBundleDirectoryPath).createSync();
|
||||||
}),
|
}),
|
||||||
@ -987,6 +981,7 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => processManager,
|
ProcessManager: () => processManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
@ -1003,7 +998,6 @@ void main() {
|
|||||||
);
|
);
|
||||||
processManager.addCommands(<FakeCommand>[
|
processManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
// Intentionally fail the first xcodebuild command with concurrent run failure message.
|
// Intentionally fail the first xcodebuild command with concurrent run failure message.
|
||||||
setUpFakeXcodeBuildHandler(
|
setUpFakeXcodeBuildHandler(
|
||||||
exitCode: 1,
|
exitCode: 1,
|
||||||
@ -1035,6 +1029,7 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => processManager,
|
ProcessManager: () => processManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
@ -1051,7 +1046,6 @@ void main() {
|
|||||||
);
|
);
|
||||||
processManager.addCommands(<FakeCommand>[
|
processManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(
|
setUpFakeXcodeBuildHandler(
|
||||||
exitCode: 1,
|
exitCode: 1,
|
||||||
stdout: '''
|
stdout: '''
|
||||||
@ -1077,6 +1071,7 @@ Runner requires a provisioning profile. Select a provisioning profile in the Sig
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => processManager,
|
ProcessManager: () => processManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
@ -1093,7 +1088,6 @@ Runner requires a provisioning profile. Select a provisioning profile in the Sig
|
|||||||
);
|
);
|
||||||
processManager.addCommands(<FakeCommand>[
|
processManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(
|
setUpFakeXcodeBuildHandler(
|
||||||
exitCode: 1,
|
exitCode: 1,
|
||||||
onRun: (_) {
|
onRun: (_) {
|
||||||
@ -1116,6 +1110,7 @@ Runner requires a provisioning profile. Select a provisioning profile in the Sig
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => processManager,
|
ProcessManager: () => processManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(developmentTeam: null),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(developmentTeam: null),
|
||||||
});
|
});
|
||||||
@ -1143,7 +1138,6 @@ Runner requires a provisioning profile. Select a provisioning profile in the Sig
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
ProcessManager: () => FakeProcessManager.list(<FakeCommand>[
|
ProcessManager: () => FakeProcessManager.list(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(
|
setUpFakeXcodeBuildHandler(
|
||||||
exitCode: 1,
|
exitCode: 1,
|
||||||
stdout: '''
|
stdout: '''
|
||||||
@ -1156,6 +1150,7 @@ Runner requires a provisioning profile. Select a provisioning profile in the Sig
|
|||||||
setUpXCResultCommand(stdout: kSampleResultJsonNoIssues),
|
setUpXCResultCommand(stdout: kSampleResultJsonNoIssues),
|
||||||
setUpRsyncCommand(),
|
setUpRsyncCommand(),
|
||||||
]),
|
]),
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
EnvironmentType: () => EnvironmentType.physical,
|
EnvironmentType: () => EnvironmentType.physical,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
@ -1173,7 +1168,6 @@ Runner requires a provisioning profile. Select a provisioning profile in the Sig
|
|||||||
);
|
);
|
||||||
processManager.addCommands(<FakeCommand>[
|
processManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(
|
setUpFakeXcodeBuildHandler(
|
||||||
exitCode: 1,
|
exitCode: 1,
|
||||||
onRun: (_) {
|
onRun: (_) {
|
||||||
@ -1195,6 +1189,7 @@ Runner requires a provisioning profile. Select a provisioning profile in the Sig
|
|||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
ProcessManager: () => processManager,
|
ProcessManager: () => processManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(developmentTeam: null),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(developmentTeam: null),
|
||||||
});
|
});
|
||||||
@ -1211,7 +1206,6 @@ Runner requires a provisioning profile. Select a provisioning profile in the Sig
|
|||||||
);
|
);
|
||||||
processManager.addCommands(<FakeCommand>[
|
processManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(
|
setUpFakeXcodeBuildHandler(
|
||||||
exitCode: 1,
|
exitCode: 1,
|
||||||
onRun: (_) {
|
onRun: (_) {
|
||||||
@ -1235,6 +1229,7 @@ Runner requires a provisioning profile. Select a provisioning profile in the Sig
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => processManager,
|
ProcessManager: () => processManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(developmentTeam: null),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(developmentTeam: null),
|
||||||
});
|
});
|
||||||
@ -1251,7 +1246,6 @@ Runner requires a provisioning profile. Select a provisioning profile in the Sig
|
|||||||
);
|
);
|
||||||
processManager.addCommands(<FakeCommand>[
|
processManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(
|
setUpFakeXcodeBuildHandler(
|
||||||
exitCode: 1,
|
exitCode: 1,
|
||||||
onRun: (_) {
|
onRun: (_) {
|
||||||
@ -1275,6 +1269,7 @@ Runner requires a provisioning profile. Select a provisioning profile in the Sig
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => processManager,
|
ProcessManager: () => processManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(developmentTeam: null),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(developmentTeam: null),
|
||||||
});
|
});
|
||||||
@ -1293,7 +1288,6 @@ Runner requires a provisioning profile. Select a provisioning profile in the Sig
|
|||||||
);
|
);
|
||||||
processManager.addCommands(<FakeCommand>[
|
processManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(
|
setUpFakeXcodeBuildHandler(
|
||||||
simulator: true,
|
simulator: true,
|
||||||
exitCode: 1,
|
exitCode: 1,
|
||||||
@ -1317,6 +1311,7 @@ Runner requires a provisioning profile. Select a provisioning profile in the Sig
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => processManager,
|
ProcessManager: () => processManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
@ -1333,7 +1328,6 @@ Runner requires a provisioning profile. Select a provisioning profile in the Sig
|
|||||||
);
|
);
|
||||||
processManager.addCommands(<FakeCommand>[
|
processManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(
|
setUpFakeXcodeBuildHandler(
|
||||||
simulator: true,
|
simulator: true,
|
||||||
exitCode: 1,
|
exitCode: 1,
|
||||||
@ -1358,6 +1352,7 @@ Runner requires a provisioning profile. Select a provisioning profile in the Sig
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => processManager,
|
ProcessManager: () => processManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
@ -1375,7 +1370,6 @@ Runner requires a provisioning profile. Select a provisioning profile in the Sig
|
|||||||
|
|
||||||
processManager.addCommands(<FakeCommand>[
|
processManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(
|
setUpFakeXcodeBuildHandler(
|
||||||
simulator: true,
|
simulator: true,
|
||||||
exitCode: 1,
|
exitCode: 1,
|
||||||
@ -1402,6 +1396,7 @@ Runner requires a provisioning profile. Select a provisioning profile in the Sig
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => processManager,
|
ProcessManager: () => processManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
@ -1418,7 +1413,6 @@ Runner requires a provisioning profile. Select a provisioning profile in the Sig
|
|||||||
);
|
);
|
||||||
processManager.addCommands(<FakeCommand>[
|
processManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(
|
setUpFakeXcodeBuildHandler(
|
||||||
simulator: true,
|
simulator: true,
|
||||||
exitCode: 1,
|
exitCode: 1,
|
||||||
@ -1439,6 +1433,7 @@ Runner requires a provisioning profile. Select a provisioning profile in the Sig
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => processManager,
|
ProcessManager: () => processManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
|
@ -16,6 +16,7 @@ import 'package:flutter_tools/src/build_system/build_system.dart';
|
|||||||
import 'package:flutter_tools/src/cache.dart';
|
import 'package:flutter_tools/src/cache.dart';
|
||||||
import 'package:flutter_tools/src/commands/build.dart';
|
import 'package:flutter_tools/src/commands/build.dart';
|
||||||
import 'package:flutter_tools/src/commands/build_ios.dart';
|
import 'package:flutter_tools/src/commands/build_ios.dart';
|
||||||
|
import 'package:flutter_tools/src/dart/pub.dart';
|
||||||
import 'package:flutter_tools/src/ios/plist_parser.dart';
|
import 'package:flutter_tools/src/ios/plist_parser.dart';
|
||||||
import 'package:flutter_tools/src/ios/xcodeproj.dart';
|
import 'package:flutter_tools/src/ios/xcodeproj.dart';
|
||||||
import 'package:test/fake.dart';
|
import 'package:test/fake.dart';
|
||||||
@ -25,6 +26,7 @@ import '../../general.shard/ios/xcresult_test_data.dart';
|
|||||||
import '../../src/common.dart';
|
import '../../src/common.dart';
|
||||||
import '../../src/context.dart';
|
import '../../src/context.dart';
|
||||||
import '../../src/fake_process_manager.dart';
|
import '../../src/fake_process_manager.dart';
|
||||||
|
import '../../src/fake_pub_deps.dart';
|
||||||
import '../../src/fakes.dart';
|
import '../../src/fakes.dart';
|
||||||
import '../../src/test_build_system.dart';
|
import '../../src/test_build_system.dart';
|
||||||
import '../../src/test_flutter_command_runner.dart';
|
import '../../src/test_flutter_command_runner.dart';
|
||||||
@ -140,13 +142,6 @@ void main() {
|
|||||||
'xattr', '-r', '-d', 'com.apple.FinderInfo', '/',
|
'xattr', '-r', '-d', 'com.apple.FinderInfo', '/',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const FakeCommand dartPubDepsCommand = FakeCommand(command: <String>[
|
|
||||||
'dart',
|
|
||||||
'pub',
|
|
||||||
'deps',
|
|
||||||
'--json',
|
|
||||||
]);
|
|
||||||
|
|
||||||
FakeCommand setUpXCResultCommand({String stdout = '', void Function(List<String> command)? onRun}) {
|
FakeCommand setUpXCResultCommand({String stdout = '', void Function(List<String> command)? onRun}) {
|
||||||
return FakeCommand(
|
return FakeCommand(
|
||||||
command: const <String>[
|
command: const <String>[
|
||||||
@ -405,7 +400,6 @@ void main() {
|
|||||||
);
|
);
|
||||||
fakeProcessManager.addCommands(<FakeCommand>[
|
fakeProcessManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(),
|
setUpFakeXcodeBuildHandler(),
|
||||||
exportArchiveCommand(exportOptionsPlist: _exportOptionsPlist),
|
exportArchiveCommand(exportOptionsPlist: _exportOptionsPlist),
|
||||||
]);
|
]);
|
||||||
@ -420,6 +414,7 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => fakeProcessManager,
|
ProcessManager: () => fakeProcessManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
@ -437,7 +432,6 @@ void main() {
|
|||||||
);
|
);
|
||||||
fakeProcessManager.addCommands(<FakeCommand>[
|
fakeProcessManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(),
|
setUpFakeXcodeBuildHandler(),
|
||||||
exportArchiveCommand(exportOptionsPlist: _exportOptionsPlist, cachePlist: cachedExportOptionsPlist),
|
exportArchiveCommand(exportOptionsPlist: _exportOptionsPlist, cachePlist: cachedExportOptionsPlist),
|
||||||
]);
|
]);
|
||||||
@ -467,6 +461,7 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => fakeProcessManager,
|
ProcessManager: () => fakeProcessManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(version: Version(15, 4, null)),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(version: Version(15, 4, null)),
|
||||||
});
|
});
|
||||||
@ -484,7 +479,6 @@ void main() {
|
|||||||
);
|
);
|
||||||
fakeProcessManager.addCommands(<FakeCommand>[
|
fakeProcessManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(),
|
setUpFakeXcodeBuildHandler(),
|
||||||
exportArchiveCommand(exportOptionsPlist: _exportOptionsPlist, cachePlist: cachedExportOptionsPlist),
|
exportArchiveCommand(exportOptionsPlist: _exportOptionsPlist, cachePlist: cachedExportOptionsPlist),
|
||||||
]);
|
]);
|
||||||
@ -514,6 +508,7 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => fakeProcessManager,
|
ProcessManager: () => fakeProcessManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(version: Version(15, 4, null)),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(version: Version(15, 4, null)),
|
||||||
});
|
});
|
||||||
@ -531,7 +526,6 @@ void main() {
|
|||||||
);
|
);
|
||||||
fakeProcessManager.addCommands(<FakeCommand>[
|
fakeProcessManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(),
|
setUpFakeXcodeBuildHandler(),
|
||||||
exportArchiveCommand(exportOptionsPlist: _exportOptionsPlist, cachePlist: cachedExportOptionsPlist),
|
exportArchiveCommand(exportOptionsPlist: _exportOptionsPlist, cachePlist: cachedExportOptionsPlist),
|
||||||
]);
|
]);
|
||||||
@ -561,6 +555,7 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => fakeProcessManager,
|
ProcessManager: () => fakeProcessManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(version: Version(15, 4, null)),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(version: Version(15, 4, null)),
|
||||||
});
|
});
|
||||||
@ -577,7 +572,6 @@ void main() {
|
|||||||
);
|
);
|
||||||
fakeProcessManager.addCommands(<FakeCommand>[
|
fakeProcessManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(),
|
setUpFakeXcodeBuildHandler(),
|
||||||
exportArchiveCommand(exportOptionsPlist: _exportOptionsPlist),
|
exportArchiveCommand(exportOptionsPlist: _exportOptionsPlist),
|
||||||
]);
|
]);
|
||||||
@ -590,6 +584,7 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => fakeProcessManager,
|
ProcessManager: () => fakeProcessManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(version: Version(15, 3, null)),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(version: Version(15, 3, null)),
|
||||||
});
|
});
|
||||||
@ -607,7 +602,6 @@ void main() {
|
|||||||
);
|
);
|
||||||
fakeProcessManager.addCommands(<FakeCommand>[
|
fakeProcessManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(),
|
setUpFakeXcodeBuildHandler(),
|
||||||
exportArchiveCommand(exportOptionsPlist: _exportOptionsPlist, cachePlist: cachedExportOptionsPlist),
|
exportArchiveCommand(exportOptionsPlist: _exportOptionsPlist, cachePlist: cachedExportOptionsPlist),
|
||||||
]);
|
]);
|
||||||
@ -637,6 +631,7 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => fakeProcessManager,
|
ProcessManager: () => fakeProcessManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(version: Version(15, 4, null)),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(version: Version(15, 4, null)),
|
||||||
});
|
});
|
||||||
@ -653,7 +648,6 @@ void main() {
|
|||||||
);
|
);
|
||||||
fakeProcessManager.addCommands(<FakeCommand>[
|
fakeProcessManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(),
|
setUpFakeXcodeBuildHandler(),
|
||||||
exportArchiveCommand(exportOptionsPlist: _exportOptionsPlist),
|
exportArchiveCommand(exportOptionsPlist: _exportOptionsPlist),
|
||||||
]);
|
]);
|
||||||
@ -666,6 +660,7 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => fakeProcessManager,
|
ProcessManager: () => fakeProcessManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(version: Version(15, 3, null)),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(version: Version(15, 3, null)),
|
||||||
});
|
});
|
||||||
@ -682,7 +677,6 @@ void main() {
|
|||||||
|
|
||||||
fakeProcessManager.addCommands(<FakeCommand>[
|
fakeProcessManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(),
|
setUpFakeXcodeBuildHandler(),
|
||||||
exportArchiveCommand(exportOptionsPlist: exportOptions.path),
|
exportArchiveCommand(exportOptionsPlist: exportOptions.path),
|
||||||
]);
|
]);
|
||||||
@ -705,6 +699,7 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => fakeProcessManager,
|
ProcessManager: () => fakeProcessManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
PlistParser: () => plistUtils,
|
PlistParser: () => plistUtils,
|
||||||
@ -722,7 +717,6 @@ void main() {
|
|||||||
);
|
);
|
||||||
fakeProcessManager.addCommands(<FakeCommand>[
|
fakeProcessManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(),
|
setUpFakeXcodeBuildHandler(),
|
||||||
const FakeCommand(
|
const FakeCommand(
|
||||||
command: <String>[
|
command: <String>[
|
||||||
@ -761,6 +755,7 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => fakeProcessManager,
|
ProcessManager: () => fakeProcessManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
@ -778,7 +773,6 @@ void main() {
|
|||||||
);
|
);
|
||||||
fakeProcessManager.addCommands(<FakeCommand>[
|
fakeProcessManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(),
|
setUpFakeXcodeBuildHandler(),
|
||||||
exportArchiveCommand(
|
exportArchiveCommand(
|
||||||
exportOptionsPlist: _exportOptionsPlist,
|
exportOptionsPlist: _exportOptionsPlist,
|
||||||
@ -796,6 +790,7 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => fakeProcessManager,
|
ProcessManager: () => fakeProcessManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
@ -813,7 +808,6 @@ void main() {
|
|||||||
);
|
);
|
||||||
fakeProcessManager.addCommands(<FakeCommand>[
|
fakeProcessManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(),
|
setUpFakeXcodeBuildHandler(),
|
||||||
exportArchiveCommand(exportOptionsPlist: _exportOptionsPlist, cachePlist: cachedExportOptionsPlist),
|
exportArchiveCommand(exportOptionsPlist: _exportOptionsPlist, cachePlist: cachedExportOptionsPlist),
|
||||||
]);
|
]);
|
||||||
@ -849,6 +843,7 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => fakeProcessManager,
|
ProcessManager: () => fakeProcessManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
@ -866,7 +861,6 @@ void main() {
|
|||||||
);
|
);
|
||||||
fakeProcessManager.addCommands(<FakeCommand>[
|
fakeProcessManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(),
|
setUpFakeXcodeBuildHandler(),
|
||||||
exportArchiveCommand(exportOptionsPlist: _exportOptionsPlist, cachePlist: cachedExportOptionsPlist),
|
exportArchiveCommand(exportOptionsPlist: _exportOptionsPlist, cachePlist: cachedExportOptionsPlist),
|
||||||
]);
|
]);
|
||||||
@ -902,6 +896,7 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => fakeProcessManager,
|
ProcessManager: () => fakeProcessManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
@ -919,7 +914,6 @@ void main() {
|
|||||||
);
|
);
|
||||||
fakeProcessManager.addCommands(<FakeCommand>[
|
fakeProcessManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(),
|
setUpFakeXcodeBuildHandler(),
|
||||||
exportArchiveCommand(exportOptionsPlist: _exportOptionsPlist, cachePlist: cachedExportOptionsPlist),
|
exportArchiveCommand(exportOptionsPlist: _exportOptionsPlist, cachePlist: cachedExportOptionsPlist),
|
||||||
]);
|
]);
|
||||||
@ -955,6 +949,7 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => fakeProcessManager,
|
ProcessManager: () => fakeProcessManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
@ -971,7 +966,6 @@ void main() {
|
|||||||
);
|
);
|
||||||
fakeProcessManager.addCommands(<FakeCommand>[
|
fakeProcessManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(verbose: true),
|
setUpFakeXcodeBuildHandler(verbose: true),
|
||||||
exportArchiveCommand(exportOptionsPlist: _exportOptionsPlist),
|
exportArchiveCommand(exportOptionsPlist: _exportOptionsPlist),
|
||||||
]);
|
]);
|
||||||
@ -985,6 +979,7 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => fakeProcessManager,
|
ProcessManager: () => fakeProcessManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
@ -1001,7 +996,6 @@ void main() {
|
|||||||
);
|
);
|
||||||
fakeProcessManager.addCommands(<FakeCommand>[
|
fakeProcessManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(),
|
setUpFakeXcodeBuildHandler(),
|
||||||
exportArchiveCommand(exportOptionsPlist: _exportOptionsPlist),
|
exportArchiveCommand(exportOptionsPlist: _exportOptionsPlist),
|
||||||
]);
|
]);
|
||||||
@ -1014,6 +1008,7 @@ void main() {
|
|||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
ProcessManager: () => fakeProcessManager,
|
ProcessManager: () => fakeProcessManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
@ -1030,7 +1025,6 @@ void main() {
|
|||||||
);
|
);
|
||||||
fakeProcessManager.addCommands(<FakeCommand>[
|
fakeProcessManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
const FakeCommand(
|
const FakeCommand(
|
||||||
command: <String>[
|
command: <String>[
|
||||||
'xcrun',
|
'xcrun',
|
||||||
@ -1067,6 +1061,7 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => fakeProcessManager,
|
ProcessManager: () => fakeProcessManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
@ -1083,7 +1078,6 @@ void main() {
|
|||||||
);
|
);
|
||||||
createMinimalMockProjectFiles();
|
createMinimalMockProjectFiles();
|
||||||
|
|
||||||
fakeProcessManager.addCommand(dartPubDepsCommand);
|
|
||||||
fakeProcessManager.addCommand(setUpFakeXcodeBuildHandler());
|
fakeProcessManager.addCommand(setUpFakeXcodeBuildHandler());
|
||||||
await expectToolExitLater(
|
await expectToolExitLater(
|
||||||
createTestCommandRunner(command).run(
|
createTestCommandRunner(command).run(
|
||||||
@ -1094,6 +1088,7 @@ void main() {
|
|||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
ProcessManager: () => fakeProcessManager,
|
ProcessManager: () => fakeProcessManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
@ -1115,7 +1110,6 @@ void main() {
|
|||||||
..writeAsBytesSync(List<int>.generate(10000, (int index) => 0));
|
..writeAsBytesSync(List<int>.generate(10000, (int index) => 0));
|
||||||
fakeProcessManager.addCommands(<FakeCommand>[
|
fakeProcessManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(onRun: (_) {
|
setUpFakeXcodeBuildHandler(onRun: (_) {
|
||||||
fileSystem.file('build/flutter_size_01/snapshot.arm64.json')
|
fileSystem.file('build/flutter_size_01/snapshot.arm64.json')
|
||||||
..createSync(recursive: true)
|
..createSync(recursive: true)
|
||||||
@ -1149,6 +1143,7 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => fakeProcessManager,
|
ProcessManager: () => fakeProcessManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
FileSystemUtils: () => FileSystemUtils(fileSystem: fileSystem, platform: macosPlatform),
|
FileSystemUtils: () => FileSystemUtils(fileSystem: fileSystem, platform: macosPlatform),
|
||||||
Analytics: () => fakeAnalytics,
|
Analytics: () => fakeAnalytics,
|
||||||
@ -1171,7 +1166,6 @@ void main() {
|
|||||||
);
|
);
|
||||||
fakeProcessManager.addCommands(<FakeCommand>[
|
fakeProcessManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(),
|
setUpFakeXcodeBuildHandler(),
|
||||||
exportArchiveCommand(),
|
exportArchiveCommand(),
|
||||||
]);
|
]);
|
||||||
@ -1193,6 +1187,7 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => fakeProcessManager,
|
ProcessManager: () => fakeProcessManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
@ -1209,7 +1204,6 @@ void main() {
|
|||||||
);
|
);
|
||||||
fakeProcessManager.addCommands(<FakeCommand>[
|
fakeProcessManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(exitCode: 1, onRun: (_) {
|
setUpFakeXcodeBuildHandler(exitCode: 1, onRun: (_) {
|
||||||
fileSystem.systemTempDirectory.childDirectory(_xcBundleFilePath).createSync();
|
fileSystem.systemTempDirectory.childDirectory(_xcBundleFilePath).createSync();
|
||||||
}),
|
}),
|
||||||
@ -1228,6 +1222,7 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => fakeProcessManager,
|
ProcessManager: () => fakeProcessManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
@ -1244,7 +1239,6 @@ void main() {
|
|||||||
);
|
);
|
||||||
fakeProcessManager.addCommands(<FakeCommand>[
|
fakeProcessManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(exitCode: 1, onRun: (_) {
|
setUpFakeXcodeBuildHandler(exitCode: 1, onRun: (_) {
|
||||||
fileSystem.systemTempDirectory.childDirectory(_xcBundleFilePath).createSync();
|
fileSystem.systemTempDirectory.childDirectory(_xcBundleFilePath).createSync();
|
||||||
}),
|
}),
|
||||||
@ -1264,6 +1258,7 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => fakeProcessManager,
|
ProcessManager: () => fakeProcessManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
@ -1280,7 +1275,6 @@ void main() {
|
|||||||
);
|
);
|
||||||
fakeProcessManager.addCommands(<FakeCommand>[
|
fakeProcessManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(exitCode: 1, onRun: (_) {
|
setUpFakeXcodeBuildHandler(exitCode: 1, onRun: (_) {
|
||||||
fileSystem.systemTempDirectory.childDirectory(_xcBundleFilePath).createSync();
|
fileSystem.systemTempDirectory.childDirectory(_xcBundleFilePath).createSync();
|
||||||
}),
|
}),
|
||||||
@ -1302,6 +1296,7 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => fakeProcessManager,
|
ProcessManager: () => fakeProcessManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
@ -1318,7 +1313,6 @@ void main() {
|
|||||||
);
|
);
|
||||||
fakeProcessManager.addCommands(<FakeCommand>[
|
fakeProcessManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(exitCode: 1),
|
setUpFakeXcodeBuildHandler(exitCode: 1),
|
||||||
]);
|
]);
|
||||||
createMinimalMockProjectFiles();
|
createMinimalMockProjectFiles();
|
||||||
@ -1334,6 +1328,7 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => fakeProcessManager,
|
ProcessManager: () => fakeProcessManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
@ -1351,7 +1346,6 @@ void main() {
|
|||||||
);
|
);
|
||||||
fakeProcessManager.addCommands(<FakeCommand>[
|
fakeProcessManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(exitCode: 1, onRun: (_) {
|
setUpFakeXcodeBuildHandler(exitCode: 1, onRun: (_) {
|
||||||
fileSystem.systemTempDirectory.childDirectory(_xcBundleFilePath).createSync();
|
fileSystem.systemTempDirectory.childDirectory(_xcBundleFilePath).createSync();
|
||||||
}),
|
}),
|
||||||
@ -1374,6 +1368,7 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => fakeProcessManager,
|
ProcessManager: () => fakeProcessManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
@ -1384,7 +1379,6 @@ void main() {
|
|||||||
const String plistPath = 'build/ios/archive/Runner.xcarchive/Products/Applications/Runner.app/Info.plist';
|
const String plistPath = 'build/ios/archive/Runner.xcarchive/Products/Applications/Runner.app/Info.plist';
|
||||||
fakeProcessManager.addCommands(<FakeCommand>[
|
fakeProcessManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(onRun: (_) {
|
setUpFakeXcodeBuildHandler(onRun: (_) {
|
||||||
fileSystem.file(plistPath).createSync(recursive: true);
|
fileSystem.file(plistPath).createSync(recursive: true);
|
||||||
}),
|
}),
|
||||||
@ -1428,6 +1422,7 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => fakeProcessManager,
|
ProcessManager: () => fakeProcessManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
PlistParser: () => plistUtils,
|
PlistParser: () => plistUtils,
|
||||||
@ -1438,7 +1433,6 @@ void main() {
|
|||||||
const String plistPath = 'build/ios/archive/Runner.xcarchive/Products/Applications/Runner.app/Info.plist';
|
const String plistPath = 'build/ios/archive/Runner.xcarchive/Products/Applications/Runner.app/Info.plist';
|
||||||
fakeProcessManager.addCommands(<FakeCommand>[
|
fakeProcessManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(onRun: (_) {
|
setUpFakeXcodeBuildHandler(onRun: (_) {
|
||||||
fileSystem.file(plistPath).createSync(recursive: true);
|
fileSystem.file(plistPath).createSync(recursive: true);
|
||||||
}),
|
}),
|
||||||
@ -1488,6 +1482,7 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => fakeProcessManager,
|
ProcessManager: () => fakeProcessManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
PlistParser: () => plistUtils,
|
PlistParser: () => plistUtils,
|
||||||
@ -1498,7 +1493,6 @@ void main() {
|
|||||||
const String plistPath = 'build/ios/archive/Runner.xcarchive/Products/Applications/Runner.app/Info.plist';
|
const String plistPath = 'build/ios/archive/Runner.xcarchive/Products/Applications/Runner.app/Info.plist';
|
||||||
fakeProcessManager.addCommands(<FakeCommand>[
|
fakeProcessManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(onRun: (_) {
|
setUpFakeXcodeBuildHandler(onRun: (_) {
|
||||||
fileSystem.file(plistPath).createSync(recursive: true);
|
fileSystem.file(plistPath).createSync(recursive: true);
|
||||||
}),
|
}),
|
||||||
@ -1547,6 +1541,7 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => fakeProcessManager,
|
ProcessManager: () => fakeProcessManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
PlistParser: () => plistUtils,
|
PlistParser: () => plistUtils,
|
||||||
@ -1558,7 +1553,6 @@ void main() {
|
|||||||
const String plistPath = 'build/ios/archive/Runner.xcarchive/Products/Applications/Runner.app/Info.plist';
|
const String plistPath = 'build/ios/archive/Runner.xcarchive/Products/Applications/Runner.app/Info.plist';
|
||||||
fakeProcessManager.addCommands(<FakeCommand>[
|
fakeProcessManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(onRun: (_) {
|
setUpFakeXcodeBuildHandler(onRun: (_) {
|
||||||
fileSystem.file(plistPath).createSync(recursive: true);
|
fileSystem.file(plistPath).createSync(recursive: true);
|
||||||
}),
|
}),
|
||||||
@ -1592,6 +1586,7 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => fakeProcessManager,
|
ProcessManager: () => fakeProcessManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
PlistParser: () => plistUtils,
|
PlistParser: () => plistUtils,
|
||||||
@ -1602,7 +1597,6 @@ void main() {
|
|||||||
const String plistPath = 'build/ios/archive/Runner.xcarchive/Products/Applications/Runner.app/Info.plist';
|
const String plistPath = 'build/ios/archive/Runner.xcarchive/Products/Applications/Runner.app/Info.plist';
|
||||||
fakeProcessManager.addCommands(<FakeCommand>[
|
fakeProcessManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(onRun: (_) {
|
setUpFakeXcodeBuildHandler(onRun: (_) {
|
||||||
fileSystem.file(plistPath).createSync(recursive: true);
|
fileSystem.file(plistPath).createSync(recursive: true);
|
||||||
}),
|
}),
|
||||||
@ -1636,6 +1630,7 @@ void main() {
|
|||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => fakeProcessManager,
|
ProcessManager: () => fakeProcessManager,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
PlistParser: () => plistUtils,
|
PlistParser: () => plistUtils,
|
||||||
});
|
});
|
||||||
@ -1649,7 +1644,6 @@ void main() {
|
|||||||
|
|
||||||
fakeProcessManager.addCommands(<FakeCommand>[
|
fakeProcessManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(onRun: (_) {
|
setUpFakeXcodeBuildHandler(onRun: (_) {
|
||||||
fileSystem.file(templateIconContentsJsonPath)
|
fileSystem.file(templateIconContentsJsonPath)
|
||||||
..createSync(recursive: true)
|
..createSync(recursive: true)
|
||||||
@ -1720,6 +1714,7 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => fakeProcessManager,
|
ProcessManager: () => fakeProcessManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
@ -1732,7 +1727,6 @@ void main() {
|
|||||||
|
|
||||||
fakeProcessManager.addCommands(<FakeCommand>[
|
fakeProcessManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(onRun: (_) {
|
setUpFakeXcodeBuildHandler(onRun: (_) {
|
||||||
fileSystem.file(templateIconContentsJsonPath)
|
fileSystem.file(templateIconContentsJsonPath)
|
||||||
..createSync(recursive: true)
|
..createSync(recursive: true)
|
||||||
@ -1803,6 +1797,7 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => fakeProcessManager,
|
ProcessManager: () => fakeProcessManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
@ -1813,7 +1808,6 @@ void main() {
|
|||||||
|
|
||||||
fakeProcessManager.addCommands(<FakeCommand>[
|
fakeProcessManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(onRun: (_) {
|
setUpFakeXcodeBuildHandler(onRun: (_) {
|
||||||
fileSystem.file(projectIconContentsJsonPath)
|
fileSystem.file(projectIconContentsJsonPath)
|
||||||
..createSync(recursive: true)
|
..createSync(recursive: true)
|
||||||
@ -1866,6 +1860,7 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => fakeProcessManager,
|
ProcessManager: () => fakeProcessManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
@ -1876,7 +1871,6 @@ void main() {
|
|||||||
|
|
||||||
fakeProcessManager.addCommands(<FakeCommand>[
|
fakeProcessManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(onRun: (_) {
|
setUpFakeXcodeBuildHandler(onRun: (_) {
|
||||||
fileSystem.file(projectIconContentsJsonPath)
|
fileSystem.file(projectIconContentsJsonPath)
|
||||||
..createSync(recursive: true)
|
..createSync(recursive: true)
|
||||||
@ -1930,6 +1924,7 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => fakeProcessManager,
|
ProcessManager: () => fakeProcessManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
@ -1940,7 +1935,6 @@ void main() {
|
|||||||
|
|
||||||
fakeProcessManager.addCommands(<FakeCommand>[
|
fakeProcessManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(onRun: (_) {
|
setUpFakeXcodeBuildHandler(onRun: (_) {
|
||||||
fileSystem.file(projectIconContentsJsonPath)
|
fileSystem.file(projectIconContentsJsonPath)
|
||||||
..createSync(recursive: true)
|
..createSync(recursive: true)
|
||||||
@ -1993,6 +1987,7 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => fakeProcessManager,
|
ProcessManager: () => fakeProcessManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
@ -2003,7 +1998,6 @@ void main() {
|
|||||||
|
|
||||||
fakeProcessManager.addCommands(<FakeCommand>[
|
fakeProcessManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(onRun: (_) {
|
setUpFakeXcodeBuildHandler(onRun: (_) {
|
||||||
// Uses unknown format version 123.
|
// Uses unknown format version 123.
|
||||||
fileSystem.file(projectIconContentsJsonPath)
|
fileSystem.file(projectIconContentsJsonPath)
|
||||||
@ -2059,6 +2053,7 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => fakeProcessManager,
|
ProcessManager: () => fakeProcessManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
@ -2076,7 +2071,6 @@ void main() {
|
|||||||
|
|
||||||
fakeProcessManager.addCommands(<FakeCommand>[
|
fakeProcessManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(onRun: (_) {
|
setUpFakeXcodeBuildHandler(onRun: (_) {
|
||||||
// The following json contains examples of:
|
// The following json contains examples of:
|
||||||
// - invalid size
|
// - invalid size
|
||||||
@ -2170,6 +2164,7 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => fakeProcessManager,
|
ProcessManager: () => fakeProcessManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
@ -2182,7 +2177,6 @@ void main() {
|
|||||||
|
|
||||||
fakeProcessManager.addCommands(<FakeCommand>[
|
fakeProcessManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(onRun: (_) {
|
setUpFakeXcodeBuildHandler(onRun: (_) {
|
||||||
fileSystem.file(templateLaunchImageContentsJsonPath)
|
fileSystem.file(templateLaunchImageContentsJsonPath)
|
||||||
..createSync(recursive: true)
|
..createSync(recursive: true)
|
||||||
@ -2251,6 +2245,7 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => fakeProcessManager,
|
ProcessManager: () => fakeProcessManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
@ -2264,7 +2259,6 @@ void main() {
|
|||||||
|
|
||||||
fakeProcessManager.addCommands(<FakeCommand>[
|
fakeProcessManager.addCommands(<FakeCommand>[
|
||||||
xattrCommand,
|
xattrCommand,
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(onRun: (_) {
|
setUpFakeXcodeBuildHandler(onRun: (_) {
|
||||||
fileSystem.file(templateLaunchImageContentsJsonPath)
|
fileSystem.file(templateLaunchImageContentsJsonPath)
|
||||||
..createSync(recursive: true)
|
..createSync(recursive: true)
|
||||||
@ -2333,6 +2327,7 @@ void main() {
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
ProcessManager: () => fakeProcessManager,
|
ProcessManager: () => fakeProcessManager,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
|
||||||
});
|
});
|
||||||
|
@ -17,6 +17,7 @@ import 'package:flutter_tools/src/build_system/build_system.dart';
|
|||||||
import 'package:flutter_tools/src/cache.dart';
|
import 'package:flutter_tools/src/cache.dart';
|
||||||
import 'package:flutter_tools/src/commands/build.dart';
|
import 'package:flutter_tools/src/commands/build.dart';
|
||||||
import 'package:flutter_tools/src/commands/build_macos.dart';
|
import 'package:flutter_tools/src/commands/build_macos.dart';
|
||||||
|
import 'package:flutter_tools/src/dart/pub.dart';
|
||||||
import 'package:flutter_tools/src/features.dart';
|
import 'package:flutter_tools/src/features.dart';
|
||||||
import 'package:flutter_tools/src/ios/xcodeproj.dart';
|
import 'package:flutter_tools/src/ios/xcodeproj.dart';
|
||||||
import 'package:flutter_tools/src/project.dart';
|
import 'package:flutter_tools/src/project.dart';
|
||||||
@ -25,6 +26,7 @@ import 'package:unified_analytics/unified_analytics.dart';
|
|||||||
import '../../src/common.dart';
|
import '../../src/common.dart';
|
||||||
import '../../src/context.dart';
|
import '../../src/context.dart';
|
||||||
import '../../src/fake_process_manager.dart';
|
import '../../src/fake_process_manager.dart';
|
||||||
|
import '../../src/fake_pub_deps.dart';
|
||||||
import '../../src/fakes.dart';
|
import '../../src/fakes.dart';
|
||||||
import '../../src/test_build_system.dart';
|
import '../../src/test_build_system.dart';
|
||||||
import '../../src/test_flutter_command_runner.dart';
|
import '../../src/test_flutter_command_runner.dart';
|
||||||
@ -105,13 +107,6 @@ void main() {
|
|||||||
createCoreMockProjectFiles();
|
createCoreMockProjectFiles();
|
||||||
}
|
}
|
||||||
|
|
||||||
const FakeCommand dartPubDepsCommand = FakeCommand(command: <String>[
|
|
||||||
'dart',
|
|
||||||
'pub',
|
|
||||||
'deps',
|
|
||||||
'--json',
|
|
||||||
]);
|
|
||||||
|
|
||||||
// Creates a FakeCommand for the xcodebuild call to build the app
|
// Creates a FakeCommand for the xcodebuild call to build the app
|
||||||
// in the given configuration.
|
// in the given configuration.
|
||||||
FakeCommand setUpFakeXcodeBuildHandler(
|
FakeCommand setUpFakeXcodeBuildHandler(
|
||||||
@ -225,6 +220,7 @@ STDERR STUFF
|
|||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
ProcessManager: () => FakeProcessManager.any(),
|
ProcessManager: () => FakeProcessManager.any(),
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true),
|
FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true),
|
||||||
Analytics: () => fakeAnalytics,
|
Analytics: () => fakeAnalytics,
|
||||||
});
|
});
|
||||||
@ -307,9 +303,9 @@ STDERR STUFF
|
|||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
ProcessManager: () => FakeProcessManager.list(<FakeCommand>[
|
ProcessManager: () => FakeProcessManager.list(<FakeCommand>[
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler('Debug'),
|
setUpFakeXcodeBuildHandler('Debug'),
|
||||||
]),
|
]),
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true),
|
FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true),
|
||||||
});
|
});
|
||||||
@ -333,10 +329,10 @@ STDERR STUFF
|
|||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
ProcessManager: () => FakeProcessManager.list(<FakeCommand>[
|
ProcessManager: () => FakeProcessManager.list(<FakeCommand>[
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler('Release'),
|
setUpFakeXcodeBuildHandler('Release'),
|
||||||
]),
|
]),
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true),
|
FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true),
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -358,10 +354,10 @@ STDERR STUFF
|
|||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
ProcessManager: () => FakeProcessManager.list(<FakeCommand>[
|
ProcessManager: () => FakeProcessManager.list(<FakeCommand>[
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler('Debug'),
|
setUpFakeXcodeBuildHandler('Debug'),
|
||||||
]),
|
]),
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true),
|
FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true),
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -383,10 +379,10 @@ STDERR STUFF
|
|||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
ProcessManager: () => FakeProcessManager.list(<FakeCommand>[
|
ProcessManager: () => FakeProcessManager.list(<FakeCommand>[
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler('Debug', verbose: true),
|
setUpFakeXcodeBuildHandler('Debug', verbose: true),
|
||||||
]),
|
]),
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true),
|
FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true),
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -409,10 +405,10 @@ STDERR STUFF
|
|||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
ProcessManager: () => FakeProcessManager.list(<FakeCommand>[
|
ProcessManager: () => FakeProcessManager.list(<FakeCommand>[
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler('Profile'),
|
setUpFakeXcodeBuildHandler('Profile'),
|
||||||
]),
|
]),
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithProfile(),
|
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithProfile(),
|
||||||
FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true),
|
FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true),
|
||||||
});
|
});
|
||||||
@ -435,10 +431,10 @@ STDERR STUFF
|
|||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
ProcessManager: () => FakeProcessManager.list(<FakeCommand>[
|
ProcessManager: () => FakeProcessManager.list(<FakeCommand>[
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler('Release'),
|
setUpFakeXcodeBuildHandler('Release'),
|
||||||
]),
|
]),
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true),
|
FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true),
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -499,10 +495,10 @@ STDERR STUFF
|
|||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
ProcessManager: () => FakeProcessManager.list(<FakeCommand>[
|
ProcessManager: () => FakeProcessManager.list(<FakeCommand>[
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler('Release'),
|
setUpFakeXcodeBuildHandler('Release'),
|
||||||
]),
|
]),
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true),
|
FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true),
|
||||||
Artifacts: () => Artifacts.test(),
|
Artifacts: () => Artifacts.test(),
|
||||||
});
|
});
|
||||||
@ -518,7 +514,6 @@ STDERR STUFF
|
|||||||
createMinimalMockProjectFiles();
|
createMinimalMockProjectFiles();
|
||||||
|
|
||||||
fakeProcessManager.addCommands(<FakeCommand>[
|
fakeProcessManager.addCommands(<FakeCommand>[
|
||||||
dartPubDepsCommand,
|
|
||||||
FakeCommand(
|
FakeCommand(
|
||||||
command: <String>[
|
command: <String>[
|
||||||
'/usr/bin/env',
|
'/usr/bin/env',
|
||||||
@ -557,6 +552,7 @@ STDERR STUFF
|
|||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
ProcessManager: () => fakeProcessManager,
|
ProcessManager: () => fakeProcessManager,
|
||||||
Platform: () => macosPlatformCustomEnv,
|
Platform: () => macosPlatformCustomEnv,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true),
|
FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true),
|
||||||
XcodeProjectInterpreter: () => xcodeProjectInterpreter,
|
XcodeProjectInterpreter: () => xcodeProjectInterpreter,
|
||||||
});
|
});
|
||||||
@ -592,10 +588,10 @@ STDERR STUFF
|
|||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
ProcessManager: () => FakeProcessManager.list(<FakeCommand>[
|
ProcessManager: () => FakeProcessManager.list(<FakeCommand>[
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler('Debug'),
|
setUpFakeXcodeBuildHandler('Debug'),
|
||||||
]),
|
]),
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true),
|
FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true),
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -664,11 +660,11 @@ STDERR STUFF
|
|||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
ProcessManager: () => FakeProcessManager.list(<FakeCommand>[
|
ProcessManager: () => FakeProcessManager.list(<FakeCommand>[
|
||||||
dartPubDepsCommand,
|
|
||||||
// we never generate code size snapshot here
|
// we never generate code size snapshot here
|
||||||
setUpFakeXcodeBuildHandler('Release'),
|
setUpFakeXcodeBuildHandler('Release'),
|
||||||
]),
|
]),
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true),
|
FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true),
|
||||||
FileSystemUtils: () => FileSystemUtils(fileSystem: fileSystem, platform: macosPlatform),
|
FileSystemUtils: () => FileSystemUtils(fileSystem: fileSystem, platform: macosPlatform),
|
||||||
Analytics: () => fakeAnalytics,
|
Analytics: () => fakeAnalytics,
|
||||||
@ -699,7 +695,6 @@ STDERR STUFF
|
|||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
ProcessManager: () => FakeProcessManager.list(<FakeCommand>[
|
ProcessManager: () => FakeProcessManager.list(<FakeCommand>[
|
||||||
dartPubDepsCommand,
|
|
||||||
// These are generated by gen_snapshot because flutter assemble passes
|
// These are generated by gen_snapshot because flutter assemble passes
|
||||||
// extra flags specifying this output path
|
// extra flags specifying this output path
|
||||||
setUpFakeXcodeBuildHandler('Release', onRun: (_) {
|
setUpFakeXcodeBuildHandler('Release', onRun: (_) {
|
||||||
@ -720,6 +715,7 @@ STDERR STUFF
|
|||||||
}),
|
}),
|
||||||
]),
|
]),
|
||||||
Platform: () => macosPlatform,
|
Platform: () => macosPlatform,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true),
|
FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true),
|
||||||
FileSystemUtils: () => FileSystemUtils(fileSystem: fileSystem, platform: macosPlatform),
|
FileSystemUtils: () => FileSystemUtils(fileSystem: fileSystem, platform: macosPlatform),
|
||||||
Analytics: () => fakeAnalytics,
|
Analytics: () => fakeAnalytics,
|
||||||
@ -771,7 +767,6 @@ STDERR STUFF
|
|||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
ProcessManager: () => FakeProcessManager.list(<FakeCommand>[
|
ProcessManager: () => FakeProcessManager.list(<FakeCommand>[
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(
|
setUpFakeXcodeBuildHandler(
|
||||||
'Debug',
|
'Debug',
|
||||||
additionalCommandArguements: <String>[
|
additionalCommandArguements: <String>[
|
||||||
@ -787,6 +782,7 @@ STDERR STUFF
|
|||||||
'LUCI_CI': 'True'
|
'LUCI_CI': 'True'
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true),
|
FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true),
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -840,7 +836,6 @@ STDERR STUFF
|
|||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
ProcessManager: () => FakeProcessManager.list(<FakeCommand>[
|
ProcessManager: () => FakeProcessManager.list(<FakeCommand>[
|
||||||
dartPubDepsCommand,
|
|
||||||
setUpFakeXcodeBuildHandler(
|
setUpFakeXcodeBuildHandler(
|
||||||
'Release',
|
'Release',
|
||||||
additionalCommandArguements: <String>[
|
additionalCommandArguements: <String>[
|
||||||
@ -856,6 +851,7 @@ STDERR STUFF
|
|||||||
'LUCI_CI': 'True'
|
'LUCI_CI': 'True'
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true),
|
FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -2,11 +2,21 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
|
import 'package:file/file.dart';
|
||||||
|
import 'package:file/memory.dart';
|
||||||
import 'package:flutter_tools/src/base/logger.dart';
|
import 'package:flutter_tools/src/base/logger.dart';
|
||||||
|
import 'package:flutter_tools/src/base/platform.dart';
|
||||||
|
import 'package:flutter_tools/src/cache.dart';
|
||||||
import 'package:flutter_tools/src/compute_dev_dependencies.dart';
|
import 'package:flutter_tools/src/compute_dev_dependencies.dart';
|
||||||
|
import 'package:flutter_tools/src/dart/pub.dart';
|
||||||
|
import 'package:flutter_tools/src/project.dart';
|
||||||
|
import 'package:flutter_tools/src/reporting/reporting.dart';
|
||||||
|
|
||||||
import '../src/common.dart';
|
import '../src/common.dart';
|
||||||
import '../src/fake_process_manager.dart';
|
import '../src/fake_process_manager.dart';
|
||||||
|
import '../src/fakes.dart';
|
||||||
|
|
||||||
|
const String _dartBin = 'bin/cache/dart-sdk/bin/dart';
|
||||||
|
|
||||||
// For all of these examples, imagine the following package structure:
|
// For all of these examples, imagine the following package structure:
|
||||||
//
|
//
|
||||||
@ -20,12 +30,29 @@ import '../src/fake_process_manager.dart';
|
|||||||
// /package_c
|
// /package_c
|
||||||
// pubspec.yaml
|
// pubspec.yaml
|
||||||
void main() {
|
void main() {
|
||||||
|
late FileSystem fileSystem;
|
||||||
|
late FlutterProject project;
|
||||||
late BufferLogger logger;
|
late BufferLogger logger;
|
||||||
|
|
||||||
setUp(() {
|
setUp(() {
|
||||||
|
Cache.flutterRoot = '';
|
||||||
|
fileSystem = MemoryFileSystem.test();
|
||||||
|
project = FlutterProject.fromDirectoryTest(fileSystem.currentDirectory);
|
||||||
logger = BufferLogger.test();
|
logger = BufferLogger.test();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Pub pub(ProcessManager processManager) {
|
||||||
|
return Pub.test(
|
||||||
|
fileSystem: fileSystem,
|
||||||
|
logger: logger,
|
||||||
|
processManager: processManager,
|
||||||
|
usage: TestUsage(),
|
||||||
|
platform: FakePlatform(),
|
||||||
|
botDetector: const FakeBotDetector(false),
|
||||||
|
stdio: FakeStdio(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
test('no dev dependencies at all', () async {
|
test('no dev dependencies at all', () async {
|
||||||
// Simulates the following:
|
// Simulates the following:
|
||||||
//
|
//
|
||||||
@ -38,7 +65,8 @@ void main() {
|
|||||||
// name: package_a
|
// name: package_a
|
||||||
// dependencies:
|
// dependencies:
|
||||||
// package_b:
|
// package_b:
|
||||||
final ProcessManager processes = _dartPubDepsReturns('''
|
final ProcessManager processes = _dartPubDepsReturns(
|
||||||
|
'''
|
||||||
{
|
{
|
||||||
"root": "my_app",
|
"root": "my_app",
|
||||||
"packages": [
|
"packages": [
|
||||||
@ -71,11 +99,13 @@ void main() {
|
|||||||
"directDependencies": []
|
"directDependencies": []
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}''');
|
}''',
|
||||||
|
project: project,
|
||||||
|
);
|
||||||
|
|
||||||
final Set<String> dependencies = await computeExclusiveDevDependencies(
|
final Set<String> dependencies = await computeExclusiveDevDependencies(
|
||||||
processes,
|
pub(processes),
|
||||||
projectPath: _fakeProjectPath,
|
project: project,
|
||||||
logger: logger,
|
logger: logger,
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -99,7 +129,8 @@ void main() {
|
|||||||
//
|
//
|
||||||
// # /package_a/pubspec.yaml
|
// # /package_a/pubspec.yaml
|
||||||
// name: package_a
|
// name: package_a
|
||||||
final ProcessManager processes = _dartPubDepsReturns('''
|
final ProcessManager processes = _dartPubDepsReturns(
|
||||||
|
'''
|
||||||
{
|
{
|
||||||
"root": "my_app",
|
"root": "my_app",
|
||||||
"packages": [
|
"packages": [
|
||||||
@ -130,11 +161,13 @@ void main() {
|
|||||||
"directDependencies": []
|
"directDependencies": []
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}''');
|
}''',
|
||||||
|
project: project,
|
||||||
|
);
|
||||||
|
|
||||||
final Set<String> dependencies = await computeExclusiveDevDependencies(
|
final Set<String> dependencies = await computeExclusiveDevDependencies(
|
||||||
processes,
|
pub(processes),
|
||||||
projectPath: _fakeProjectPath,
|
project: project,
|
||||||
logger: logger,
|
logger: logger,
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -160,7 +193,8 @@ void main() {
|
|||||||
// name: package_a
|
// name: package_a
|
||||||
// dependencies:
|
// dependencies:
|
||||||
// package_b:
|
// package_b:
|
||||||
final ProcessManager processes = _dartPubDepsReturns('''
|
final ProcessManager processes = _dartPubDepsReturns(
|
||||||
|
'''
|
||||||
{
|
{
|
||||||
"root": "my_app",
|
"root": "my_app",
|
||||||
"packages": [
|
"packages": [
|
||||||
@ -195,11 +229,13 @@ void main() {
|
|||||||
"directDependencies": []
|
"directDependencies": []
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}''');
|
}''',
|
||||||
|
project: project,
|
||||||
|
);
|
||||||
|
|
||||||
final Set<String> dependencies = await computeExclusiveDevDependencies(
|
final Set<String> dependencies = await computeExclusiveDevDependencies(
|
||||||
processes,
|
pub(processes),
|
||||||
projectPath: _fakeProjectPath,
|
project: project,
|
||||||
logger: logger,
|
logger: logger,
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -232,7 +268,8 @@ void main() {
|
|||||||
//
|
//
|
||||||
// # /package_c/pubspec.yaml
|
// # /package_c/pubspec.yaml
|
||||||
// name: package_c
|
// name: package_c
|
||||||
final ProcessManager processes = _dartPubDepsReturns('''
|
final ProcessManager processes = _dartPubDepsReturns(
|
||||||
|
'''
|
||||||
{
|
{
|
||||||
"root": "my_app",
|
"root": "my_app",
|
||||||
"packages": [
|
"packages": [
|
||||||
@ -278,11 +315,13 @@ void main() {
|
|||||||
"directDependencies": []
|
"directDependencies": []
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}''');
|
}''',
|
||||||
|
project: project,
|
||||||
|
);
|
||||||
|
|
||||||
final Set<String> dependencies = await computeExclusiveDevDependencies(
|
final Set<String> dependencies = await computeExclusiveDevDependencies(
|
||||||
processes,
|
pub(processes),
|
||||||
projectPath: _fakeProjectPath,
|
project: project,
|
||||||
logger: logger,
|
logger: logger,
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -293,7 +332,7 @@ void main() {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('omitted devDependencies in app package', () async {
|
test('omitted devDependencies in app package', () async {
|
||||||
// Simulates the following:
|
// Simulates the following:
|
||||||
//
|
//
|
||||||
// # /my_app/pubspec.yaml
|
// # /my_app/pubspec.yaml
|
||||||
@ -324,11 +363,13 @@ void main() {
|
|||||||
"directDependencies": []
|
"directDependencies": []
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}''');
|
}''',
|
||||||
|
project: project,
|
||||||
|
);
|
||||||
|
|
||||||
final Set<String> dependencies = await computeExclusiveDevDependencies(
|
final Set<String> dependencies = await computeExclusiveDevDependencies(
|
||||||
processes,
|
pub(processes),
|
||||||
projectPath: _fakeProjectPath,
|
project: project,
|
||||||
logger: logger,
|
logger: logger,
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -339,55 +380,9 @@ void main() {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('throws and logs on non-zero exit code', () async {
|
|
||||||
final ProcessManager processes = _dartPubDepsFails(
|
|
||||||
'Bad thing',
|
|
||||||
exitCode: 1,
|
|
||||||
);
|
|
||||||
|
|
||||||
await expectLater(
|
|
||||||
computeExclusiveDevDependencies(
|
|
||||||
processes,
|
|
||||||
projectPath: _fakeProjectPath,
|
|
||||||
logger: logger,
|
|
||||||
),
|
|
||||||
throwsA(
|
|
||||||
isA<StateError>().having(
|
|
||||||
(StateError e) => e.message,
|
|
||||||
'message',
|
|
||||||
contains('dart pub deps --json failed'),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
|
|
||||||
expect(logger.traceText, isEmpty);
|
|
||||||
});
|
|
||||||
|
|
||||||
test('throws and logs on unexpected output type', () async {
|
|
||||||
final ProcessManager processes = _dartPubDepsReturns(
|
|
||||||
'Not JSON haha!',
|
|
||||||
);
|
|
||||||
|
|
||||||
await expectLater(
|
|
||||||
computeExclusiveDevDependencies(
|
|
||||||
processes,
|
|
||||||
projectPath: _fakeProjectPath,
|
|
||||||
logger: logger,
|
|
||||||
),
|
|
||||||
throwsA(
|
|
||||||
isA<StateError>().having(
|
|
||||||
(StateError e) => e.message,
|
|
||||||
'message',
|
|
||||||
contains('dart pub deps --json had unexpected output'),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
|
|
||||||
expect(logger.traceText, contains('Not JSON haha'));
|
|
||||||
});
|
|
||||||
|
|
||||||
test('throws and logs on invalid JSON', () async {
|
test('throws and logs on invalid JSON', () async {
|
||||||
final ProcessManager processes = _dartPubDepsReturns('''
|
final ProcessManager processes = _dartPubDepsReturns(
|
||||||
|
'''
|
||||||
{
|
{
|
||||||
"root": "my_app",
|
"root": "my_app",
|
||||||
"packages": [
|
"packages": [
|
||||||
@ -420,12 +415,14 @@ void main() {
|
|||||||
"directDependencies": []
|
"directDependencies": []
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}''');
|
}''',
|
||||||
|
project: project,
|
||||||
|
);
|
||||||
|
|
||||||
await expectLater(
|
await expectLater(
|
||||||
computeExclusiveDevDependencies(
|
computeExclusiveDevDependencies(
|
||||||
processes,
|
pub(processes),
|
||||||
projectPath: _fakeProjectPath,
|
project: project,
|
||||||
logger: logger,
|
logger: logger,
|
||||||
),
|
),
|
||||||
throwsA(
|
throwsA(
|
||||||
@ -445,28 +442,21 @@ void main() {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
const String _fakeProjectPath = '/path/to/project';
|
ProcessManager _dartPubDepsReturns(
|
||||||
|
String dartPubDepsOutput, {
|
||||||
ProcessManager _dartPubDepsReturns(String dartPubDepsOutput) {
|
required FlutterProject project,
|
||||||
return FakeProcessManager.list(<FakeCommand>[
|
|
||||||
FakeCommand(
|
|
||||||
command: const <String>['dart', 'pub', 'deps', '--json'],
|
|
||||||
stdout: dartPubDepsOutput,
|
|
||||||
workingDirectory: _fakeProjectPath,
|
|
||||||
),
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
ProcessManager _dartPubDepsFails(
|
|
||||||
String dartPubDepsError, {
|
|
||||||
required int exitCode,
|
|
||||||
}) {
|
}) {
|
||||||
return FakeProcessManager.list(<FakeCommand>[
|
return FakeProcessManager.list(<FakeCommand>[
|
||||||
FakeCommand(
|
FakeCommand(
|
||||||
command: const <String>['dart', 'pub', 'deps', '--json'],
|
command: const <String>[
|
||||||
exitCode: exitCode,
|
_dartBin,
|
||||||
stderr: dartPubDepsError,
|
'pub',
|
||||||
workingDirectory: _fakeProjectPath,
|
'--suppress-analytics',
|
||||||
|
'deps',
|
||||||
|
'--json',
|
||||||
|
],
|
||||||
|
stdout: dartPubDepsOutput,
|
||||||
|
workingDirectory: project.directory.path,
|
||||||
),
|
),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,192 @@
|
|||||||
|
// Copyright 2014 The Flutter Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
// found in the LICENSE file.
|
||||||
|
|
||||||
|
import 'package:file/memory.dart';
|
||||||
|
import 'package:flutter_tools/src/base/logger.dart';
|
||||||
|
import 'package:flutter_tools/src/base/platform.dart';
|
||||||
|
import 'package:flutter_tools/src/cache.dart';
|
||||||
|
import 'package:flutter_tools/src/dart/pub.dart';
|
||||||
|
import 'package:flutter_tools/src/project.dart';
|
||||||
|
import 'package:flutter_tools/src/reporting/reporting.dart';
|
||||||
|
|
||||||
|
import '../../src/common.dart';
|
||||||
|
import '../../src/fake_process_manager.dart';
|
||||||
|
import '../../src/fakes.dart';
|
||||||
|
|
||||||
|
const String _dartBin = 'bin/cache/dart-sdk/bin/dart';
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
setUpAll(() {
|
||||||
|
Cache.flutterRoot = '';
|
||||||
|
});
|
||||||
|
|
||||||
|
testWithoutContext('throws a tool exit if pub cannot be run', () async {
|
||||||
|
final FakeProcessManager processManager = FakeProcessManager.empty();
|
||||||
|
final BufferLogger logger = BufferLogger.test();
|
||||||
|
final MemoryFileSystem fileSystem = MemoryFileSystem.test();
|
||||||
|
|
||||||
|
processManager.excludedExecutables.add(_dartBin);
|
||||||
|
fileSystem.file('pubspec.yaml').createSync();
|
||||||
|
|
||||||
|
final Pub pub = Pub.test(
|
||||||
|
fileSystem: fileSystem,
|
||||||
|
logger: logger,
|
||||||
|
processManager: processManager,
|
||||||
|
usage: TestUsage(),
|
||||||
|
platform: FakePlatform(),
|
||||||
|
botDetector: const FakeBotDetector(false),
|
||||||
|
stdio: FakeStdio(),
|
||||||
|
);
|
||||||
|
|
||||||
|
await expectLater(
|
||||||
|
() => pub.deps(
|
||||||
|
FlutterProject.fromDirectoryTest(fileSystem.currentDirectory),
|
||||||
|
),
|
||||||
|
throwsToolExit(
|
||||||
|
message: 'Your Flutter SDK download may be corrupt',
|
||||||
|
),
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
testWithoutContext('fails on non-zero exit code', () async {
|
||||||
|
final BufferLogger logger = BufferLogger.test();
|
||||||
|
final MemoryFileSystem fileSystem = MemoryFileSystem.test();
|
||||||
|
final ProcessManager processManager = _dartPubDepsFails(
|
||||||
|
'Bad thing',
|
||||||
|
project: FlutterProject.fromDirectoryTest(fileSystem.currentDirectory),
|
||||||
|
exitCode: 1,
|
||||||
|
);
|
||||||
|
|
||||||
|
final Pub pub = Pub.test(
|
||||||
|
fileSystem: fileSystem,
|
||||||
|
logger: logger,
|
||||||
|
processManager: processManager,
|
||||||
|
usage: TestUsage(),
|
||||||
|
platform: FakePlatform(),
|
||||||
|
botDetector: const FakeBotDetector(false),
|
||||||
|
stdio: FakeStdio(),
|
||||||
|
);
|
||||||
|
|
||||||
|
await expectLater(
|
||||||
|
() => pub.deps(
|
||||||
|
FlutterProject.fromDirectoryTest(fileSystem.currentDirectory),
|
||||||
|
),
|
||||||
|
throwsA(
|
||||||
|
isA<StateError>().having(
|
||||||
|
(StateError e) => e.message,
|
||||||
|
'message',
|
||||||
|
contains('dart pub --suppress-analytics deps --json failed'),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
testWithoutContext('fails on non-parseable JSON', () async {
|
||||||
|
final BufferLogger logger = BufferLogger.test();
|
||||||
|
final MemoryFileSystem fileSystem = MemoryFileSystem.test();
|
||||||
|
final ProcessManager processManager = _dartPubDepsReturns(
|
||||||
|
'Not JSON haha!',
|
||||||
|
project: FlutterProject.fromDirectoryTest(fileSystem.currentDirectory),
|
||||||
|
);
|
||||||
|
|
||||||
|
final Pub pub = Pub.test(
|
||||||
|
fileSystem: fileSystem,
|
||||||
|
logger: logger,
|
||||||
|
processManager: processManager,
|
||||||
|
usage: TestUsage(),
|
||||||
|
platform: FakePlatform(),
|
||||||
|
botDetector: const FakeBotDetector(false),
|
||||||
|
stdio: FakeStdio(),
|
||||||
|
);
|
||||||
|
|
||||||
|
await expectLater(
|
||||||
|
() => pub.deps(
|
||||||
|
FlutterProject.fromDirectoryTest(fileSystem.currentDirectory),
|
||||||
|
),
|
||||||
|
throwsA(
|
||||||
|
isA<StateError>().having(
|
||||||
|
(StateError e) => e.message,
|
||||||
|
'message',
|
||||||
|
contains(
|
||||||
|
'dart pub --suppress-analytics deps --json had unexpected output',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
testWithoutContext('fails on unexpected JSON type', () async {
|
||||||
|
final BufferLogger logger = BufferLogger.test();
|
||||||
|
final MemoryFileSystem fileSystem = MemoryFileSystem.test();
|
||||||
|
final ProcessManager processManager = _dartPubDepsReturns(
|
||||||
|
'[]',
|
||||||
|
project: FlutterProject.fromDirectoryTest(fileSystem.currentDirectory),
|
||||||
|
);
|
||||||
|
|
||||||
|
final Pub pub = Pub.test(
|
||||||
|
fileSystem: fileSystem,
|
||||||
|
logger: logger,
|
||||||
|
processManager: processManager,
|
||||||
|
usage: TestUsage(),
|
||||||
|
platform: FakePlatform(),
|
||||||
|
botDetector: const FakeBotDetector(false),
|
||||||
|
stdio: FakeStdio(),
|
||||||
|
);
|
||||||
|
|
||||||
|
await expectLater(
|
||||||
|
() => pub.deps(
|
||||||
|
FlutterProject.fromDirectoryTest(fileSystem.currentDirectory),
|
||||||
|
),
|
||||||
|
throwsA(
|
||||||
|
isA<StateError>().having(
|
||||||
|
(StateError e) => e.message,
|
||||||
|
'message',
|
||||||
|
contains(
|
||||||
|
'Not a JSON object',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
ProcessManager _dartPubDepsReturns(
|
||||||
|
String dartPubDepsOutput, {
|
||||||
|
required FlutterProject project,
|
||||||
|
}) {
|
||||||
|
return FakeProcessManager.list(<FakeCommand>[
|
||||||
|
FakeCommand(
|
||||||
|
command: const <String>[
|
||||||
|
_dartBin,
|
||||||
|
'pub',
|
||||||
|
'--suppress-analytics',
|
||||||
|
'deps',
|
||||||
|
'--json',
|
||||||
|
],
|
||||||
|
stdout: dartPubDepsOutput,
|
||||||
|
workingDirectory: project.directory.path,
|
||||||
|
),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
ProcessManager _dartPubDepsFails(
|
||||||
|
String dartPubDepsError, {
|
||||||
|
required FlutterProject project,
|
||||||
|
required int exitCode,
|
||||||
|
}) {
|
||||||
|
return FakeProcessManager.list(<FakeCommand>[
|
||||||
|
FakeCommand(
|
||||||
|
command: const <String>[
|
||||||
|
_dartBin,
|
||||||
|
'pub',
|
||||||
|
'--suppress-analytics',
|
||||||
|
'deps',
|
||||||
|
'--json'
|
||||||
|
],
|
||||||
|
exitCode: exitCode,
|
||||||
|
stderr: dartPubDepsError,
|
||||||
|
workingDirectory: project.directory.path,
|
||||||
|
),
|
||||||
|
]);
|
||||||
|
}
|
@ -4,7 +4,6 @@
|
|||||||
|
|
||||||
import 'package:file/file.dart';
|
import 'package:file/file.dart';
|
||||||
import 'package:file/memory.dart';
|
import 'package:file/memory.dart';
|
||||||
import 'package:flutter_tools/src/base/bot_detector.dart';
|
|
||||||
import 'package:flutter_tools/src/base/common.dart';
|
import 'package:flutter_tools/src/base/common.dart';
|
||||||
import 'package:flutter_tools/src/base/file_system.dart';
|
import 'package:flutter_tools/src/base/file_system.dart';
|
||||||
import 'package:flutter_tools/src/base/io.dart' show ProcessException;
|
import 'package:flutter_tools/src/base/io.dart' show ProcessException;
|
||||||
@ -39,7 +38,7 @@ void main() {
|
|||||||
processManager: processManager,
|
processManager: processManager,
|
||||||
usage: TestUsage(),
|
usage: TestUsage(),
|
||||||
platform: FakePlatform(),
|
platform: FakePlatform(),
|
||||||
botDetector: const BotDetectorAlwaysNo(),
|
botDetector: const FakeBotDetector(false),
|
||||||
stdio: FakeStdio(),
|
stdio: FakeStdio(),
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -94,7 +93,7 @@ void main() {
|
|||||||
processManager: processManager,
|
processManager: processManager,
|
||||||
usage: TestUsage(),
|
usage: TestUsage(),
|
||||||
platform: FakePlatform(),
|
platform: FakePlatform(),
|
||||||
botDetector: const BotDetectorAlwaysNo(),
|
botDetector: const FakeBotDetector(false),
|
||||||
stdio: FakeStdio(),
|
stdio: FakeStdio(),
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -149,7 +148,7 @@ void main() {
|
|||||||
processManager: processManager,
|
processManager: processManager,
|
||||||
usage: TestUsage(),
|
usage: TestUsage(),
|
||||||
platform: FakePlatform(),
|
platform: FakePlatform(),
|
||||||
botDetector: const BotDetectorAlwaysNo(),
|
botDetector: const FakeBotDetector(false),
|
||||||
stdio: FakeStdio(),
|
stdio: FakeStdio(),
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -203,7 +202,7 @@ void main() {
|
|||||||
processManager: processManager,
|
processManager: processManager,
|
||||||
usage: TestUsage(),
|
usage: TestUsage(),
|
||||||
platform: FakePlatform(),
|
platform: FakePlatform(),
|
||||||
botDetector: const BotDetectorAlwaysNo(),
|
botDetector: const FakeBotDetector(false),
|
||||||
stdio: FakeStdio(),
|
stdio: FakeStdio(),
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -236,7 +235,7 @@ void main() {
|
|||||||
processManager: processManager,
|
processManager: processManager,
|
||||||
usage: TestUsage(),
|
usage: TestUsage(),
|
||||||
platform: FakePlatform(),
|
platform: FakePlatform(),
|
||||||
botDetector: const BotDetectorAlwaysNo(),
|
botDetector: const FakeBotDetector(false),
|
||||||
stdio: FakeStdio(),
|
stdio: FakeStdio(),
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -275,7 +274,7 @@ void main() {
|
|||||||
processManager: processManager,
|
processManager: processManager,
|
||||||
usage: TestUsage(),
|
usage: TestUsage(),
|
||||||
platform: FakePlatform(),
|
platform: FakePlatform(),
|
||||||
botDetector: const BotDetectorAlwaysNo(),
|
botDetector: const FakeBotDetector(false),
|
||||||
stdio: FakeStdio(),
|
stdio: FakeStdio(),
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -321,7 +320,7 @@ void main() {
|
|||||||
processManager: processManager,
|
processManager: processManager,
|
||||||
usage: TestUsage(),
|
usage: TestUsage(),
|
||||||
platform: FakePlatform(),
|
platform: FakePlatform(),
|
||||||
botDetector: const BotDetectorAlwaysNo(),
|
botDetector: const FakeBotDetector(false),
|
||||||
stdio: FakeStdio(),
|
stdio: FakeStdio(),
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -366,7 +365,7 @@ void main() {
|
|||||||
processManager: processManager,
|
processManager: processManager,
|
||||||
usage: TestUsage(),
|
usage: TestUsage(),
|
||||||
platform: FakePlatform(),
|
platform: FakePlatform(),
|
||||||
botDetector: const BotDetectorAlwaysNo(),
|
botDetector: const FakeBotDetector(false),
|
||||||
stdio: FakeStdio(),
|
stdio: FakeStdio(),
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -414,7 +413,7 @@ void main() {
|
|||||||
processManager: processManager,
|
processManager: processManager,
|
||||||
usage: TestUsage(),
|
usage: TestUsage(),
|
||||||
platform: FakePlatform(),
|
platform: FakePlatform(),
|
||||||
botDetector: const BotDetectorAlwaysNo(),
|
botDetector: const FakeBotDetector(false),
|
||||||
stdio: FakeStdio(),
|
stdio: FakeStdio(),
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -459,7 +458,7 @@ void main() {
|
|||||||
processManager: processManager,
|
processManager: processManager,
|
||||||
usage: TestUsage(),
|
usage: TestUsage(),
|
||||||
platform: FakePlatform(),
|
platform: FakePlatform(),
|
||||||
botDetector: const BotDetectorAlwaysNo(),
|
botDetector: const FakeBotDetector(false),
|
||||||
stdio: FakeStdio(),
|
stdio: FakeStdio(),
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -504,7 +503,7 @@ void main() {
|
|||||||
processManager: processManager,
|
processManager: processManager,
|
||||||
usage: TestUsage(),
|
usage: TestUsage(),
|
||||||
platform: FakePlatform(),
|
platform: FakePlatform(),
|
||||||
botDetector: const BotDetectorAlwaysNo(),
|
botDetector: const FakeBotDetector(false),
|
||||||
stdio: FakeStdio(),
|
stdio: FakeStdio(),
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -552,7 +551,7 @@ void main() {
|
|||||||
processManager: processManager,
|
processManager: processManager,
|
||||||
usage: TestUsage(),
|
usage: TestUsage(),
|
||||||
platform: FakePlatform(),
|
platform: FakePlatform(),
|
||||||
botDetector: const BotDetectorAlwaysNo(),
|
botDetector: const FakeBotDetector(false),
|
||||||
stdio: FakeStdio(),
|
stdio: FakeStdio(),
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -597,7 +596,7 @@ void main() {
|
|||||||
fileSystem: fileSystem,
|
fileSystem: fileSystem,
|
||||||
logger: logger,
|
logger: logger,
|
||||||
usage: TestUsage(),
|
usage: TestUsage(),
|
||||||
botDetector: const BotDetectorAlwaysNo(),
|
botDetector: const FakeBotDetector(false),
|
||||||
stdio: mockStdio,
|
stdio: mockStdio,
|
||||||
processManager: processManager,
|
processManager: processManager,
|
||||||
);
|
);
|
||||||
@ -615,8 +614,8 @@ exit code: 66
|
|||||||
project: FlutterProject.fromDirectoryTest(fileSystem.currentDirectory),
|
project: FlutterProject.fromDirectoryTest(fileSystem.currentDirectory),
|
||||||
context: PubContext.flutterTests,
|
context: PubContext.flutterTests,
|
||||||
),
|
),
|
||||||
throwsA(isA<ToolExit>()
|
throwsA(isA<ToolExit>().having((ToolExit error) => error.message,
|
||||||
.having((ToolExit error) => error.message, 'message', contains('Failed to update packages'))),
|
'message', contains('Failed to update packages'))),
|
||||||
);
|
);
|
||||||
expect(logger.statusText, isEmpty);
|
expect(logger.statusText, isEmpty);
|
||||||
expect(logger.traceText, contains(toolExitMessage));
|
expect(logger.traceText, contains(toolExitMessage));
|
||||||
@ -629,11 +628,14 @@ exit code: 66
|
|||||||
expect(processManager, hasNoRemainingExpectations);
|
expect(processManager, hasNoRemainingExpectations);
|
||||||
});
|
});
|
||||||
|
|
||||||
testWithoutContext('pub get with failing exit code even with OutputMode == failuresOnly', () async {
|
testWithoutContext(
|
||||||
|
'pub get with failing exit code even with OutputMode == failuresOnly',
|
||||||
|
() async {
|
||||||
final BufferLogger logger = BufferLogger.test();
|
final BufferLogger logger = BufferLogger.test();
|
||||||
final FileSystem fileSystem = MemoryFileSystem.test();
|
final FileSystem fileSystem = MemoryFileSystem.test();
|
||||||
|
|
||||||
final FakeProcessManager processManager = FakeProcessManager.list(<FakeCommand>[
|
final FakeProcessManager processManager =
|
||||||
|
FakeProcessManager.list(<FakeCommand>[
|
||||||
const FakeCommand(
|
const FakeCommand(
|
||||||
command: <String>[
|
command: <String>[
|
||||||
'bin/cache/dart-sdk/bin/dart',
|
'bin/cache/dart-sdk/bin/dart',
|
||||||
@ -661,7 +663,7 @@ exit code: 66
|
|||||||
fileSystem: fileSystem,
|
fileSystem: fileSystem,
|
||||||
logger: logger,
|
logger: logger,
|
||||||
usage: TestUsage(),
|
usage: TestUsage(),
|
||||||
botDetector: const BotDetectorAlwaysNo(),
|
botDetector: const FakeBotDetector(false),
|
||||||
processManager: processManager,
|
processManager: processManager,
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -680,7 +682,8 @@ exit code: 66
|
|||||||
expect(
|
expect(
|
||||||
logger.warningText,
|
logger.warningText,
|
||||||
contains('git remote set-url upstream'),
|
contains('git remote set-url upstream'),
|
||||||
reason: 'When update-packages fails, it is often because of missing an upsteam remote.',
|
reason:
|
||||||
|
'When update-packages fails, it is often because of missing an upsteam remote.',
|
||||||
);
|
);
|
||||||
expect(processManager, hasNoRemainingExpectations);
|
expect(processManager, hasNoRemainingExpectations);
|
||||||
});
|
});
|
||||||
@ -732,7 +735,7 @@ exit code: 66
|
|||||||
fileSystem: fileSystem,
|
fileSystem: fileSystem,
|
||||||
logger: logger,
|
logger: logger,
|
||||||
usage: TestUsage(),
|
usage: TestUsage(),
|
||||||
botDetector: const BotDetectorAlwaysNo(),
|
botDetector: const FakeBotDetector(false),
|
||||||
stdio: FakeStdio(),
|
stdio: FakeStdio(),
|
||||||
processManager: processManager,
|
processManager: processManager,
|
||||||
);
|
);
|
||||||
@ -793,7 +796,7 @@ exit code: 66
|
|||||||
fileSystem: fileSystem,
|
fileSystem: fileSystem,
|
||||||
logger: logger,
|
logger: logger,
|
||||||
processManager: processManager,
|
processManager: processManager,
|
||||||
botDetector: const BotDetectorAlwaysNo(),
|
botDetector: const FakeBotDetector(false),
|
||||||
stdio: mockStdio,
|
stdio: mockStdio,
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -844,7 +847,7 @@ exit code: 66
|
|||||||
fileSystem: fileSystem,
|
fileSystem: fileSystem,
|
||||||
logger: BufferLogger.test(),
|
logger: BufferLogger.test(),
|
||||||
processManager: processManager,
|
processManager: processManager,
|
||||||
botDetector: const BotDetectorAlwaysNo(),
|
botDetector: const FakeBotDetector(false),
|
||||||
stdio: mockStdio,
|
stdio: mockStdio,
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -915,7 +918,7 @@ exit code: 66
|
|||||||
fileSystem: fileSystem,
|
fileSystem: fileSystem,
|
||||||
logger: logger,
|
logger: logger,
|
||||||
processManager: processManager,
|
processManager: processManager,
|
||||||
botDetector: const BotDetectorAlwaysNo(),
|
botDetector: const FakeBotDetector(false),
|
||||||
stdio: FakeStdio(),
|
stdio: FakeStdio(),
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -957,7 +960,7 @@ exit code: 66
|
|||||||
logger: BufferLogger.test(),
|
logger: BufferLogger.test(),
|
||||||
processManager: processManager,
|
processManager: processManager,
|
||||||
usage: TestUsage(),
|
usage: TestUsage(),
|
||||||
botDetector: const BotDetectorAlwaysNo(),
|
botDetector: const FakeBotDetector(false),
|
||||||
stdio: mockStdio,
|
stdio: mockStdio,
|
||||||
platform: FakePlatform(
|
platform: FakePlatform(
|
||||||
environment: const <String, String>{
|
environment: const <String, String>{
|
||||||
@ -988,7 +991,7 @@ exit code: 66
|
|||||||
fileSystem: fileSystem,
|
fileSystem: fileSystem,
|
||||||
logger: BufferLogger.test(),
|
logger: BufferLogger.test(),
|
||||||
processManager: FakeProcessManager.any(),
|
processManager: FakeProcessManager.any(),
|
||||||
botDetector: const BotDetectorAlwaysNo(),
|
botDetector: const FakeBotDetector(false),
|
||||||
stdio: FakeStdio(),
|
stdio: FakeStdio(),
|
||||||
usage: usage,
|
usage: usage,
|
||||||
platform: FakePlatform(environment: const <String, String>{
|
platform: FakePlatform(environment: const <String, String>{
|
||||||
@ -1021,7 +1024,7 @@ exit code: 66
|
|||||||
fileSystem: fileSystem,
|
fileSystem: fileSystem,
|
||||||
logger: BufferLogger.test(),
|
logger: BufferLogger.test(),
|
||||||
processManager: FakeProcessManager.any(),
|
processManager: FakeProcessManager.any(),
|
||||||
botDetector: const BotDetectorAlwaysNo(),
|
botDetector: const FakeBotDetector(false),
|
||||||
stdio: FakeStdio(),
|
stdio: FakeStdio(),
|
||||||
usage: usage,
|
usage: usage,
|
||||||
platform: FakePlatform(environment: const <String, String>{
|
platform: FakePlatform(environment: const <String, String>{
|
||||||
@ -1084,7 +1087,7 @@ exit code: 66
|
|||||||
fileSystem: fileSystem,
|
fileSystem: fileSystem,
|
||||||
logger: BufferLogger.test(),
|
logger: BufferLogger.test(),
|
||||||
processManager: processManager,
|
processManager: processManager,
|
||||||
botDetector: const BotDetectorAlwaysNo(),
|
botDetector: const FakeBotDetector(false),
|
||||||
stdio: FakeStdio(),
|
stdio: FakeStdio(),
|
||||||
platform: FakePlatform(
|
platform: FakePlatform(
|
||||||
environment: const <String, String>{
|
environment: const <String, String>{
|
||||||
@ -1173,7 +1176,7 @@ exit code: 66
|
|||||||
platform: FakePlatform(
|
platform: FakePlatform(
|
||||||
environment: <String, String>{},
|
environment: <String, String>{},
|
||||||
),
|
),
|
||||||
botDetector: const BotDetectorAlwaysNo(),
|
botDetector: const FakeBotDetector(false),
|
||||||
stdio: FakeStdio());
|
stdio: FakeStdio());
|
||||||
|
|
||||||
fileSystem.file('version').createSync();
|
fileSystem.file('version').createSync();
|
||||||
@ -1211,10 +1214,3 @@ exit code: 66
|
|||||||
logger.clear();
|
logger.clear();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
class BotDetectorAlwaysNo implements BotDetector {
|
|
||||||
const BotDetectorAlwaysNo();
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<bool> get isRunningOnBot async => false;
|
|
||||||
}
|
|
||||||
|
@ -15,6 +15,7 @@ import 'package:flutter_tools/src/base/platform.dart';
|
|||||||
import 'package:flutter_tools/src/base/version.dart';
|
import 'package:flutter_tools/src/base/version.dart';
|
||||||
import 'package:flutter_tools/src/build_info.dart';
|
import 'package:flutter_tools/src/build_info.dart';
|
||||||
import 'package:flutter_tools/src/cache.dart';
|
import 'package:flutter_tools/src/cache.dart';
|
||||||
|
import 'package:flutter_tools/src/dart/pub.dart';
|
||||||
import 'package:flutter_tools/src/device.dart';
|
import 'package:flutter_tools/src/device.dart';
|
||||||
import 'package:flutter_tools/src/device_port_forwarder.dart';
|
import 'package:flutter_tools/src/device_port_forwarder.dart';
|
||||||
import 'package:flutter_tools/src/ios/application_package.dart';
|
import 'package:flutter_tools/src/ios/application_package.dart';
|
||||||
@ -34,6 +35,7 @@ import '../../src/common.dart';
|
|||||||
import '../../src/context.dart' hide FakeXcodeProjectInterpreter;
|
import '../../src/context.dart' hide FakeXcodeProjectInterpreter;
|
||||||
import '../../src/fake_devices.dart';
|
import '../../src/fake_devices.dart';
|
||||||
import '../../src/fake_process_manager.dart';
|
import '../../src/fake_process_manager.dart';
|
||||||
|
import '../../src/fake_pub_deps.dart';
|
||||||
import '../../src/fakes.dart';
|
import '../../src/fakes.dart';
|
||||||
|
|
||||||
List<String> _xattrArgs(FlutterProject flutterProject) {
|
List<String> _xattrArgs(FlutterProject flutterProject) {
|
||||||
@ -74,12 +76,7 @@ const List<String> kRunReleaseArgs = <String>[
|
|||||||
// label which plugins are dependency plugins.
|
// label which plugins are dependency plugins.
|
||||||
//
|
//
|
||||||
// Ideally processPodsIfNeeded should rely on the command (removing this call).
|
// Ideally processPodsIfNeeded should rely on the command (removing this call).
|
||||||
const List<String> kCheckDartPubDeps = <String> [
|
final Pub fakePubBecauseRefreshPluginsList = FakePubWithPrimedDeps();
|
||||||
'dart',
|
|
||||||
'pub',
|
|
||||||
'deps',
|
|
||||||
'--json',
|
|
||||||
];
|
|
||||||
|
|
||||||
const String kConcurrentBuildErrorMessage = '''
|
const String kConcurrentBuildErrorMessage = '''
|
||||||
"/Developer/Xcode/DerivedData/foo/XCBuildData/build.db":
|
"/Developer/Xcode/DerivedData/foo/XCBuildData/build.db":
|
||||||
@ -144,7 +141,6 @@ void main() {
|
|||||||
final BuildableIOSApp buildableIOSApp = BuildableIOSApp(flutterProject.ios, 'flutter', 'My Super Awesome App');
|
final BuildableIOSApp buildableIOSApp = BuildableIOSApp(flutterProject.ios, 'flutter', 'My Super Awesome App');
|
||||||
|
|
||||||
processManager.addCommand(FakeCommand(command: _xattrArgs(flutterProject)));
|
processManager.addCommand(FakeCommand(command: _xattrArgs(flutterProject)));
|
||||||
processManager.addCommand(const FakeCommand(command: kCheckDartPubDeps));
|
|
||||||
processManager.addCommand(const FakeCommand(command: kRunReleaseArgs));
|
processManager.addCommand(const FakeCommand(command: kRunReleaseArgs));
|
||||||
|
|
||||||
final LaunchResult launchResult = await iosDevice.startApp(
|
final LaunchResult launchResult = await iosDevice.startApp(
|
||||||
@ -166,6 +162,7 @@ void main() {
|
|||||||
);
|
);
|
||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
ProcessManager: () => processManager,
|
ProcessManager: () => processManager,
|
||||||
|
Pub: () => fakePubBecauseRefreshPluginsList,
|
||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
OperatingSystemUtils: () => os,
|
OperatingSystemUtils: () => os,
|
||||||
@ -219,7 +216,6 @@ void main() {
|
|||||||
fileSystem.directory('build/ios/Release-iphoneos/My Super Awesome App.app').createSync(recursive: true);
|
fileSystem.directory('build/ios/Release-iphoneos/My Super Awesome App.app').createSync(recursive: true);
|
||||||
|
|
||||||
processManager.addCommand(FakeCommand(command: _xattrArgs(flutterProject)));
|
processManager.addCommand(FakeCommand(command: _xattrArgs(flutterProject)));
|
||||||
processManager.addCommand(const FakeCommand(command: kCheckDartPubDeps));
|
|
||||||
processManager.addCommand(const FakeCommand(command: kRunReleaseArgs));
|
processManager.addCommand(const FakeCommand(command: kRunReleaseArgs));
|
||||||
processManager.addCommand(const FakeCommand(command: <String>[
|
processManager.addCommand(const FakeCommand(command: <String>[
|
||||||
'rsync',
|
'rsync',
|
||||||
@ -258,6 +254,7 @@ void main() {
|
|||||||
expect(processManager, hasNoRemainingExpectations);
|
expect(processManager, hasNoRemainingExpectations);
|
||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
ProcessManager: () => processManager,
|
ProcessManager: () => processManager,
|
||||||
|
Pub: () => fakePubBecauseRefreshPluginsList,
|
||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
OperatingSystemUtils: () => os,
|
OperatingSystemUtils: () => os,
|
||||||
@ -280,7 +277,6 @@ void main() {
|
|||||||
fileSystem.directory('build/ios/Release-iphoneos/My Super Awesome App.app').createSync(recursive: true);
|
fileSystem.directory('build/ios/Release-iphoneos/My Super Awesome App.app').createSync(recursive: true);
|
||||||
|
|
||||||
processManager.addCommand(FakeCommand(command: _xattrArgs(flutterProject)));
|
processManager.addCommand(FakeCommand(command: _xattrArgs(flutterProject)));
|
||||||
processManager.addCommand(const FakeCommand(command: kCheckDartPubDeps));
|
|
||||||
processManager.addCommand(const FakeCommand(command: <String>[
|
processManager.addCommand(const FakeCommand(command: <String>[
|
||||||
'xcrun',
|
'xcrun',
|
||||||
'xcodebuild',
|
'xcodebuild',
|
||||||
@ -347,6 +343,7 @@ void main() {
|
|||||||
OperatingSystemUtils: () => FakeOperatingSystemUtils(
|
OperatingSystemUtils: () => FakeOperatingSystemUtils(
|
||||||
hostPlatform: HostPlatform.darwin_x64,
|
hostPlatform: HostPlatform.darwin_x64,
|
||||||
),
|
),
|
||||||
|
Pub: () => fakePubBecauseRefreshPluginsList,
|
||||||
Platform: () => macPlatform,
|
Platform: () => macPlatform,
|
||||||
XcodeProjectInterpreter: () => fakeXcodeProjectInterpreter,
|
XcodeProjectInterpreter: () => fakeXcodeProjectInterpreter,
|
||||||
Xcode: () => xcode,
|
Xcode: () => xcode,
|
||||||
@ -364,7 +361,6 @@ void main() {
|
|||||||
final BuildableIOSApp buildableIOSApp = BuildableIOSApp(flutterProject.ios, 'flutter', 'My Super Awesome App');
|
final BuildableIOSApp buildableIOSApp = BuildableIOSApp(flutterProject.ios, 'flutter', 'My Super Awesome App');
|
||||||
|
|
||||||
processManager.addCommand(FakeCommand(command: _xattrArgs(flutterProject)));
|
processManager.addCommand(FakeCommand(command: _xattrArgs(flutterProject)));
|
||||||
processManager.addCommand(const FakeCommand(command: kCheckDartPubDeps));
|
|
||||||
// The first xcrun call should fail with a
|
// The first xcrun call should fail with a
|
||||||
// concurrent build exception.
|
// concurrent build exception.
|
||||||
processManager.addCommand(
|
processManager.addCommand(
|
||||||
@ -419,6 +415,7 @@ void main() {
|
|||||||
hostPlatform: HostPlatform.darwin_arm64,
|
hostPlatform: HostPlatform.darwin_arm64,
|
||||||
),
|
),
|
||||||
Platform: () => macPlatform,
|
Platform: () => macPlatform,
|
||||||
|
Pub: () => fakePubBecauseRefreshPluginsList,
|
||||||
XcodeProjectInterpreter: () => fakeXcodeProjectInterpreter,
|
XcodeProjectInterpreter: () => fakeXcodeProjectInterpreter,
|
||||||
Xcode: () => xcode,
|
Xcode: () => xcode,
|
||||||
});
|
});
|
||||||
@ -472,6 +469,7 @@ void main() {
|
|||||||
expect(processManager, hasNoRemainingExpectations);
|
expect(processManager, hasNoRemainingExpectations);
|
||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
ProcessManager: () => FakeProcessManager.any(),
|
ProcessManager: () => FakeProcessManager.any(),
|
||||||
|
Pub: () => fakePubBecauseRefreshPluginsList,
|
||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
OperatingSystemUtils: () => os,
|
OperatingSystemUtils: () => os,
|
||||||
@ -507,6 +505,7 @@ void main() {
|
|||||||
expect(processManager, hasNoRemainingExpectations);
|
expect(processManager, hasNoRemainingExpectations);
|
||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
ProcessManager: () => FakeProcessManager.any(),
|
ProcessManager: () => FakeProcessManager.any(),
|
||||||
|
Pub: () => fakePubBecauseRefreshPluginsList,
|
||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
OperatingSystemUtils: () => os,
|
OperatingSystemUtils: () => os,
|
||||||
@ -542,6 +541,7 @@ void main() {
|
|||||||
expect(processManager, hasNoRemainingExpectations);
|
expect(processManager, hasNoRemainingExpectations);
|
||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
ProcessManager: () => FakeProcessManager.any(),
|
ProcessManager: () => FakeProcessManager.any(),
|
||||||
|
Pub: () => fakePubBecauseRefreshPluginsList,
|
||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
OperatingSystemUtils: () => os,
|
OperatingSystemUtils: () => os,
|
||||||
@ -578,6 +578,7 @@ void main() {
|
|||||||
expect(coreDeviceControl.argumentsUsedForLaunch, contains('--enable-dart-profiling'));
|
expect(coreDeviceControl.argumentsUsedForLaunch, contains('--enable-dart-profiling'));
|
||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
ProcessManager: () => FakeProcessManager.any(),
|
ProcessManager: () => FakeProcessManager.any(),
|
||||||
|
Pub: () => fakePubBecauseRefreshPluginsList,
|
||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
OperatingSystemUtils: () => os,
|
OperatingSystemUtils: () => os,
|
||||||
@ -645,6 +646,7 @@ void main() {
|
|||||||
expect(processManager, hasNoRemainingExpectations);
|
expect(processManager, hasNoRemainingExpectations);
|
||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
ProcessManager: () => FakeProcessManager.any(),
|
ProcessManager: () => FakeProcessManager.any(),
|
||||||
|
Pub: () => fakePubBecauseRefreshPluginsList,
|
||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
OperatingSystemUtils: () => os,
|
OperatingSystemUtils: () => os,
|
||||||
@ -721,6 +723,7 @@ void main() {
|
|||||||
expect(processManager, hasNoRemainingExpectations);
|
expect(processManager, hasNoRemainingExpectations);
|
||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
ProcessManager: () => FakeProcessManager.any(),
|
ProcessManager: () => FakeProcessManager.any(),
|
||||||
|
Pub: () => fakePubBecauseRefreshPluginsList,
|
||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
OperatingSystemUtils: () => os,
|
OperatingSystemUtils: () => os,
|
||||||
@ -802,6 +805,7 @@ void main() {
|
|||||||
expect(contents.contains('CONFIGURATION_BUILD_DIR'), isFalse);
|
expect(contents.contains('CONFIGURATION_BUILD_DIR'), isFalse);
|
||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
ProcessManager: () => FakeProcessManager.any(),
|
ProcessManager: () => FakeProcessManager.any(),
|
||||||
|
Pub: () => fakePubBecauseRefreshPluginsList,
|
||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
OperatingSystemUtils: () => os,
|
OperatingSystemUtils: () => os,
|
||||||
@ -842,6 +846,7 @@ void main() {
|
|||||||
expect(processManager, hasNoRemainingExpectations);
|
expect(processManager, hasNoRemainingExpectations);
|
||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
ProcessManager: () => FakeProcessManager.any(),
|
ProcessManager: () => FakeProcessManager.any(),
|
||||||
|
Pub: () => fakePubBecauseRefreshPluginsList,
|
||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
Platform: () => macPlatform,
|
Platform: () => macPlatform,
|
||||||
@ -881,6 +886,7 @@ void main() {
|
|||||||
expect(processManager, hasNoRemainingExpectations);
|
expect(processManager, hasNoRemainingExpectations);
|
||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
ProcessManager: () => FakeProcessManager.any(),
|
ProcessManager: () => FakeProcessManager.any(),
|
||||||
|
Pub: () => fakePubBecauseRefreshPluginsList,
|
||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
OperatingSystemUtils: () => os,
|
OperatingSystemUtils: () => os,
|
||||||
|
@ -8,6 +8,7 @@ import 'package:file/file.dart';
|
|||||||
import 'package:file/memory.dart';
|
import 'package:file/memory.dart';
|
||||||
import 'package:flutter_tools/src/base/logger.dart';
|
import 'package:flutter_tools/src/base/logger.dart';
|
||||||
import 'package:flutter_tools/src/build_info.dart';
|
import 'package:flutter_tools/src/build_info.dart';
|
||||||
|
import 'package:flutter_tools/src/dart/pub.dart';
|
||||||
import 'package:flutter_tools/src/flutter_manifest.dart';
|
import 'package:flutter_tools/src/flutter_manifest.dart';
|
||||||
import 'package:flutter_tools/src/macos/cocoapod_utils.dart';
|
import 'package:flutter_tools/src/macos/cocoapod_utils.dart';
|
||||||
import 'package:flutter_tools/src/macos/cocoapods.dart';
|
import 'package:flutter_tools/src/macos/cocoapods.dart';
|
||||||
@ -16,6 +17,7 @@ import 'package:test/fake.dart';
|
|||||||
|
|
||||||
import '../../src/common.dart';
|
import '../../src/common.dart';
|
||||||
import '../../src/context.dart';
|
import '../../src/context.dart';
|
||||||
|
import '../../src/fake_pub_deps.dart';
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
group('processPodsIfNeeded', () {
|
group('processPodsIfNeeded', () {
|
||||||
@ -107,7 +109,8 @@ void main() {
|
|||||||
expect(cocoaPods.processedPods, isTrue);
|
expect(cocoaPods.processedPods, isTrue);
|
||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
FileSystem: () => fs,
|
FileSystem: () => fs,
|
||||||
ProcessManager: () => FakeProcessManager.any(),
|
ProcessManager: FakeProcessManager.empty,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
CocoaPods: () => cocoaPods,
|
CocoaPods: () => cocoaPods,
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -125,7 +128,8 @@ void main() {
|
|||||||
expect(cocoaPods.processedPods, isTrue);
|
expect(cocoaPods.processedPods, isTrue);
|
||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
FileSystem: () => fs,
|
FileSystem: () => fs,
|
||||||
ProcessManager: () => FakeProcessManager.any(),
|
ProcessManager: FakeProcessManager.empty,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
CocoaPods: () => cocoaPods,
|
CocoaPods: () => cocoaPods,
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -142,7 +146,8 @@ void main() {
|
|||||||
expect(cocoaPods.processedPods, isFalse);
|
expect(cocoaPods.processedPods, isFalse);
|
||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
FileSystem: () => fs,
|
FileSystem: () => fs,
|
||||||
ProcessManager: () => FakeProcessManager.any(),
|
ProcessManager: FakeProcessManager.empty,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
CocoaPods: () => cocoaPods,
|
CocoaPods: () => cocoaPods,
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -158,7 +163,8 @@ void main() {
|
|||||||
expect(cocoaPods.processedPods, isFalse);
|
expect(cocoaPods.processedPods, isFalse);
|
||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
FileSystem: () => fs,
|
FileSystem: () => fs,
|
||||||
ProcessManager: () => FakeProcessManager.any(),
|
ProcessManager: FakeProcessManager.empty,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
CocoaPods: () => cocoaPods,
|
CocoaPods: () => cocoaPods,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -182,7 +188,8 @@ void main() {
|
|||||||
expect(cocoaPods.processedPods, isTrue);
|
expect(cocoaPods.processedPods, isTrue);
|
||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
FileSystem: () => fs,
|
FileSystem: () => fs,
|
||||||
ProcessManager: () => FakeProcessManager.any(),
|
ProcessManager: FakeProcessManager.empty,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
CocoaPods: () => cocoaPods,
|
CocoaPods: () => cocoaPods,
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -203,7 +210,7 @@ void main() {
|
|||||||
expect(cocoaPods.processedPods, isFalse);
|
expect(cocoaPods.processedPods, isFalse);
|
||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
FileSystem: () => fs,
|
FileSystem: () => fs,
|
||||||
ProcessManager: () => FakeProcessManager.any(),
|
ProcessManager: FakeProcessManager.empty,
|
||||||
CocoaPods: () => cocoaPods,
|
CocoaPods: () => cocoaPods,
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -235,7 +242,8 @@ void main() {
|
|||||||
);
|
);
|
||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
FileSystem: () => fs,
|
FileSystem: () => fs,
|
||||||
ProcessManager: () => FakeProcessManager.any(),
|
ProcessManager: FakeProcessManager.empty,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
CocoaPods: () => cocoaPods,
|
CocoaPods: () => cocoaPods,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
});
|
});
|
||||||
@ -260,7 +268,8 @@ void main() {
|
|||||||
expect(cocoaPods.processedPods, isTrue);
|
expect(cocoaPods.processedPods, isTrue);
|
||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
FileSystem: () => fs,
|
FileSystem: () => fs,
|
||||||
ProcessManager: () => FakeProcessManager.any(),
|
ProcessManager: FakeProcessManager.empty,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
CocoaPods: () => cocoaPods,
|
CocoaPods: () => cocoaPods,
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -278,7 +287,8 @@ void main() {
|
|||||||
expect(cocoaPods.processedPods, isTrue);
|
expect(cocoaPods.processedPods, isTrue);
|
||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
FileSystem: () => fs,
|
FileSystem: () => fs,
|
||||||
ProcessManager: () => FakeProcessManager.any(),
|
ProcessManager: FakeProcessManager.empty,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
CocoaPods: () => cocoaPods,
|
CocoaPods: () => cocoaPods,
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -295,7 +305,8 @@ void main() {
|
|||||||
expect(cocoaPods.processedPods, isFalse);
|
expect(cocoaPods.processedPods, isFalse);
|
||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
FileSystem: () => fs,
|
FileSystem: () => fs,
|
||||||
ProcessManager: () => FakeProcessManager.any(),
|
ProcessManager: FakeProcessManager.empty,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
CocoaPods: () => cocoaPods,
|
CocoaPods: () => cocoaPods,
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -311,7 +322,8 @@ void main() {
|
|||||||
expect(cocoaPods.processedPods, isFalse);
|
expect(cocoaPods.processedPods, isFalse);
|
||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
FileSystem: () => fs,
|
FileSystem: () => fs,
|
||||||
ProcessManager: () => FakeProcessManager.any(),
|
ProcessManager: FakeProcessManager.empty,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
CocoaPods: () => cocoaPods,
|
CocoaPods: () => cocoaPods,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -335,7 +347,8 @@ void main() {
|
|||||||
expect(cocoaPods.processedPods, isTrue);
|
expect(cocoaPods.processedPods, isTrue);
|
||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
FileSystem: () => fs,
|
FileSystem: () => fs,
|
||||||
ProcessManager: () => FakeProcessManager.any(),
|
ProcessManager: FakeProcessManager.empty,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
CocoaPods: () => cocoaPods,
|
CocoaPods: () => cocoaPods,
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -356,7 +369,7 @@ void main() {
|
|||||||
expect(cocoaPods.processedPods, isFalse);
|
expect(cocoaPods.processedPods, isFalse);
|
||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
FileSystem: () => fs,
|
FileSystem: () => fs,
|
||||||
ProcessManager: () => FakeProcessManager.any(),
|
ProcessManager: FakeProcessManager.empty,
|
||||||
CocoaPods: () => cocoaPods,
|
CocoaPods: () => cocoaPods,
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -388,7 +401,8 @@ void main() {
|
|||||||
);
|
);
|
||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
FileSystem: () => fs,
|
FileSystem: () => fs,
|
||||||
ProcessManager: () => FakeProcessManager.any(),
|
ProcessManager: FakeProcessManager.empty,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
CocoaPods: () => cocoaPods,
|
CocoaPods: () => cocoaPods,
|
||||||
Logger: () => logger,
|
Logger: () => logger,
|
||||||
});
|
});
|
||||||
|
@ -14,6 +14,7 @@ import 'package:flutter_tools/src/base/os.dart';
|
|||||||
import 'package:flutter_tools/src/base/platform.dart';
|
import 'package:flutter_tools/src/base/platform.dart';
|
||||||
import 'package:flutter_tools/src/base/time.dart';
|
import 'package:flutter_tools/src/base/time.dart';
|
||||||
import 'package:flutter_tools/src/base/utils.dart';
|
import 'package:flutter_tools/src/base/utils.dart';
|
||||||
|
import 'package:flutter_tools/src/dart/pub.dart';
|
||||||
import 'package:flutter_tools/src/features.dart';
|
import 'package:flutter_tools/src/features.dart';
|
||||||
import 'package:flutter_tools/src/flutter_manifest.dart';
|
import 'package:flutter_tools/src/flutter_manifest.dart';
|
||||||
import 'package:flutter_tools/src/flutter_plugins.dart';
|
import 'package:flutter_tools/src/flutter_plugins.dart';
|
||||||
@ -30,6 +31,7 @@ import 'package:yaml/yaml.dart';
|
|||||||
|
|
||||||
import '../src/common.dart';
|
import '../src/common.dart';
|
||||||
import '../src/context.dart';
|
import '../src/context.dart';
|
||||||
|
import '../src/fake_pub_deps.dart';
|
||||||
import '../src/fakes.dart' hide FakeOperatingSystemUtils;
|
import '../src/fakes.dart' hide FakeOperatingSystemUtils;
|
||||||
import '../src/pubspec_schema.dart';
|
import '../src/pubspec_schema.dart';
|
||||||
|
|
||||||
@ -462,7 +464,8 @@ dependencies:
|
|||||||
expect(flutterProject.flutterPluginsDependenciesFile, exists);
|
expect(flutterProject.flutterPluginsDependenciesFile, exists);
|
||||||
}, overrides: <Type, Generator>{
|
}, overrides: <Type, Generator>{
|
||||||
FileSystem: () => fs,
|
FileSystem: () => fs,
|
||||||
ProcessManager: () => FakeProcessManager.any(),
|
ProcessManager: FakeProcessManager.empty,
|
||||||
|
Pub: FakePubWithPrimedDeps.new,
|
||||||
});
|
});
|
||||||
|
|
||||||
testUsingContext(
|
testUsingContext(
|
||||||
|
@ -121,7 +121,7 @@ void testUsingContext(
|
|||||||
FileSystem: () => LocalFileSystemBlockingSetCurrentDirectory(),
|
FileSystem: () => LocalFileSystemBlockingSetCurrentDirectory(),
|
||||||
PlistParser: () => FakePlistParser(),
|
PlistParser: () => FakePlistParser(),
|
||||||
Signals: () => FakeSignals(),
|
Signals: () => FakeSignals(),
|
||||||
Pub: () => ThrowingPub(), // prevent accidentally using pub.
|
Pub: () => const ThrowingPub(), // prevent accidentally using pub.
|
||||||
CrashReporter: () => const NoopCrashReporter(),
|
CrashReporter: () => const NoopCrashReporter(),
|
||||||
TemplateRenderer: () => const MustacheTemplateRenderer(),
|
TemplateRenderer: () => const MustacheTemplateRenderer(),
|
||||||
BuildTargets: () => const BuildTargetsImpl(),
|
BuildTargets: () => const BuildTargetsImpl(),
|
||||||
|
84
packages/flutter_tools/test/src/fake_pub_deps.dart
Normal file
84
packages/flutter_tools/test/src/fake_pub_deps.dart
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
// Copyright 2014 The Flutter Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
// found in the LICENSE file.
|
||||||
|
|
||||||
|
import 'package:flutter_tools/src/dart/pub.dart';
|
||||||
|
import 'package:flutter_tools/src/project.dart';
|
||||||
|
|
||||||
|
/// A fake implementation of [Pub] with a pre-primed [deps] response.
|
||||||
|
final class FakePubWithPrimedDeps implements Pub {
|
||||||
|
/// Creates an implementation of [Pub] with a pre-primed [Pub.deps] response.
|
||||||
|
///
|
||||||
|
/// It is expected that every [FlutterProject] that is provided to the
|
||||||
|
/// [Pub.deps] call is represented by [rootPackageName].
|
||||||
|
///
|
||||||
|
/// Optionally, provide [devDependencies] (of [rootPackageName]), and non
|
||||||
|
/// dev-dependencies ([dependencies]) of any package to a set of any other
|
||||||
|
/// packages. A resulting valid `dart pub deps --json` response is implicitly
|
||||||
|
/// created.
|
||||||
|
factory FakePubWithPrimedDeps({
|
||||||
|
String rootPackageName = 'app_name',
|
||||||
|
Set<String> devDependencies = const <String>{},
|
||||||
|
Map<String, Set<String>> dependencies = const <String, Set<String>>{},
|
||||||
|
}) {
|
||||||
|
// Start the packages: [ ... ] list with the root package.
|
||||||
|
final List<Object?> packages = <Object?>[
|
||||||
|
<String, Object?>{
|
||||||
|
'name': rootPackageName,
|
||||||
|
'kind': 'root',
|
||||||
|
'dependencies': <String>[
|
||||||
|
...dependencies.keys,
|
||||||
|
...devDependencies,
|
||||||
|
]..sort(),
|
||||||
|
'directDependencies': <String>[
|
||||||
|
...?dependencies[rootPackageName],
|
||||||
|
...devDependencies,
|
||||||
|
]..sort(),
|
||||||
|
'devDependencies': <String>[
|
||||||
|
...devDependencies,
|
||||||
|
],
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
// Add all non-dev dependencies.
|
||||||
|
for (final String packageName in dependencies.keys) {
|
||||||
|
final bool direct = dependencies[rootPackageName]!.contains(packageName);
|
||||||
|
packages.add(<String, Object?>{
|
||||||
|
'name': packageName,
|
||||||
|
'kind': direct ? 'direct' : 'transitive',
|
||||||
|
'dependencies': <String>[
|
||||||
|
...?dependencies[packageName],
|
||||||
|
],
|
||||||
|
'directDependencies': <String>[
|
||||||
|
...?dependencies[packageName],
|
||||||
|
],
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add all dev-dependencies.
|
||||||
|
for (final String packageName in devDependencies) {
|
||||||
|
packages.add(<String, Object?>{
|
||||||
|
'name': packageName,
|
||||||
|
'kind': 'dev',
|
||||||
|
'dependencies': <String>[],
|
||||||
|
'directDependencies': <String>[],
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return FakePubWithPrimedDeps._(<String, Object?>{
|
||||||
|
'root': rootPackageName,
|
||||||
|
'packages': packages,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
const FakePubWithPrimedDeps._(this._deps);
|
||||||
|
final Map<String, Object?> _deps;
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<Map<String, Object?>> deps(FlutterProject project) async => _deps;
|
||||||
|
|
||||||
|
@override
|
||||||
|
Never noSuchMethod(Invocation invocation) {
|
||||||
|
throw UnsupportedError('Only <Pub>.deps is expected to be called');
|
||||||
|
}
|
||||||
|
}
|
@ -44,7 +44,7 @@ final Map<Type, Generator> _testbedDefaults = <Type, Generator>{
|
|||||||
Analytics: () => const NoOpAnalytics(),
|
Analytics: () => const NoOpAnalytics(),
|
||||||
FlutterVersion: () => FakeFlutterVersion(), // prevent requirement to mock git for test runner.
|
FlutterVersion: () => FakeFlutterVersion(), // prevent requirement to mock git for test runner.
|
||||||
Signals: () => FakeSignals(), // prevent registering actual signal handlers.
|
Signals: () => FakeSignals(), // prevent registering actual signal handlers.
|
||||||
Pub: () => ThrowingPub(), // prevent accidental invocations of pub.
|
Pub: () => const ThrowingPub(), // prevent accidental invocations of pub.
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Manages interaction with the tool injection and runner system.
|
/// Manages interaction with the tool injection and runner system.
|
||||||
|
@ -3,47 +3,25 @@
|
|||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
import 'package:flutter_tools/src/dart/pub.dart';
|
import 'package:flutter_tools/src/dart/pub.dart';
|
||||||
import 'package:flutter_tools/src/project.dart';
|
|
||||||
|
|
||||||
class ThrowingPub implements Pub {
|
final class ThrowingPub implements Pub {
|
||||||
@override
|
const ThrowingPub();
|
||||||
Future<void> batch(List<String> arguments, {
|
|
||||||
PubContext? context,
|
|
||||||
String? directory,
|
|
||||||
MessageFilter? filter,
|
|
||||||
String? failureMessage = 'pub failed',
|
|
||||||
}) {
|
|
||||||
throw UnsupportedError('Attempted to invoke pub during test.');
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<void> get({
|
Never noSuchMethod(Invocation invocation) {
|
||||||
PubContext? context,
|
throw UnsupportedError(
|
||||||
required FlutterProject project,
|
'Attempted to invoke pub during test, which otherwise was unexpected. '
|
||||||
bool upgrade = false,
|
'This error may be caused by either changing the implementation details '
|
||||||
bool offline = false,
|
'of the Flutter CLI in where the "Pub" class is now being used, or '
|
||||||
bool checkLastModified = true,
|
'adding a unit test that transitively depends on "Pub".\n'
|
||||||
bool skipPubspecYamlCheck = false,
|
'\n'
|
||||||
bool generateSyntheticPackage = false,
|
'Possible options for resolution:\n'
|
||||||
bool generateSyntheticPackageForExample = false,
|
' 1. Refactor the code or test to not rely on "Pub".\n'
|
||||||
String? flutterRootOverride,
|
' 2. Create and use a test-appropriate Fake (grep for "implements Pub") '
|
||||||
bool checkUpToDate = false,
|
' for example code across the test/ repo. It is possible that the '
|
||||||
bool shouldSkipThirdPartyGenerator = true,
|
' file you are editing already has an appropriate Fake.\n'
|
||||||
PubOutputMode outputMode = PubOutputMode.all,
|
' 3. Use "FakePubWithPrimedDeps" if your code will transitively call '
|
||||||
}) {
|
' "dart pub deps --json" and you need a realistic output.',
|
||||||
throw UnsupportedError('Attempted to invoke pub during test.');
|
);
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<void> interactively(
|
|
||||||
List<String> arguments, {
|
|
||||||
FlutterProject? project,
|
|
||||||
required PubContext context,
|
|
||||||
required String command,
|
|
||||||
bool touchesPackageConfig = false,
|
|
||||||
bool generateSyntheticPackage = false,
|
|
||||||
PubOutputMode outputMode = PubOutputMode.all,
|
|
||||||
}) {
|
|
||||||
throw UnsupportedError('Attempted to invoke pub during test.');
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user