Unverified Commit c32d1387 authored by Paul Berry's avatar Paul Berry Committed by GitHub

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

An upcoming Dart SDK change
(https://github.com/dart-lang/sdk/commit/fa2fd41166db35afa4777e63f900e83d25709c5c)
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.
parent 8f1cd8fd
...@@ -1086,13 +1086,9 @@ Future<void> verifyNoBinaries(String workingDirectory, { Set<Hash256> grandfathe ...@@ -1086,13 +1086,9 @@ Future<void> verifyNoBinaries(String workingDirectory, { Set<Hash256> grandfathe
try { try {
utf8.decode(bytes); utf8.decode(bytes);
} on FormatException catch (error) { } on FormatException catch (error) {
if (error.message.startsWith('Bad UTF-8 encoding ')) { final Digest digest = sha256.convert(bytes);
final Digest digest = sha256.convert(bytes); if (!grandfatheredBinaries.contains(Hash256.fromDigest(digest)))
if (!grandfatheredBinaries.contains(Hash256.fromDigest(digest))) problems.add('${file.path}:${error.offset}: file is not valid UTF-8');
problems.add('${file.path}:${error.offset}: file is not valid UTF-8');
} else {
rethrow;
}
} }
} }
if (problems.isNotEmpty) { if (problems.isNotEmpty) {
......
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