Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(182)

Unified Diff: tests/compiler/dart2js/serialization/helper.dart

Issue 2004833003: Support multiple resolution inputs from command line. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Fix and check library separation Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tests/compiler/dart2js/serialization/helper.dart
diff --git a/tests/compiler/dart2js/serialization/helper.dart b/tests/compiler/dart2js/serialization/helper.dart
index cde182f22e2b5ff548f7a41838936ca591c4c278..04716588b38a2bcfffe77324ac5a0f79bb55c9e3 100644
--- a/tests/compiler/dart2js/serialization/helper.dart
+++ b/tests/compiler/dart2js/serialization/helper.dart
@@ -81,17 +81,18 @@ class Arguments {
}
-Future<String> serializeDartCore(
+Future<SerializedData> serializeDartCore(
{Arguments arguments: const Arguments()}) async {
+ Uri uri = Uri.parse('memory:${arguments.serializedDataFileName}');
print('------------------------------------------------------------------');
print('serialize dart:core');
print('------------------------------------------------------------------');
- String serializedData;
+ SerializedData serializedData;
if (arguments.loadSerializedData) {
File file = new File(arguments.serializedDataFileName);
if (file.existsSync()) {
print('Loading data from $file');
- serializedData = file.readAsStringSync();
+ serializedData = new SerializedData(uri, file.readAsStringSync());
}
}
if (serializedData == null) {
@@ -102,12 +103,47 @@ Future<String> serializeDartCore(
BufferedEventSink sink = new BufferedEventSink();
compiler.serialization.serializeToSink(
sink, compiler.libraryLoader.libraries);
- serializedData = sink.text;
+ serializedData = new SerializedData(uri, sink.text);
if (arguments.saveSerializedData) {
File file = new File(arguments.serializedDataFileName);
print('Saving data to $file');
- file.writeAsStringSync(serializedData);
+ file.writeAsStringSync(serializedData.data);
}
}
return serializedData;
}
+
+class SerializedData {
+ final Uri uri;
+ final String data;
+
+ SerializedData(this.uri, this.data);
+
+ Map<String, String> toMemorySourceFiles([Map<String, String> input]) {
+ Map<String, String> sourceFiles = <String, String>{};
+ if (input != null) {
+ sourceFiles.addAll(input);
+ }
+ expandMemorySourceFiles(sourceFiles);
+ return sourceFiles;
+ }
+
+ void expandMemorySourceFiles(Map<String, String> sourceFiles) {
Siggi Cherem (dart-lang) 2016/05/24 18:08:15 are these expand methods used anywhere else? if no
Johnni Winther 2016/05/25 07:54:46 They are used in library_test.
+ if (uri.scheme == 'memory') {
+ sourceFiles[uri.path] = data;
+ }
+ }
+
+ List<Uri> toUris([List<Uri> input]) {
+ List<Uri> uris = <Uri>[];
+ if (input != null) {
+ uris.addAll(input);
+ }
+ expandUris(uris);
+ return uris;
+ }
+
+ void expandUris(List<Uri> uris) {
+ uris.add(uri);
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698