Unverified Commit 0a59698e authored by Jonah Williams's avatar Jonah Williams Committed by GitHub

[flutter_tools] migrate cache to null safety (#79864)

parent 4d1b74a0
This diff is collapsed.
...@@ -53,6 +53,7 @@ void main() { ...@@ -53,6 +53,7 @@ void main() {
rootOverride: rootOverride, rootOverride: rootOverride,
platform: fakePlatform, platform: fakePlatform,
fileSystem: memoryFileSystem, fileSystem: memoryFileSystem,
processManager: FakeProcessManager.any(),
); );
rootOverride.childDirectory('bin').childDirectory('internal').childFile('engine.version') rootOverride.childDirectory('bin').childDirectory('internal').childFile('engine.version')
..createSync(recursive: true) ..createSync(recursive: true)
......
...@@ -26,7 +26,7 @@ void main() { ...@@ -26,7 +26,7 @@ void main() {
Cache cache; Cache cache;
setUp(() { setUp(() {
cache = Cache.test(); cache = Cache.test(processManager: FakeProcessManager.any());
}); });
testUsingContext('returns 0 when called', () async { testUsingContext('returns 0 when called', () async {
......
...@@ -37,7 +37,7 @@ void main() { ...@@ -37,7 +37,7 @@ void main() {
await createTestCommandRunner(command).run(<String>['install']); await createTestCommandRunner(command).run(<String>['install']);
}, overrides: <Type, Generator>{ }, overrides: <Type, Generator>{
Cache: () => Cache.test(), Cache: () => Cache.test(processManager: FakeProcessManager.any()),
}); });
testUsingContext('returns 1 when targeted device is not Android with --device-user', () async { testUsingContext('returns 1 when targeted device is not Android with --device-user', () async {
...@@ -54,7 +54,7 @@ void main() { ...@@ -54,7 +54,7 @@ void main() {
expect(() async => createTestCommandRunner(command).run(<String>['install', '--device-user', '10']), expect(() async => createTestCommandRunner(command).run(<String>['install', '--device-user', '10']),
throwsToolExit(message: '--device-user is only supported for Android')); throwsToolExit(message: '--device-user is only supported for Android'));
}, overrides: <Type, Generator>{ }, overrides: <Type, Generator>{
Cache: () => Cache.test(), Cache: () => Cache.test(processManager: FakeProcessManager.any()),
}); });
testUsingContext('returns 0 when iOS is connected and ready for an install', () async { testUsingContext('returns 0 when iOS is connected and ready for an install', () async {
...@@ -68,7 +68,7 @@ void main() { ...@@ -68,7 +68,7 @@ void main() {
await createTestCommandRunner(command).run(<String>['install']); await createTestCommandRunner(command).run(<String>['install']);
}, overrides: <Type, Generator>{ }, overrides: <Type, Generator>{
Cache: () => Cache.test(), Cache: () => Cache.test(processManager: FakeProcessManager.any()),
}); });
}); });
} }
......
...@@ -382,7 +382,7 @@ void main() { ...@@ -382,7 +382,7 @@ void main() {
))); )));
}, overrides: <Type, Generator>{ }, overrides: <Type, Generator>{
Artifacts: () => artifacts, Artifacts: () => artifacts,
Cache: () => Cache.test(), Cache: () => Cache.test(processManager: FakeProcessManager.any()),
DeviceManager: () => mockDeviceManager, DeviceManager: () => mockDeviceManager,
FileSystem: () => fs, FileSystem: () => fs,
ProcessManager: () => FakeProcessManager.any(), ProcessManager: () => FakeProcessManager.any(),
......
...@@ -65,13 +65,13 @@ void main() { ...@@ -65,13 +65,13 @@ void main() {
}); });
testWithoutContext('should throw when locking is not acquired', () { testWithoutContext('should throw when locking is not acquired', () {
final Cache cache = Cache.test(); final Cache cache = Cache.test(processManager: FakeProcessManager.any());
expect(cache.checkLockAcquired, throwsStateError); expect(cache.checkLockAcquired, throwsStateError);
}); });
testWithoutContext('should not throw when locking is disabled', () { testWithoutContext('should not throw when locking is disabled', () {
final Cache cache = Cache.test(); final Cache cache = Cache.test(processManager: FakeProcessManager.any());
Cache.disableLocking(); Cache.disableLocking();
expect(cache.checkLockAcquired, returnsNormally); expect(cache.checkLockAcquired, returnsNormally);
...@@ -80,7 +80,7 @@ void main() { ...@@ -80,7 +80,7 @@ void main() {
testWithoutContext('should not throw when lock is acquired', () async { testWithoutContext('should not throw when lock is acquired', () async {
Cache.flutterRoot = ''; Cache.flutterRoot = '';
final FileSystem fileSystem = MemoryFileSystem.test(); final FileSystem fileSystem = MemoryFileSystem.test();
final Cache cache = Cache.test(fileSystem: fileSystem); final Cache cache = Cache.test(fileSystem: fileSystem, processManager: FakeProcessManager.any());
fileSystem.file(fileSystem.path.join('bin', 'cache', 'lockfile')) fileSystem.file(fileSystem.path.join('bin', 'cache', 'lockfile'))
.createSync(recursive: true); .createSync(recursive: true);
...@@ -92,7 +92,7 @@ void main() { ...@@ -92,7 +92,7 @@ void main() {
testWithoutContext('throws tool exit when lockfile open fails', () async { testWithoutContext('throws tool exit when lockfile open fails', () async {
final FileSystem fileSystem = MemoryFileSystem.test(); final FileSystem fileSystem = MemoryFileSystem.test();
final Cache cache = Cache.test(fileSystem: fileSystem); final Cache cache = Cache.test(fileSystem: fileSystem, processManager: FakeProcessManager.any());
fileSystem.file(fileSystem.path.join('bin', 'cache', 'lockfile')) fileSystem.file(fileSystem.path.join('bin', 'cache', 'lockfile'))
.createSync(recursive: true); .createSync(recursive: true);
...@@ -100,9 +100,12 @@ void main() { ...@@ -100,9 +100,12 @@ void main() {
}, skip: true); // TODO(jonahwilliams): implement support for lock so this can be tested with the memory file system. }, skip: true); // TODO(jonahwilliams): implement support for lock so this can be tested with the memory file system.
testWithoutContext('should not throw when FLUTTER_ALREADY_LOCKED is set', () { testWithoutContext('should not throw when FLUTTER_ALREADY_LOCKED is set', () {
final Cache cache = Cache.test(platform: FakePlatform(environment: <String, String>{ final Cache cache = Cache.test(
'FLUTTER_ALREADY_LOCKED': 'true', platform: FakePlatform(environment: <String, String>{
})); 'FLUTTER_ALREADY_LOCKED': 'true',
}),
processManager: FakeProcessManager.any(),
);
expect(cache.checkLockAcquired, returnsNormally); expect(cache.checkLockAcquired, returnsNormally);
}); });
...@@ -116,6 +119,7 @@ void main() { ...@@ -116,6 +119,7 @@ void main() {
final Directory artifactDir = fileSystem.systemTempDirectory.createTempSync('flutter_cache_test_artifact.'); final Directory artifactDir = fileSystem.systemTempDirectory.createTempSync('flutter_cache_test_artifact.');
final Directory downloadDir = fileSystem.systemTempDirectory.createTempSync('flutter_cache_test_download.'); final Directory downloadDir = fileSystem.systemTempDirectory.createTempSync('flutter_cache_test_download.');
when(mockCache.getVersionFor(any)).thenReturn('asdasd');
when(mockCache.getArtifactDirectory(any)).thenReturn(artifactDir); when(mockCache.getArtifactDirectory(any)).thenReturn(artifactDir);
when(mockCache.getDownloadDir()).thenReturn(downloadDir); when(mockCache.getDownloadDir()).thenReturn(downloadDir);
when(mockCache.setStampFor(any, any)).thenAnswer((_) { when(mockCache.setStampFor(any, any)).thenAnswer((_) {
...@@ -127,6 +131,22 @@ void main() { ...@@ -127,6 +131,22 @@ void main() {
expect(logger.errorText, contains('stamp write failed')); expect(logger.errorText, contains('stamp write failed'));
}); });
testWithoutContext('Continues on missing version file', () async {
final FileSystem fileSystem = MemoryFileSystem.test();
final BufferLogger logger = BufferLogger.test();
final Cache mockCache = MockCache();
final Directory artifactDir = fileSystem.systemTempDirectory.createTempSync('flutter_cache_test_artifact.');
final Directory downloadDir = fileSystem.systemTempDirectory.createTempSync('flutter_cache_test_download.');
when(mockCache.getVersionFor(any)).thenReturn(null); // version is missing.
when(mockCache.getArtifactDirectory(any)).thenReturn(artifactDir);
when(mockCache.getDownloadDir()).thenReturn(downloadDir);
final FakeSimpleArtifact artifact = FakeSimpleArtifact(mockCache);
await artifact.update(MockArtifactUpdater(), logger, fileSystem, MockOperatingSystemUtils());
expect(logger.errorText, contains('No known version for the artifact name "fake"'));
});
testWithoutContext('Gradle wrapper should not be up to date, if some cached artifact is not available', () { testWithoutContext('Gradle wrapper should not be up to date, if some cached artifact is not available', () {
final FileSystem fileSystem = MemoryFileSystem.test(); final FileSystem fileSystem = MemoryFileSystem.test();
final Cache cache = Cache.test(fileSystem: fileSystem, processManager: FakeProcessManager.any()); final Cache cache = Cache.test(fileSystem: fileSystem, processManager: FakeProcessManager.any());
...@@ -287,9 +307,10 @@ void main() { ...@@ -287,9 +307,10 @@ void main() {
testWithoutContext('Invalid URI for FLUTTER_STORAGE_BASE_URL throws ToolExit', () async { testWithoutContext('Invalid URI for FLUTTER_STORAGE_BASE_URL throws ToolExit', () async {
final Cache cache = Cache.test( final Cache cache = Cache.test(
platform: FakePlatform(environment: <String, String>{ platform: FakePlatform(environment: <String, String>{
'FLUTTER_STORAGE_BASE_URL': ' http://foo', 'FLUTTER_STORAGE_BASE_URL': ' http://foo',
}, }),
)); processManager: FakeProcessManager.any(),
);
expect(() => cache.storageBaseUrl, throwsToolExit()); expect(() => cache.storageBaseUrl, throwsToolExit());
}); });
...@@ -400,7 +421,7 @@ void main() { ...@@ -400,7 +421,7 @@ void main() {
}); });
testWithoutContext('IosUsbArtifacts uses unsigned when specified', () async { testWithoutContext('IosUsbArtifacts uses unsigned when specified', () async {
final Cache cache = Cache.test(); final Cache cache = Cache.test(processManager: FakeProcessManager.any());
cache.useUnsignedMacBinaries = true; cache.useUnsignedMacBinaries = true;
final IosUsbArtifacts iosUsbArtifacts = IosUsbArtifacts('name', cache, platform: FakePlatform(operatingSystem: 'macos')); final IosUsbArtifacts iosUsbArtifacts = IosUsbArtifacts('name', cache, platform: FakePlatform(operatingSystem: 'macos'));
...@@ -408,7 +429,7 @@ void main() { ...@@ -408,7 +429,7 @@ void main() {
}); });
testWithoutContext('IosUsbArtifacts does not use unsigned when not specified', () async { testWithoutContext('IosUsbArtifacts does not use unsigned when not specified', () async {
final Cache cache = Cache.test(); final Cache cache = Cache.test(processManager: FakeProcessManager.any());
final IosUsbArtifacts iosUsbArtifacts = IosUsbArtifacts('name', cache, platform: FakePlatform(operatingSystem: 'macos')); final IosUsbArtifacts iosUsbArtifacts = IosUsbArtifacts('name', cache, platform: FakePlatform(operatingSystem: 'macos'));
expect(iosUsbArtifacts.archiveUri.toString(), isNot(contains('/unsigned/'))); expect(iosUsbArtifacts.archiveUri.toString(), isNot(contains('/unsigned/')));
...@@ -437,7 +458,7 @@ void main() { ...@@ -437,7 +458,7 @@ void main() {
}); });
testWithoutContext('FontSubset in universal artifacts', () { testWithoutContext('FontSubset in universal artifacts', () {
final Cache cache = Cache.test(); final Cache cache = Cache.test(processManager: FakeProcessManager.any());
final FontSubsetArtifacts artifacts = FontSubsetArtifacts(cache, platform: FakePlatform(operatingSystem: 'linux')); final FontSubsetArtifacts artifacts = FontSubsetArtifacts(cache, platform: FakePlatform(operatingSystem: 'linux'));
expect(artifacts.developmentArtifact, DevelopmentArtifact.universal); expect(artifacts.developmentArtifact, DevelopmentArtifact.universal);
...@@ -535,7 +556,7 @@ void main() { ...@@ -535,7 +556,7 @@ void main() {
}); });
testWithoutContext('macOS desktop artifacts ignore filtering when requested', () { testWithoutContext('macOS desktop artifacts ignore filtering when requested', () {
final Cache cache = Cache.test(); final Cache cache = Cache.test(processManager: FakeProcessManager.any());
final MacOSEngineArtifacts artifacts = MacOSEngineArtifacts(cache, platform: FakePlatform(operatingSystem: 'linux')); final MacOSEngineArtifacts artifacts = MacOSEngineArtifacts(cache, platform: FakePlatform(operatingSystem: 'linux'));
cache.includeAllPlatforms = false; cache.includeAllPlatforms = false;
cache.platformOverrideArtifacts = <String>{'macos'}; cache.platformOverrideArtifacts = <String>{'macos'};
...@@ -544,7 +565,7 @@ void main() { ...@@ -544,7 +565,7 @@ void main() {
}); });
testWithoutContext('Windows desktop artifacts ignore filtering when requested', () { testWithoutContext('Windows desktop artifacts ignore filtering when requested', () {
final Cache cache = Cache.test(); final Cache cache = Cache.test(processManager: FakeProcessManager.any());
final WindowsEngineArtifacts artifacts = WindowsEngineArtifacts( final WindowsEngineArtifacts artifacts = WindowsEngineArtifacts(
cache, cache,
platform: FakePlatform(operatingSystem: 'linux'), platform: FakePlatform(operatingSystem: 'linux'),
...@@ -556,7 +577,7 @@ void main() { ...@@ -556,7 +577,7 @@ void main() {
}); });
testWithoutContext('Windows desktop artifacts include profile and release artifacts', () { testWithoutContext('Windows desktop artifacts include profile and release artifacts', () {
final Cache cache = Cache.test(); final Cache cache = Cache.test(processManager: FakeProcessManager.any());
final WindowsEngineArtifacts artifacts = WindowsEngineArtifacts( final WindowsEngineArtifacts artifacts = WindowsEngineArtifacts(
cache, cache,
platform: FakePlatform(operatingSystem: 'windows'), platform: FakePlatform(operatingSystem: 'windows'),
......
...@@ -45,7 +45,7 @@ void main() { ...@@ -45,7 +45,7 @@ void main() {
setUp(() { setUp(() {
final Artifacts artifacts = Artifacts.test(); final Artifacts artifacts = Artifacts.test();
cache = Cache.test(); cache = Cache.test(processManager: FakeProcessManager.any());
logger = BufferLogger.test(); logger = BufferLogger.test();
iosDeploy = IOSDeploy( iosDeploy = IOSDeploy(
artifacts: artifacts, artifacts: artifacts,
...@@ -248,7 +248,9 @@ void main() { ...@@ -248,7 +248,9 @@ void main() {
mockProcess2 = MockProcess(); mockProcess2 = MockProcess();
mockProcess3 = MockProcess(); mockProcess3 = MockProcess();
forwardedPort = ForwardedPort.withContext(123, 456, mockProcess3); forwardedPort = ForwardedPort.withContext(123, 456, mockProcess3);
cache = Cache.test(); cache = Cache.test(
processManager: FakeProcessManager.any(),
);
iosDeploy = IOSDeploy( iosDeploy = IOSDeploy(
artifacts: Artifacts.test(), artifacts: Artifacts.test(),
cache: cache, cache: cache,
...@@ -302,7 +304,7 @@ void main() { ...@@ -302,7 +304,7 @@ void main() {
setUp(() { setUp(() {
mockXcdevice = MockXcdevice(); mockXcdevice = MockXcdevice();
final Artifacts artifacts = Artifacts.test(); final Artifacts artifacts = Artifacts.test();
cache = Cache.test(); cache = Cache.test(processManager: FakeProcessManager.any());
logger = BufferLogger.test(); logger = BufferLogger.test();
mockIosWorkflow = MockIOSWorkflow(); mockIosWorkflow = MockIOSWorkflow();
fakeProcessManager = FakeProcessManager.any(); fakeProcessManager = FakeProcessManager.any();
......
...@@ -336,6 +336,7 @@ IOSDeploy setUpIOSDeploy(ProcessManager processManager, { ...@@ -336,6 +336,7 @@ IOSDeploy setUpIOSDeploy(ProcessManager processManager, {
artifacts: <ArtifactSet>[ artifacts: <ArtifactSet>[
FakeDyldEnvironmentArtifact(), FakeDyldEnvironmentArtifact(),
], ],
processManager: FakeProcessManager.any(),
); );
return IOSDeploy( return IOSDeploy(
......
...@@ -288,6 +288,7 @@ IOSDevice setUpIOSDevice({ ...@@ -288,6 +288,7 @@ IOSDevice setUpIOSDevice({
artifacts: <ArtifactSet>[ artifacts: <ArtifactSet>[
FakeDyldEnvironmentArtifact(), FakeDyldEnvironmentArtifact(),
], ],
processManager: FakeProcessManager.any(),
); );
return IOSDevice( return IOSDevice(
'1234', '1234',
......
...@@ -31,7 +31,7 @@ void main() { ...@@ -31,7 +31,7 @@ void main() {
setUp(() { setUp(() {
processManager = FakeProcessManager.list(<FakeCommand>[]); processManager = FakeProcessManager.list(<FakeCommand>[]);
fakeCache = Cache.test(); fakeCache = Cache.test(processManager: FakeProcessManager.any());
artifacts = Artifacts.test(); artifacts = Artifacts.test();
logger = BufferLogger.test(); logger = BufferLogger.test();
ideviceSyslogPath = artifacts.getArtifactPath(Artifact.idevicesyslog, platform: TargetPlatform.ios); ideviceSyslogPath = artifacts.getArtifactPath(Artifact.idevicesyslog, platform: TargetPlatform.ios);
......
...@@ -351,6 +351,7 @@ IOSDevice setUpIOSDevice({ ...@@ -351,6 +351,7 @@ IOSDevice setUpIOSDevice({
artifacts: <ArtifactSet>[ artifacts: <ArtifactSet>[
FakeDyldEnvironmentArtifact(), FakeDyldEnvironmentArtifact(),
], ],
processManager: FakeProcessManager.any(),
); );
logger ??= BufferLogger.test(); logger ??= BufferLogger.test();
......
...@@ -313,6 +313,7 @@ IOSDevice setUpIOSDevice({ ...@@ -313,6 +313,7 @@ IOSDevice setUpIOSDevice({
artifacts: <ArtifactSet>[ artifacts: <ArtifactSet>[
FakeDyldEnvironmentArtifact(), FakeDyldEnvironmentArtifact(),
], ],
processManager: FakeProcessManager.any(),
); );
return IOSDevice('123', return IOSDevice('123',
......
...@@ -46,7 +46,9 @@ void main() { ...@@ -46,7 +46,9 @@ void main() {
cache = Cache.test( cache = Cache.test(
artifacts: <ArtifactSet>[ artifacts: <ArtifactSet>[
FakeDyldEnvironmentArtifact(), FakeDyldEnvironmentArtifact(),
]); ],
processManager: FakeProcessManager.any(),
);
}); });
group('screenshot', () { group('screenshot', () {
......
...@@ -354,7 +354,7 @@ void main() { ...@@ -354,7 +354,7 @@ void main() {
xcode: xcode, xcode: xcode,
platform: null, platform: null,
artifacts: Artifacts.test(), artifacts: Artifacts.test(),
cache: Cache.test(), cache: Cache.test(processManager: FakeProcessManager.any()),
iproxy: IProxy.test(logger: logger, processManager: fakeProcessManager), iproxy: IProxy.test(logger: logger, processManager: fakeProcessManager),
); );
}); });
...@@ -382,7 +382,7 @@ void main() { ...@@ -382,7 +382,7 @@ void main() {
xcode: xcode, xcode: xcode,
platform: null, platform: null,
artifacts: Artifacts.test(), artifacts: Artifacts.test(),
cache: Cache.test(), cache: Cache.test(processManager: FakeProcessManager.any()),
iproxy: IProxy.test(logger: logger, processManager: fakeProcessManager), iproxy: IProxy.test(logger: logger, processManager: fakeProcessManager),
); );
}); });
......
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