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

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

Issue 2007573002: Support multiple serialization sources in DeserializerSystemImpl. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Fix test. 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
« no previous file with comments | « pkg/compiler/lib/src/serialization/task.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/compiler/dart2js/serialization/library_test.dart
diff --git a/tests/compiler/dart2js/serialization/library_test.dart b/tests/compiler/dart2js/serialization/library_test.dart
index c8cfd4ceaa503b1613312c7608dfebf64bbacf7a..3c853dbacd7bc2cd49e1bc22093c99ef87495fc2 100644
--- a/tests/compiler/dart2js/serialization/library_test.dart
+++ b/tests/compiler/dart2js/serialization/library_test.dart
@@ -4,6 +4,7 @@
library dart2js.serialization_library_test;
+import 'dart:async';
import 'dart:io';
import '../memory_compiler.dart';
import 'package:async_helper/async_helper.dart';
@@ -47,20 +48,26 @@ main(List<String> arguments) {
entryPoint = Uris.dart_core;
}
asyncTest(() async {
- CompilationResult result = await runCompiler(
+ Compiler compiler = await compilerFor(
entryPoint: entryPoint, options: [Flags.analyzeAll]);
- Compiler compiler = result.compiler;
- testSerialization(compiler.libraryLoader.libraries,
- outPath: outPath,
- prettyPrint: prettyPrint,
- shardCount: shardCount);
+ compiler.serialization.supportSerialization = true;
+ await compiler.run(entryPoint);
+ List<String> data =
+ createData(compiler,
+ outPath: outPath,
+ prettyPrint: prettyPrint,
+ shardCount: shardCount);
+ testEquivalence(data, compiler.libraryLoader.libraries);
+ await testAnalysis(data, entryPoint);
});
}
-void testSerialization(Iterable<LibraryElement> libraries1,
- {String outPath,
- bool prettyPrint,
- int shardCount: 3}) {
+List<String> createData(
+ Compiler compiler,
+ {String outPath,
+ bool prettyPrint,
+ int shardCount: 3}) {
+ Iterable<LibraryElement> libraries1 = compiler.libraryLoader.libraries;
if (shardCount < 1 || shardCount > libraries1.length) {
shardCount = libraries1.length;
}
@@ -81,11 +88,8 @@ void testSerialization(Iterable<LibraryElement> libraries1,
List<String> texts = <String>[];
for (int shard = 0; shard < shardCount; shard++) {
List<LibraryElement> libraries = librarySplits[shard];
- Serializer serializer = new Serializer(
- shouldInclude: (e) => libraries.contains(e.library));
- for (LibraryElement library in libraries) {
- serializer.serialize(library);
- }
+ Serializer serializer =
+ compiler.serialization.createSerializer(libraries);
String text = serializer.toText(const JsonSerializationEncoder());
String outText = text;
if (prettyPrint) {
@@ -105,13 +109,17 @@ void testSerialization(Iterable<LibraryElement> libraries1,
}
texts.add(text);
}
+ return texts;
+}
+
+void testEquivalence(List<String> data, Iterable<LibraryElement> libraries1) {
DeserializationContext deserializationContext =
new DeserializationContext();
- for (int shard = 0; shard < shardCount; shard++) {
- new Deserializer.fromText(
- deserializationContext, texts[shard], const JsonSerializationDecoder());
+ for (String shardData in data) {
+ Deserializer deserializer = new Deserializer.fromText(
+ deserializationContext, shardData, const JsonSerializationDecoder());
+ deserializationContext.deserializers.add(deserializer);
}
- List<LibraryElement> libraries2 = <LibraryElement>[];
for (LibraryElement library1 in libraries1) {
LibraryElement library2 =
deserializationContext.lookupLibrary(library1.canonicalUri);
@@ -119,6 +127,14 @@ void testSerialization(Iterable<LibraryElement> libraries1,
throw new ArgumentError('No library ${library1.canonicalUri} found.');
}
checkLibraryContent('library1', 'library2', 'library', library1, library2);
- libraries2.add(library2);
}
+}
+
+Future testAnalysis(List<String> data, Uri entryPoint) async {
+ Compiler compiler = compilerFor(entryPoint: entryPoint,
+ options: [Flags.analyzeAll]);
+ for (String shardData in data) {
+ compiler.serialization.deserializeFromText(shardData);
+ }
+ await compiler.run(entryPoint);
}
« no previous file with comments | « pkg/compiler/lib/src/serialization/task.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698