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

Side by Side Diff: tests/compiler/dart2js/serialization_analysis_test.dart

Issue 1811173003: Support per-library serialization. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Updated cf. comments. Created 4 years, 8 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library dart2js.serialization_analysis_test; 5 library dart2js.serialization_analysis_test;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'package:async_helper/async_helper.dart'; 8 import 'package:async_helper/async_helper.dart';
9 import 'package:expect/expect.dart'; 9 import 'package:expect/expect.dart';
10 import 'package:compiler/src/commandline_options.dart'; 10 import 'package:compiler/src/commandline_options.dart';
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 235
236 Future analyze(String serializedData, Uri entryPoint, Test test) async { 236 Future analyze(String serializedData, Uri entryPoint, Test test) async {
237 DiagnosticCollector diagnosticCollector = new DiagnosticCollector(); 237 DiagnosticCollector diagnosticCollector = new DiagnosticCollector();
238 await runCompiler( 238 await runCompiler(
239 entryPoint: entryPoint, 239 entryPoint: entryPoint,
240 memorySourceFiles: test != null ? test.sourceFiles : const {}, 240 memorySourceFiles: test != null ? test.sourceFiles : const {},
241 options: [Flags.analyzeOnly], 241 options: [Flags.analyzeOnly],
242 diagnosticHandler: diagnosticCollector, 242 diagnosticHandler: diagnosticCollector,
243 beforeRun: (Compiler compiler) { 243 beforeRun: (Compiler compiler) {
244 Deserializer deserializer = new Deserializer.fromText( 244 Deserializer deserializer = new Deserializer.fromText(
245 new DeserializationContext(),
245 serializedData, 246 serializedData,
246 const JsonSerializationDecoder()); 247 const JsonSerializationDecoder());
247 deserializer.plugins.add(compiler.backend.serialization.deserializer); 248 deserializer.plugins.add(compiler.backend.serialization.deserializer);
248 compiler.serialization.deserializer = 249 compiler.serialization.deserializer =
249 new _DeserializerSystem(deserializer); 250 new _DeserializerSystem(deserializer);
250 }); 251 });
251 if (test != null) { 252 if (test != null) {
252 Expect.equals(test.expectedErrorCount, diagnosticCollector.errors.length, 253 Expect.equals(test.expectedErrorCount, diagnosticCollector.errors.length,
253 "Unexpected error count."); 254 "Unexpected error count.");
254 Expect.equals( 255 Expect.equals(
255 test.expectedWarningCount, 256 test.expectedWarningCount,
256 diagnosticCollector.warnings.length, 257 diagnosticCollector.warnings.length,
257 "Unexpected warning count."); 258 "Unexpected warning count.");
258 Expect.equals(test.expectedHintCount, diagnosticCollector.hints.length, 259 Expect.equals(test.expectedHintCount, diagnosticCollector.hints.length,
259 "Unexpected hint count."); 260 "Unexpected hint count.");
260 Expect.equals(test.expectedInfoCount, diagnosticCollector.infos.length, 261 Expect.equals(test.expectedInfoCount, diagnosticCollector.infos.length,
261 "Unexpected info count."); 262 "Unexpected info count.");
262 } 263 }
263 } 264 }
264 265
265 Future<String> serializeDartCore() async { 266 Future<String> serializeDartCore() async {
266 Compiler compiler = compilerFor( 267 Compiler compiler = compilerFor(
267 options: [Flags.analyzeAll]); 268 options: [Flags.analyzeAll]);
268 compiler.serialization.supportSerialization = true; 269 compiler.serialization.supportSerialization = true;
269 await compiler.run(Uris.dart_core); 270 await compiler.run(Uris.dart_core);
270 return serialize(compiler); 271 return serialize(compiler);
271 } 272 }
272 273
273 String serialize(Compiler compiler) { 274 String serialize(Compiler compiler) {
274 Serializer serializer = new Serializer(const JsonSerializationEncoder()); 275 Serializer serializer = new Serializer();
275 serializer.plugins.add(compiler.backend.serialization.serializer); 276 serializer.plugins.add(compiler.backend.serialization.serializer);
276 serializer.plugins.add(new WorldImpactSerializer(compiler.resolution)); 277 serializer.plugins.add(new WorldImpactSerializer(compiler.resolution));
277 278
278 for (LibraryElement library in compiler.libraryLoader.libraries) { 279 for (LibraryElement library in compiler.libraryLoader.libraries) {
279 serializer.serialize(library); 280 serializer.serialize(library);
280 } 281 }
281 return serializer.toText(); 282 return serializer.toText(const JsonSerializationEncoder());
282 } 283 }
283 284
284 const String WORLD_IMPACT_TAG = 'worldImpact'; 285 const String WORLD_IMPACT_TAG = 'worldImpact';
285 286
286 class WorldImpactSerializer extends SerializerPlugin { 287 class WorldImpactSerializer extends SerializerPlugin {
287 final Resolution resolution; 288 final Resolution resolution;
288 289
289 WorldImpactSerializer(this.resolution); 290 WorldImpactSerializer(this.resolution);
290 291
291 @override 292 @override
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
336 impact = const WorldImpact(); 337 impact = const WorldImpact();
337 } 338 }
338 return impact; 339 return impact;
339 } 340 }
340 341
341 @override 342 @override
342 bool isDeserialized(Element element) { 343 bool isDeserialized(Element element) {
343 return deserializedLibraries.contains(element.library); 344 return deserializedLibraries.contains(element.library);
344 } 345 }
345 } 346 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/serialization/serialization.dart ('k') | tests/compiler/dart2js/serialization_library_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698