Unverified Commit ad9476dc authored by Jonah Williams's avatar Jonah Williams Committed by GitHub

[flutter_tools] Remove context from Artifacts class (#48776)

parent 3e634112
...@@ -108,7 +108,11 @@ Future<void> main(List<String> args) async { ...@@ -108,7 +108,11 @@ Future<void> main(List<String> args) async {
DeviceManager: () => _FuchsiaDeviceManager(), DeviceManager: () => _FuchsiaDeviceManager(),
FuchsiaArtifacts: () => FuchsiaArtifacts(sshConfig: sshConfig, devFinder: devFinder), FuchsiaArtifacts: () => FuchsiaArtifacts(sshConfig: sshConfig, devFinder: devFinder),
Artifacts: () => OverrideArtifacts( Artifacts: () => OverrideArtifacts(
parent: CachedArtifacts(), parent: CachedArtifacts(
fileSystem: globals.fs,
cache: globals.cache,
platform: globals.platform,
),
frontendServer: frontendServer, frontendServer: frontendServer,
engineDartBinary: dartSdk, engineDartBinary: dartSdk,
platformKernelDill: platformKernelDill, platformKernelDill: platformKernelDill,
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
import 'dart:async'; import 'dart:async';
import 'package:meta/meta.dart'; import 'package:meta/meta.dart';
import 'package:platform/platform.dart';
import 'android/gradle_utils.dart'; import 'android/gradle_utils.dart';
import 'base/common.dart'; import 'base/common.dart';
...@@ -89,7 +90,19 @@ class DevelopmentArtifact { ...@@ -89,7 +90,19 @@ class DevelopmentArtifact {
class Cache { class Cache {
/// [rootOverride] is configurable for testing. /// [rootOverride] is configurable for testing.
/// [artifacts] is configurable for testing. /// [artifacts] is configurable for testing.
Cache({ Directory rootOverride, List<ArtifactSet> artifacts }) : _rootOverride = rootOverride { Cache({
Directory rootOverride,
List<ArtifactSet> artifacts,
// TODO(jonahwilliams): make required once migrated to context-free.
Logger logger,
FileSystem fileSystem,
Platform platform,
OperatingSystemUtils osUtils,
}) : _rootOverride = rootOverride,
_logger = logger ?? globals.logger,
_fileSystem = fileSystem ?? globals.fs,
_platform = platform ?? globals.platform ,
_osUtils = osUtils ?? os {
if (artifacts == null) { if (artifacts == null) {
_artifacts.add(MaterialFonts(this)); _artifacts.add(MaterialFonts(this));
...@@ -116,6 +129,11 @@ class Cache { ...@@ -116,6 +129,11 @@ class Cache {
} }
} }
final Logger _logger;
final Platform _platform;
final FileSystem _fileSystem;
final OperatingSystemUtils _osUtils;
static const List<String> _hostsBlockedInChina = <String> [ static const List<String> _hostsBlockedInChina = <String> [
'storage.googleapis.com', 'storage.googleapis.com',
]; ];
...@@ -217,7 +235,7 @@ class Cache { ...@@ -217,7 +235,7 @@ class Cache {
if (_dartSdkVersion == null) { if (_dartSdkVersion == null) {
// Make the version string more customer-friendly. // Make the version string more customer-friendly.
// Changes '2.1.0-dev.8.0.flutter-4312ae32' to '2.1.0 (build 2.1.0-dev.8.0 4312ae32)' // Changes '2.1.0-dev.8.0.flutter-4312ae32' to '2.1.0 (build 2.1.0-dev.8.0 4312ae32)'
final String justVersion = globals.platform.version.split(' ')[0]; final String justVersion = _platform.version.split(' ')[0];
_dartSdkVersion = justVersion.replaceFirstMapped(RegExp(r'(\d+\.\d+\.\d+)(.+)'), (Match match) { _dartSdkVersion = justVersion.replaceFirstMapped(RegExp(r'(\d+\.\d+\.\d+)(.+)'), (Match match) {
final String noFlutter = match[2].replaceAll('.flutter-', ' '); final String noFlutter = match[2].replaceAll('.flutter-', ' ');
return '${match[1]} (build ${match[1]}$noFlutter)'; return '${match[1]} (build ${match[1]}$noFlutter)';
...@@ -234,7 +252,7 @@ class Cache { ...@@ -234,7 +252,7 @@ class Cache {
String _engineRevision; String _engineRevision;
String get storageBaseUrl { String get storageBaseUrl {
final String overrideUrl = globals.platform.environment['FLUTTER_STORAGE_BASE_URL']; final String overrideUrl = _platform.environment['FLUTTER_STORAGE_BASE_URL'];
if (overrideUrl == null) { if (overrideUrl == null) {
return 'https://storage.googleapis.com'; return 'https://storage.googleapis.com';
} }
...@@ -254,7 +272,7 @@ class Cache { ...@@ -254,7 +272,7 @@ class Cache {
if (_hasWarnedAboutStorageOverride) { if (_hasWarnedAboutStorageOverride) {
return; return;
} }
globals.logger.printStatus( _logger.printStatus(
'Flutter assets will be downloaded from $overrideUrl. Make sure you trust this source!', 'Flutter assets will be downloaded from $overrideUrl. Make sure you trust this source!',
emphasis: true, emphasis: true,
); );
...@@ -264,18 +282,18 @@ class Cache { ...@@ -264,18 +282,18 @@ class Cache {
/// Return the top-level directory in the cache; this is `bin/cache`. /// Return the top-level directory in the cache; this is `bin/cache`.
Directory getRoot() { Directory getRoot() {
if (_rootOverride != null) { if (_rootOverride != null) {
return globals.fs.directory(globals.fs.path.join(_rootOverride.path, 'bin', 'cache')); return _fileSystem.directory(_fileSystem.path.join(_rootOverride.path, 'bin', 'cache'));
} else { } else {
return globals.fs.directory(globals.fs.path.join(flutterRoot, 'bin', 'cache')); return _fileSystem.directory(_fileSystem.path.join(flutterRoot, 'bin', 'cache'));
} }
} }
/// Return a directory in the cache dir. For `pkg`, this will return `bin/cache/pkg`. /// Return a directory in the cache dir. For `pkg`, this will return `bin/cache/pkg`.
Directory getCacheDir(String name) { Directory getCacheDir(String name) {
final Directory dir = globals.fs.directory(globals.fs.path.join(getRoot().path, name)); final Directory dir = _fileSystem.directory(_fileSystem.path.join(getRoot().path, name));
if (!dir.existsSync()) { if (!dir.existsSync()) {
dir.createSync(recursive: true); dir.createSync(recursive: true);
os.chmod(dir, '755'); _osUtils.chmod(dir, '755');
} }
return dir; return dir;
} }
...@@ -287,7 +305,7 @@ class Cache { ...@@ -287,7 +305,7 @@ class Cache {
Directory getCacheArtifacts() => getCacheDir('artifacts'); Directory getCacheArtifacts() => getCacheDir('artifacts');
/// Location of LICENSE file. /// Location of LICENSE file.
File getLicenseFile() => globals.fs.file(globals.fs.path.join(flutterRoot, 'LICENSE')); File getLicenseFile() => _fileSystem.file(_fileSystem.path.join(flutterRoot, 'LICENSE'));
/// Get a named directory from with the cache's artifact directory; for example, /// Get a named directory from with the cache's artifact directory; for example,
/// `material_fonts` would return `bin/cache/artifacts/material_fonts`. /// `material_fonts` would return `bin/cache/artifacts/material_fonts`.
...@@ -323,7 +341,7 @@ class Cache { ...@@ -323,7 +341,7 @@ class Cache {
} }
String getVersionFor(String artifactName) { String getVersionFor(String artifactName) {
final File versionFile = globals.fs.file(globals.fs.path.join( final File versionFile = _fileSystem.file(globals.fs.path.join(
_rootOverride?.path ?? flutterRoot, 'bin', 'internal', _rootOverride?.path ?? flutterRoot, 'bin', 'internal',
'$artifactName.version')); '$artifactName.version'));
return versionFile.existsSync() ? versionFile.readAsStringSync().trim() : null; return versionFile.existsSync() ? versionFile.readAsStringSync().trim() : null;
...@@ -339,7 +357,7 @@ class Cache { ...@@ -339,7 +357,7 @@ class Cache {
} }
File getStampFileFor(String artifactName) { File getStampFileFor(String artifactName) {
return globals.fs.file(globals.fs.path.join(getRoot().path, '$artifactName.stamp')); return _fileSystem.file(_fileSystem.path.join(getRoot().path, '$artifactName.stamp'));
} }
/// Returns `true` if either [entity] is older than the tools stamp or if /// Returns `true` if either [entity] is older than the tools stamp or if
...@@ -358,13 +376,13 @@ class Cache { ...@@ -358,13 +376,13 @@ class Cache {
final Uri url = Uri.parse(urlStr); final Uri url = Uri.parse(urlStr);
final Directory thirdPartyDir = getArtifactDirectory('third_party'); final Directory thirdPartyDir = getArtifactDirectory('third_party');
final Directory serviceDir = globals.fs.directory(globals.fs.path.join(thirdPartyDir.path, serviceName)); final Directory serviceDir = _fileSystem.directory(_fileSystem.path.join(thirdPartyDir.path, serviceName));
if (!serviceDir.existsSync()) { if (!serviceDir.existsSync()) {
serviceDir.createSync(recursive: true); serviceDir.createSync(recursive: true);
os.chmod(serviceDir, '755'); _osUtils.chmod(serviceDir, '755');
} }
final File cachedFile = globals.fs.file(globals.fs.path.join(serviceDir.path, url.pathSegments.last)); final File cachedFile = _fileSystem.file(_fileSystem.path.join(serviceDir.path, url.pathSegments.last));
if (!cachedFile.existsSync()) { if (!cachedFile.existsSync()) {
try { try {
await _downloadFile(url, cachedFile); await _downloadFile(url, cachedFile);
...@@ -383,7 +401,7 @@ class Cache { ...@@ -383,7 +401,7 @@ class Cache {
} }
for (final ArtifactSet artifact in _artifacts) { for (final ArtifactSet artifact in _artifacts) {
if (!requiredArtifacts.contains(artifact.developmentArtifact)) { if (!requiredArtifacts.contains(artifact.developmentArtifact)) {
globals.printTrace('Artifact $artifact is not required, skipping update.'); _logger.printTrace('Artifact $artifact is not required, skipping update.');
continue; continue;
} }
if (artifact.isUpToDate()) { if (artifact.isUpToDate()) {
...@@ -393,7 +411,7 @@ class Cache { ...@@ -393,7 +411,7 @@ class Cache {
await artifact.update(); await artifact.update();
} on SocketException catch (e) { } on SocketException catch (e) {
if (_hostsBlockedInChina.contains(e.address?.host)) { if (_hostsBlockedInChina.contains(e.address?.host)) {
globals.printError( _logger.printError(
'Failed to retrieve Flutter tool dependencies: ${e.message}.\n' 'Failed to retrieve Flutter tool dependencies: ${e.message}.\n'
'If you\'re in China, please see this page: ' 'If you\'re in China, please see this page: '
'https://flutter.dev/community/china', 'https://flutter.dev/community/china',
...@@ -409,15 +427,15 @@ class Cache { ...@@ -409,15 +427,15 @@ class Cache {
String engineVersion, String engineVersion,
bool includeAllPlatforms = true, bool includeAllPlatforms = true,
}) async { }) async {
final bool includeAllPlatformsState = globals.cache.includeAllPlatforms; final bool includeAllPlatformsState = this.includeAllPlatforms;
bool allAvailible = true; bool allAvailible = true;
globals.cache.includeAllPlatforms = includeAllPlatforms; this.includeAllPlatforms = includeAllPlatforms;
for (final ArtifactSet cachedArtifact in _artifacts) { for (final ArtifactSet cachedArtifact in _artifacts) {
if (cachedArtifact is EngineCachedArtifact) { if (cachedArtifact is EngineCachedArtifact) {
allAvailible &= await cachedArtifact.checkForArtifacts(engineVersion); allAvailible &= await cachedArtifact.checkForArtifacts(engineVersion);
} }
} }
globals.cache.includeAllPlatforms = includeAllPlatformsState; this.includeAllPlatforms = includeAllPlatformsState;
return allAvailible; return allAvailible;
} }
} }
......
...@@ -72,10 +72,18 @@ Future<T> runInContext<T>( ...@@ -72,10 +72,18 @@ Future<T> runInContext<T>(
AndroidValidator: () => AndroidValidator(), AndroidValidator: () => AndroidValidator(),
AndroidWorkflow: () => AndroidWorkflow(), AndroidWorkflow: () => AndroidWorkflow(),
ApplicationPackageFactory: () => ApplicationPackageFactory(), ApplicationPackageFactory: () => ApplicationPackageFactory(),
Artifacts: () => CachedArtifacts(), Artifacts: () => CachedArtifacts(
fileSystem: globals.fs,
cache: globals.cache,
platform: globals.platform,
),
AssetBundleFactory: () => AssetBundleFactory.defaultInstance, AssetBundleFactory: () => AssetBundleFactory.defaultInstance,
BuildSystem: () => const BuildSystem(), BuildSystem: () => const BuildSystem(),
Cache: () => Cache(), Cache: () => Cache(
fileSystem: globals.fs,
logger: globals.logger,
platform: globals.platform,
),
ChromeLauncher: () => const ChromeLauncher(), ChromeLauncher: () => const ChromeLauncher(),
CocoaPods: () => CocoaPods(), CocoaPods: () => CocoaPods(),
CocoaPodsValidator: () => const CocoaPodsValidator(), CocoaPodsValidator: () => const CocoaPodsValidator(),
......
...@@ -3,55 +3,57 @@ ...@@ -3,55 +3,57 @@
// found in the LICENSE file. // found in the LICENSE file.
import 'package:file/memory.dart'; import 'package:file/memory.dart';
import 'package:flutter_tools/src/base/logger.dart';
import 'package:flutter_tools/src/base/os.dart';
import 'package:mockito/mockito.dart';
import 'package:platform/platform.dart'; import 'package:platform/platform.dart';
import 'package:flutter_tools/src/artifacts.dart'; import 'package:flutter_tools/src/artifacts.dart';
import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/base/file_system.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/globals.dart' as globals;
import '../src/common.dart'; import '../src/common.dart';
import '../src/context.dart'; import '../src/context.dart';
void main() { void main() {
group('Artifacts', () {
MemoryFileSystem memoryFileSystem;
Directory tempDir;
setUp(() {
memoryFileSystem = MemoryFileSystem();
tempDir = memoryFileSystem.systemTempDirectory.createTempSync('flutter_artifacts_test.');
});
tearDown(() {
tryToDelete(tempDir);
});
group('CachedArtifacts', () { group('CachedArtifacts', () {
CachedArtifacts artifacts; CachedArtifacts artifacts;
Cache cache;
FileSystem fileSystem;
Platform platform;
setUp(() { setUp(() {
artifacts = CachedArtifacts(); fileSystem = MemoryFileSystem();
final Directory cacheRoot = fileSystem.directory('root')
..createSync();
platform = FakePlatform(operatingSystem: 'linux');
cache = Cache(
rootOverride: cacheRoot,
fileSystem: fileSystem,
platform: platform,
logger: MockLogger(),
osUtils: MockOperatingSystemUtils(),
);
artifacts = CachedArtifacts(
fileSystem: fileSystem,
cache: cache,
platform: platform,
);
}); });
testUsingContext('getArtifactPath', () { testWithoutContext('getArtifactPath', () {
expect( expect(
artifacts.getArtifactPath(Artifact.flutterFramework, platform: TargetPlatform.ios, mode: BuildMode.release), artifacts.getArtifactPath(Artifact.flutterFramework, platform: TargetPlatform.ios, mode: BuildMode.release),
globals.fs.path.join(tempDir.path, 'bin', 'cache', 'artifacts', 'engine', 'ios-release', 'Flutter.framework'), fileSystem.path.join('root', 'bin', 'cache', 'artifacts', 'engine', 'ios-release', 'Flutter.framework'),
); );
expect( expect(
artifacts.getArtifactPath(Artifact.flutterTester), artifacts.getArtifactPath(Artifact.flutterTester),
globals.fs.path.join(tempDir.path, 'bin', 'cache', 'artifacts', 'engine', 'linux-x64', 'flutter_tester'), fileSystem.path.join('root', 'bin', 'cache', 'artifacts', 'engine', 'linux-x64', 'flutter_tester'),
); );
}, overrides: <Type, Generator>{
Cache: () => Cache(rootOverride: tempDir),
FileSystem: () => memoryFileSystem,
ProcessManager: () => FakeProcessManager.any(),
Platform: () => FakePlatform(operatingSystem: 'linux'),
}); });
testUsingContext('getEngineType', () { testWithoutContext('getEngineType', () {
expect( expect(
artifacts.getEngineType(TargetPlatform.android_arm, BuildMode.debug), artifacts.getEngineType(TargetPlatform.android_arm, BuildMode.debug),
'android-arm', 'android-arm',
...@@ -64,44 +66,53 @@ void main() { ...@@ -64,44 +66,53 @@ void main() {
artifacts.getEngineType(TargetPlatform.darwin_x64), artifacts.getEngineType(TargetPlatform.darwin_x64),
'darwin-x64', 'darwin-x64',
); );
}, overrides: <Type, Generator>{
Cache: () => Cache(rootOverride: tempDir),
FileSystem: () => memoryFileSystem,
ProcessManager: () => FakeProcessManager.any(),
Platform: () => FakePlatform(operatingSystem: 'linux'),
}); });
}); });
group('LocalEngineArtifacts', () { group('LocalEngineArtifacts', () {
LocalEngineArtifacts artifacts; LocalEngineArtifacts artifacts;
Cache cache;
FileSystem fileSystem;
Platform platform;
setUp(() { setUp(() {
artifacts = LocalEngineArtifacts(tempDir.path, fileSystem = MemoryFileSystem();
memoryFileSystem.path.join(tempDir.path, 'out', 'android_debug_unopt'), final Directory cacheRoot = fileSystem.directory('root')
memoryFileSystem.path.join(tempDir.path, 'out', 'host_debug_unopt'), ..createSync();
platform = FakePlatform(operatingSystem: 'linux');
cache = Cache(
rootOverride: cacheRoot,
fileSystem: fileSystem,
platform: platform,
logger: MockLogger(),
osUtils: MockOperatingSystemUtils(),
);
artifacts = LocalEngineArtifacts(fileSystem.currentDirectory.path,
fileSystem.path.join(fileSystem.currentDirectory.path, 'out', 'android_debug_unopt'),
fileSystem.path.join(fileSystem.currentDirectory.path, 'out', 'host_debug_unopt'),
cache: cache,
fileSystem: fileSystem,
platform: platform,
processManager: FakeProcessManager.any(),
); );
}); });
testUsingContext('getArtifactPath', () { testWithoutContext('getArtifactPath', () {
expect( expect(
artifacts.getArtifactPath(Artifact.flutterFramework, platform: TargetPlatform.ios, mode: BuildMode.release), artifacts.getArtifactPath(Artifact.flutterFramework, platform: TargetPlatform.ios, mode: BuildMode.release),
globals.fs.path.join(tempDir.path, 'out', 'android_debug_unopt', 'Flutter.framework'), fileSystem.path.join('/out', 'android_debug_unopt', 'Flutter.framework'),
); );
expect( expect(
artifacts.getArtifactPath(Artifact.flutterTester), artifacts.getArtifactPath(Artifact.flutterTester),
globals.fs.path.join(tempDir.path, 'out', 'android_debug_unopt', 'flutter_tester'), fileSystem.path.join('/out', 'android_debug_unopt', 'flutter_tester'),
); );
expect( expect(
artifacts.getArtifactPath(Artifact.engineDartSdkPath), artifacts.getArtifactPath(Artifact.engineDartSdkPath),
globals.fs.path.join(tempDir.path, 'out', 'host_debug_unopt', 'dart-sdk'), fileSystem.path.join('/out', 'host_debug_unopt', 'dart-sdk'),
); );
}, overrides: <Type, Generator>{
FileSystem: () => memoryFileSystem,
ProcessManager: () => FakeProcessManager.any(),
Platform: () => FakePlatform(operatingSystem: 'linux'),
}); });
testUsingContext('getEngineType', () { testWithoutContext('getEngineType', () {
expect( expect(
artifacts.getEngineType(TargetPlatform.android_arm, BuildMode.debug), artifacts.getEngineType(TargetPlatform.android_arm, BuildMode.debug),
'android_debug_unopt', 'android_debug_unopt',
...@@ -114,27 +125,26 @@ void main() { ...@@ -114,27 +125,26 @@ void main() {
artifacts.getEngineType(TargetPlatform.darwin_x64), artifacts.getEngineType(TargetPlatform.darwin_x64),
'android_debug_unopt', 'android_debug_unopt',
); );
}, overrides: <Type, Generator>{
FileSystem: () => memoryFileSystem,
ProcessManager: () => FakeProcessManager.any(),
Platform: () => FakePlatform(operatingSystem: 'linux'),
}); });
testUsingContext('Looks up dart.exe on windows platforms', () async { testWithoutContext('Looks up dart.exe on windows platforms', () async {
artifacts = LocalEngineArtifacts(fileSystem.currentDirectory.path,
fileSystem.path.join(fileSystem.currentDirectory.path, 'out', 'android_debug_unopt'),
fileSystem.path.join(fileSystem.currentDirectory.path, 'out', 'host_debug_unopt'),
cache: cache,
fileSystem: fileSystem,
platform: FakePlatform(operatingSystem: 'windows'),
processManager: FakeProcessManager.any(),
);
expect(artifacts.getArtifactPath(Artifact.engineDartBinary), contains('.exe')); expect(artifacts.getArtifactPath(Artifact.engineDartBinary), contains('.exe'));
}, overrides: <Type, Generator>{
FileSystem: () => memoryFileSystem,
ProcessManager: () => FakeProcessManager.any(),
Platform: () => FakePlatform(operatingSystem: 'windows'),
}); });
testUsingContext('Looks up dart on linux platforms', () async { testWithoutContext('Looks up dart on linux platforms', () async {
expect(artifacts.getArtifactPath(Artifact.engineDartBinary), isNot(contains('.exe'))); expect(artifacts.getArtifactPath(Artifact.engineDartBinary), isNot(contains('.exe')));
}, overrides: <Type, Generator>{
FileSystem: () => memoryFileSystem,
ProcessManager: () => FakeProcessManager.any(),
Platform: () => FakePlatform(operatingSystem: 'linux'),
});
}); });
}); });
} }
class MockLogger extends Mock implements Logger {}
class MockOperatingSystemUtils extends Mock implements OperatingSystemUtils {}
...@@ -12,6 +12,7 @@ import 'package:flutter_tools/src/ios/plist_parser.dart'; ...@@ -12,6 +12,7 @@ import 'package:flutter_tools/src/ios/plist_parser.dart';
import 'package:flutter_tools/src/macos/xcode.dart'; import 'package:flutter_tools/src/macos/xcode.dart';
import 'package:mockito/mockito.dart'; import 'package:mockito/mockito.dart';
import 'package:process/process.dart'; import 'package:process/process.dart';
import 'package:flutter_tools/src/globals.dart' as globals;
import '../../src/common.dart'; import '../../src/common.dart';
import '../../src/context.dart'; import '../../src/context.dart';
...@@ -36,7 +37,12 @@ void main() { ...@@ -36,7 +37,12 @@ void main() {
equals('Flutter.framework not found at ios_profile/Flutter.framework'), equals('Flutter.framework not found at ios_profile/Flutter.framework'),
); );
}, overrides: <Type, Generator>{ }, overrides: <Type, Generator>{
Artifacts: () => LocalEngineArtifacts('/engine', 'ios_profile', 'host_profile'), Artifacts: () => LocalEngineArtifacts('/engine', 'ios_profile', 'host_profile',
fileSystem: memoryFileSystem,
cache: globals.cache,
platform: globals.platform,
processManager: mockProcessManager,
),
FileSystem: () => memoryFileSystem, FileSystem: () => memoryFileSystem,
ProcessManager: () => FakeProcessManager.any(), ProcessManager: () => FakeProcessManager.any(),
}); });
...@@ -60,7 +66,12 @@ void main() { ...@@ -60,7 +66,12 @@ void main() {
'Expected a string like "Apple (LLVM|clang) #.#.# (clang-####.#.##.#)".'), 'Expected a string like "Apple (LLVM|clang) #.#.# (clang-####.#.##.#)".'),
); );
}, overrides: <Type, Generator>{ }, overrides: <Type, Generator>{
Artifacts: () => LocalEngineArtifacts('/engine', 'ios_profile', 'host_profile'), Artifacts: () => LocalEngineArtifacts('/engine', 'ios_profile', 'host_profile',
fileSystem: memoryFileSystem,
cache: globals.cache,
platform: globals.platform,
processManager: mockProcessManager,
),
FileSystem: () => memoryFileSystem, FileSystem: () => memoryFileSystem,
ProcessManager: () => mockProcessManager, ProcessManager: () => mockProcessManager,
Xcode: () => mockXcode, Xcode: () => mockXcode,
...@@ -83,7 +94,12 @@ void main() { ...@@ -83,7 +94,12 @@ void main() {
await validateBitcode(BuildMode.profile, TargetPlatform.ios); await validateBitcode(BuildMode.profile, TargetPlatform.ios);
}, overrides: <Type, Generator>{ }, overrides: <Type, Generator>{
Artifacts: () => LocalEngineArtifacts('/engine', 'ios_profile', 'host_profile'), Artifacts: () => LocalEngineArtifacts('/engine', 'ios_profile', 'host_profile',
fileSystem: memoryFileSystem,
cache: globals.cache,
platform: globals.platform,
processManager: mockProcessManager,
),
FileSystem: () => memoryFileSystem, FileSystem: () => memoryFileSystem,
ProcessManager: () => mockProcessManager, ProcessManager: () => mockProcessManager,
Xcode: () => mockXcode, Xcode: () => mockXcode,
...@@ -105,7 +121,12 @@ void main() { ...@@ -105,7 +121,12 @@ void main() {
await validateBitcode(BuildMode.profile, TargetPlatform.ios); await validateBitcode(BuildMode.profile, TargetPlatform.ios);
}, overrides: <Type, Generator>{ }, overrides: <Type, Generator>{
Artifacts: () => LocalEngineArtifacts('/engine', 'ios_profile', 'host_profile'), Artifacts: () => LocalEngineArtifacts('/engine', 'ios_profile', 'host_profile',
fileSystem: memoryFileSystem,
cache: globals.cache,
platform: globals.platform,
processManager: mockProcessManager,
),
FileSystem: () => memoryFileSystem, FileSystem: () => memoryFileSystem,
ProcessManager: () => mockProcessManager, ProcessManager: () => mockProcessManager,
Xcode: () => mockXcode, Xcode: () => mockXcode,
...@@ -133,7 +154,12 @@ void main() { ...@@ -133,7 +154,12 @@ void main() {
'of Xcode to at least 10.0.1.'), 'of Xcode to at least 10.0.1.'),
); );
}, overrides: <Type, Generator>{ }, overrides: <Type, Generator>{
Artifacts: () => LocalEngineArtifacts('/engine', 'ios_profile', 'host_profile'), Artifacts: () => LocalEngineArtifacts('/engine', 'ios_profile', 'host_profile',
fileSystem: memoryFileSystem,
cache: globals.cache,
platform: globals.platform,
processManager: mockProcessManager,
),
FileSystem: () => memoryFileSystem, FileSystem: () => memoryFileSystem,
ProcessManager: () => mockProcessManager, ProcessManager: () => mockProcessManager,
Xcode: () => mockXcode, Xcode: () => mockXcode,
...@@ -157,7 +183,12 @@ void main() { ...@@ -157,7 +183,12 @@ void main() {
expect(testLogger.statusText, ''); expect(testLogger.statusText, '');
}, overrides: <Type, Generator>{ }, overrides: <Type, Generator>{
Artifacts: () => LocalEngineArtifacts('/engine', 'ios_profile', 'host_profile'), Artifacts: () => LocalEngineArtifacts('/engine', 'ios_profile', 'host_profile',
fileSystem: memoryFileSystem,
cache: globals.cache,
platform: globals.platform,
processManager: mockProcessManager,
),
FileSystem: () => memoryFileSystem, FileSystem: () => memoryFileSystem,
ProcessManager: () => mockProcessManager, ProcessManager: () => mockProcessManager,
Xcode: () => mockXcode, Xcode: () => mockXcode,
...@@ -181,7 +212,12 @@ void main() { ...@@ -181,7 +212,12 @@ void main() {
expect(testLogger.statusText, ''); expect(testLogger.statusText, '');
}, overrides: <Type, Generator>{ }, overrides: <Type, Generator>{
Artifacts: () => LocalEngineArtifacts('/engine', 'ios_profile', 'host_profile'), Artifacts: () => LocalEngineArtifacts('/engine', 'ios_profile', 'host_profile',
fileSystem: memoryFileSystem,
cache: globals.cache,
platform: globals.platform,
processManager: mockProcessManager,
),
FileSystem: () => memoryFileSystem, FileSystem: () => memoryFileSystem,
ProcessManager: () => mockProcessManager, ProcessManager: () => mockProcessManager,
Xcode: () => mockXcode, Xcode: () => mockXcode,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment