Be more helpful when l10n generation fails (#83134)

This commit is contained in:
Michael Goderbauer 2021-05-21 17:19:02 -07:00 committed by GitHub
parent a05076e45b
commit f7bcfa8e95
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 28 additions and 8 deletions

View File

@ -9,6 +9,7 @@ import 'package:yaml/yaml.dart';
import '../base/common.dart'; import '../base/common.dart';
import '../base/file_system.dart'; import '../base/file_system.dart';
import '../base/utils.dart';
import '../build_system/build_system.dart'; import '../build_system/build_system.dart';
import '../build_system/targets/localizations.dart'; import '../build_system/targets/localizations.dart';
@ -62,7 +63,14 @@ Future<void> generateLocalizationsSyntheticPackage({
environment, environment,
); );
if (result == null || result.hasException) { if (result == null) {
throwToolExit('Generating synthetic localizations package has failed.'); throwToolExit('Generating synthetic localizations package failed: result is null.');
}
if (result.hasException) {
throwToolExit(
'Generating synthetic localizations package failed with ${result.exceptions.length} ${pluralize('error', result.exceptions.length)}:'
'\n\n'
'${result.exceptions.values.map<Object>((ExceptionMeasurement e) => e.exception).join('\n\n')}',
);
} }
} }

View File

@ -45,7 +45,7 @@ void main() {
); );
final Completer<void> completer = Completer<void>(); final Completer<void> completer = Completer<void>();
final BuildResult exception = BuildResult(success: false, exceptions: <String, ExceptionMeasurement>{ final BuildResult exception = BuildResult(success: false, exceptions: <String, ExceptionMeasurement>{
'hello': ExceptionMeasurement('hello', 'bar', null), 'hello': ExceptionMeasurement('hello', const FormatException('illegal character in input string'), null),
}); });
final TestBuildSystem buildSystem = TestBuildSystem.all(exception, (Target target, Environment environment) { final TestBuildSystem buildSystem = TestBuildSystem.all(exception, (Target target, Environment environment) {
expect(target, const GenerateLocalizationsTarget()); expect(target, const GenerateLocalizationsTarget());
@ -58,7 +58,11 @@ void main() {
environment: environment, environment: environment,
buildSystem: buildSystem, buildSystem: buildSystem,
), ),
throwsToolExit(message: 'Generating synthetic localizations package has failed.'), throwsToolExit(message:
'Generating synthetic localizations package failed with 1 error:'
'\n\n'
'FormatException: illegal character in input string',
),
); );
await completer.future; await completer.future;
}); });
@ -90,7 +94,7 @@ void main() {
); );
final Completer<void> completer = Completer<void>(); final Completer<void> completer = Completer<void>();
final BuildResult exception = BuildResult(success: false, exceptions: <String, ExceptionMeasurement>{ final BuildResult exception = BuildResult(success: false, exceptions: <String, ExceptionMeasurement>{
'hello': ExceptionMeasurement('hello', 'bar', null), 'hello': ExceptionMeasurement('hello', const FormatException('illegal character in input string'), null),
}); });
final TestBuildSystem buildSystem = TestBuildSystem.all(exception, (Target target, Environment environment) { final TestBuildSystem buildSystem = TestBuildSystem.all(exception, (Target target, Environment environment) {
expect(target, const GenerateLocalizationsTarget()); expect(target, const GenerateLocalizationsTarget());
@ -103,7 +107,11 @@ void main() {
environment: environment, environment: environment,
buildSystem: buildSystem, buildSystem: buildSystem,
), ),
throwsToolExit(message: 'Generating synthetic localizations package has failed.'), throwsToolExit(message:
'Generating synthetic localizations package failed with 1 error:'
'\n\n'
'FormatException: illegal character in input string',
),
); );
await completer.future; await completer.future;
}); });
@ -133,7 +141,7 @@ void main() {
); );
final Completer<void> completer = Completer<void>(); final Completer<void> completer = Completer<void>();
final BuildResult exception = BuildResult(success: false, exceptions: <String, ExceptionMeasurement>{ final BuildResult exception = BuildResult(success: false, exceptions: <String, ExceptionMeasurement>{
'hello': ExceptionMeasurement('hello', 'bar', null), 'hello': ExceptionMeasurement('hello', const FormatException('illegal character in input string'), null),
}); });
final TestBuildSystem buildSystem = TestBuildSystem.all(exception, (Target target, Environment environment) { final TestBuildSystem buildSystem = TestBuildSystem.all(exception, (Target target, Environment environment) {
expect(target, const GenerateLocalizationsTarget()); expect(target, const GenerateLocalizationsTarget());
@ -146,7 +154,11 @@ void main() {
environment: environment, environment: environment,
buildSystem: buildSystem, buildSystem: buildSystem,
), ),
throwsToolExit(message: 'Generating synthetic localizations package has failed.'), throwsToolExit(message:
'Generating synthetic localizations package failed with 1 error:'
'\n\n'
'FormatException: illegal character in input string',
),
); );
await completer.future; await completer.future;
}); });