[CP] Catch error for missing directory in FontConfigManager (#138496) (#139743)

Closes:
- https://github.com/flutter/flutter/issues/138434

We will catch any errors while attempting to clear the temp directories that don't exist for the `FontConfigManager` class
This commit is contained in:
Elias Yishak 2023-12-11 14:35:13 -07:00 committed by GitHub
parent 7417c4eaeb
commit 2e9cb0aa71
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 1 deletions

View File

@ -34,7 +34,11 @@ class FontConfigManager {
Future<void> dispose() async {
if (_fontsDirectory != null) {
globals.printTrace('Deleting ${_fontsDirectory!.path}...');
await _fontsDirectory!.delete(recursive: true);
try {
await _fontsDirectory!.delete(recursive: true);
} on FileSystemException {
// Silently exit
}
_fontsDirectory = null;
}
}

View File

@ -50,6 +50,18 @@ void main() {
uriConverter: (String input) => '$input/converted',
);
testUsingContext('Missing dir error caught for FontConfigManger.dispose', () async {
final FontConfigManager fontConfigManager = FontConfigManager();
final Directory fontsDirectory = fileSystem.file(fontConfigManager.fontConfigFile).parent;
fontsDirectory.deleteSync(recursive: true);
await fontConfigManager.dispose();
}, overrides: <Type, Generator>{
FileSystem: () => fileSystem,
ProcessManager: () => processManager,
});
group('The FLUTTER_TEST environment variable is passed to the test process', () {
setUp(() {
processManager = FakeProcessManager.list(<FakeCommand>[]);