Thanks to visit codestin.com
Credit goes to github.com

Skip to content

[flutter_tools] Add test that "Unresolve URI" warnings from DWDS are filtered from logs #102399

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Apr 22, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions packages/flutter_tools/lib/src/isolated/devfs_web.dart
Original file line number Diff line number Diff line change
Expand Up @@ -275,7 +275,7 @@ class WebAssetServer implements AssetReader {
}

logging.Logger.root.level = logging.Level.ALL;
logging.Logger.root.onRecord.listen(_log);
logging.Logger.root.onRecord.listen(log);

// In debug builds, spin up DWDS and the full asset server.
final Dwds dwds = await dwdsLauncher(
Expand Down Expand Up @@ -1004,7 +1004,8 @@ class ReleaseAssetServer {
}
}

void _log(logging.LogRecord event) {
@visibleForTesting
void log(logging.LogRecord event) {
final String error = event.error == null? '': 'Error: ${event.error}';
if (event.level >= logging.Level.SEVERE) {
globals.printError('${event.loggerName}: ${event.message}$error', stackTrace: event.stackTrace);
Expand Down
30 changes: 30 additions & 0 deletions packages/flutter_tools/test/general.shard/web/devfs_web_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import 'dart:io' hide Directory, File;

import 'package:flutter_tools/src/artifacts.dart';
import 'package:flutter_tools/src/base/file_system.dart';
import 'package:flutter_tools/src/base/logger.dart';
import 'package:flutter_tools/src/base/platform.dart';
import 'package:flutter_tools/src/build_info.dart';
import 'package:flutter_tools/src/build_system/targets/web.dart';
Expand All @@ -16,6 +17,7 @@ import 'package:flutter_tools/src/convert.dart';
import 'package:flutter_tools/src/globals.dart' as globals;
import 'package:flutter_tools/src/isolated/devfs_web.dart';
import 'package:flutter_tools/src/web/compile.dart';
import 'package:logging/logging.dart' as logging;
import 'package:package_config/package_config.dart';
import 'package:shelf/shelf.dart';
import 'package:test/fake.dart';
Expand All @@ -39,6 +41,7 @@ void main() {
PackageConfig packages;
Platform windows;
FakeHttpServer httpServer;
BufferLogger logger;

setUpAll(() async {
packages = PackageConfig(<Package>[
Expand All @@ -50,6 +53,7 @@ void main() {
httpServer = FakeHttpServer();
linux = FakePlatform(environment: <String, String>{});
windows = FakePlatform(operatingSystem: 'windows', environment: <String, String>{});
logger = BufferLogger.test();
testbed = Testbed(setup: () {
webAssetServer = WebAssetServer(
httpServer,
Expand All @@ -67,9 +71,35 @@ void main() {
webBuildDirectory: null,
basePath: null,
);
}, overrides: <Type, Generator>{
Logger: () => logger,
});
});

test('.log() filters events', () => testbed.run(() {
// harmless warning that should be filtered out
const String harmlessMessage = 'Unresolved uri: dart:ui';
// serious warning
const String seriousMessage = 'Something bad happened';

final List<logging.LogRecord> events = <logging.LogRecord>[
logging.LogRecord(
logging.Level.WARNING,
harmlessMessage,
'DartUri',
),
logging.LogRecord(
logging.Level.WARNING,
seriousMessage,
'DartUri',
),
];

events.forEach(log);
expect(logger.warningText, contains(seriousMessage));
expect(logger.warningText, isNot(contains(harmlessMessage)));
}));

test('Handles against malformed manifest', () => testbed.run(() async {
final File source = globals.fs.file('source')
..writeAsStringSync('main() {}');
Expand Down