Test that fasta_codes_generated.dart is up to date
Change-Id: If9fbbdaf495b32da7a5a288e2fe63bee6f29ee1e Reviewed-on: https://dart-review.googlesource.com/55888 Commit-Queue: Peter von der Ahé <ahe@google.com> Reviewed-by: Kevin Millikin <kmillikin@google.com>
This commit is contained in:
committed by
commit-bot@chromium.org
parent
eec11ebe4a
commit
cb9bf910f9
@@ -2,6 +2,8 @@
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
import 'dart:async';
|
||||
|
||||
import 'dart:io';
|
||||
|
||||
import 'dart:isolate';
|
||||
@@ -14,6 +16,17 @@ import "package:front_end/src/fasta/severity.dart" show severityEnumNames;
|
||||
|
||||
main(List<String> arguments) async {
|
||||
var port = new ReceivePort();
|
||||
await new File.fromUri(await computeGeneratedFile())
|
||||
.writeAsString(await generateMessagesFile(), flush: true);
|
||||
port.close();
|
||||
}
|
||||
|
||||
Future<Uri> computeGeneratedFile() {
|
||||
return Isolate.resolvePackageUri(
|
||||
Uri.parse('package:front_end/src/fasta/fasta_codes_generated.dart'));
|
||||
}
|
||||
|
||||
Future<String> generateMessagesFile() async {
|
||||
Uri messagesFile = Platform.script.resolve("../../messages.yaml");
|
||||
Map yaml = loadYaml(await new File.fromUri(messagesFile).readAsStringSync());
|
||||
StringBuffer sb = new StringBuffer();
|
||||
@@ -45,13 +58,7 @@ part of fasta.codes;
|
||||
map['analyzerCode'], map['dart2jsCode'], map['severity']));
|
||||
}
|
||||
|
||||
String dartfmtedText = new DartFormatter().format("$sb");
|
||||
|
||||
Uri problemsFile = await Isolate.resolvePackageUri(
|
||||
Uri.parse('package:front_end/src/fasta/fasta_codes_generated.dart'));
|
||||
await new File.fromUri(problemsFile)
|
||||
.writeAsString(dartfmtedText, flush: true);
|
||||
port.close();
|
||||
return new DartFormatter().format("$sb");
|
||||
}
|
||||
|
||||
final RegExp placeholderPattern = new RegExp("#[a-zA-Z0-9_]+");
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
import "dart:io" show File;
|
||||
|
||||
import "package:async_helper/async_helper.dart" show asyncTest;
|
||||
|
||||
import "package:expect/expect.dart" show Expect;
|
||||
|
||||
import "generate_messages.dart" show computeGeneratedFile, generateMessagesFile;
|
||||
|
||||
main() {
|
||||
asyncTest(() async {
|
||||
Uri generatedFile = await computeGeneratedFile();
|
||||
String generated = await generateMessagesFile();
|
||||
String actual = await new File.fromUri(generatedFile).readAsString();
|
||||
Expect.stringEquals(
|
||||
generated, actual, "${generatedFile.path} is out of date");
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user