Skip to content
This repository was archived by the owner on Feb 22, 2023. It is now read-only.

Commit 5a3e100

Browse files
[flutter_tools] Add test that "Unresolve URI" warnings from DWDS are filtered from logs (#102399)
1 parent a3a9a23 commit 5a3e100

File tree

2 files changed

+33
-2
lines changed

2 files changed

+33
-2
lines changed

packages/flutter_tools/lib/src/isolated/devfs_web.dart

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,7 @@ class WebAssetServer implements AssetReader {
275275
}
276276

277277
logging.Logger.root.level = logging.Level.ALL;
278-
logging.Logger.root.onRecord.listen(_log);
278+
logging.Logger.root.onRecord.listen(log);
279279

280280
// In debug builds, spin up DWDS and the full asset server.
281281
final Dwds dwds = await dwdsLauncher(
@@ -1004,7 +1004,8 @@ class ReleaseAssetServer {
10041004
}
10051005
}
10061006

1007-
void _log(logging.LogRecord event) {
1007+
@visibleForTesting
1008+
void log(logging.LogRecord event) {
10081009
final String error = event.error == null? '': 'Error: ${event.error}';
10091010
if (event.level >= logging.Level.SEVERE) {
10101011
globals.printError('${event.loggerName}: ${event.message}$error', stackTrace: event.stackTrace);

packages/flutter_tools/test/general.shard/web/devfs_web_test.dart

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import 'dart:io' hide Directory, File;
88

99
import 'package:flutter_tools/src/artifacts.dart';
1010
import 'package:flutter_tools/src/base/file_system.dart';
11+
import 'package:flutter_tools/src/base/logger.dart';
1112
import 'package:flutter_tools/src/base/platform.dart';
1213
import 'package:flutter_tools/src/build_info.dart';
1314
import 'package:flutter_tools/src/build_system/targets/web.dart';
@@ -16,6 +17,7 @@ import 'package:flutter_tools/src/convert.dart';
1617
import 'package:flutter_tools/src/globals.dart' as globals;
1718
import 'package:flutter_tools/src/isolated/devfs_web.dart';
1819
import 'package:flutter_tools/src/web/compile.dart';
20+
import 'package:logging/logging.dart' as logging;
1921
import 'package:package_config/package_config.dart';
2022
import 'package:shelf/shelf.dart';
2123
import 'package:test/fake.dart';
@@ -39,6 +41,7 @@ void main() {
3941
PackageConfig packages;
4042
Platform windows;
4143
FakeHttpServer httpServer;
44+
BufferLogger logger;
4245

4346
setUpAll(() async {
4447
packages = PackageConfig(<Package>[
@@ -50,6 +53,7 @@ void main() {
5053
httpServer = FakeHttpServer();
5154
linux = FakePlatform(environment: <String, String>{});
5255
windows = FakePlatform(operatingSystem: 'windows', environment: <String, String>{});
56+
logger = BufferLogger.test();
5357
testbed = Testbed(setup: () {
5458
webAssetServer = WebAssetServer(
5559
httpServer,
@@ -67,9 +71,35 @@ void main() {
6771
webBuildDirectory: null,
6872
basePath: null,
6973
);
74+
}, overrides: <Type, Generator>{
75+
Logger: () => logger,
7076
});
7177
});
7278

79+
test('.log() filters events', () => testbed.run(() {
80+
// harmless warning that should be filtered out
81+
const String harmlessMessage = 'Unresolved uri: dart:ui';
82+
// serious warning
83+
const String seriousMessage = 'Something bad happened';
84+
85+
final List<logging.LogRecord> events = <logging.LogRecord>[
86+
logging.LogRecord(
87+
logging.Level.WARNING,
88+
harmlessMessage,
89+
'DartUri',
90+
),
91+
logging.LogRecord(
92+
logging.Level.WARNING,
93+
seriousMessage,
94+
'DartUri',
95+
),
96+
];
97+
98+
events.forEach(log);
99+
expect(logger.warningText, contains(seriousMessage));
100+
expect(logger.warningText, isNot(contains(harmlessMessage)));
101+
}));
102+
73103
test('Handles against malformed manifest', () => testbed.run(() async {
74104
final File source = globals.fs.file('source')
75105
..writeAsStringSync('main() {}');

0 commit comments

Comments
 (0)