Unverified Commit f7bcfa8e authored by Michael Goderbauer's avatar Michael Goderbauer Committed by GitHub

Be more helpful when l10n generation fails (#83134)

parent a05076e4
...@@ -9,6 +9,7 @@ import 'package:yaml/yaml.dart'; ...@@ -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({ ...@@ -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')}',
);
} }
} }
...@@ -45,7 +45,7 @@ void main() { ...@@ -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() { ...@@ -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() { ...@@ -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() { ...@@ -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() { ...@@ -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() { ...@@ -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;
}); });
......
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