Fix overly specific detection of non-UTF8 files in analyzer bot. (#56295)

An upcoming Dart SDK change
(fa2fd41166)
changes the precise text of the exception generated by `utf8.decode`
if a non-UTF8 file is found.  This is causing a breakage in the Dart
team's `flutter-analyze` bot (and will presumably cause a breakage in
the corresponding Flutter bot as soon as this change is rolled into
Flutter).  To avoid this breakage, the bot shouldn't rely on the exact
exception text; it is sufficient to simply catch a FormatException.
This commit is contained in:
Paul Berry 2020-05-04 09:10:20 -07:00 committed by GitHub
parent 8f1cd8fdfe
commit c32d1387ab
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1086,13 +1086,9 @@ Future<void> verifyNoBinaries(String workingDirectory, { Set<Hash256> grandfathe
try {
utf8.decode(bytes);
} on FormatException catch (error) {
if (error.message.startsWith('Bad UTF-8 encoding ')) {
final Digest digest = sha256.convert(bytes);
if (!grandfatheredBinaries.contains(Hash256.fromDigest(digest)))
problems.add('${file.path}:${error.offset}: file is not valid UTF-8');
} else {
rethrow;
}
final Digest digest = sha256.convert(bytes);
if (!grandfatheredBinaries.contains(Hash256.fromDigest(digest)))
problems.add('${file.path}:${error.offset}: file is not valid UTF-8');
}
}
if (problems.isNotEmpty) {