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

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

Issue 2150533002: Serialize data for LibraryElement.getImportsFor (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Created 4 years, 5 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/model_test_helper.dart
diff --git a/tests/compiler/dart2js/serialization/model_test_helper.dart b/tests/compiler/dart2js/serialization/model_test_helper.dart
index c43ce2277a598e83498611ec2b256ba78f898dfc..455d9964a74168a459b17f1dde4e842f1ed3ca3e 100644
--- a/tests/compiler/dart2js/serialization/model_test_helper.dart
+++ b/tests/compiler/dart2js/serialization/model_test_helper.dart
@@ -10,7 +10,9 @@ import 'package:async_helper/async_helper.dart';
import 'package:expect/expect.dart';
import 'package:compiler/src/closure.dart';
import 'package:compiler/src/commandline_options.dart';
+import 'package:compiler/src/common.dart';
import 'package:compiler/src/compiler.dart';
+import 'package:compiler/src/deferred_load.dart';
import 'package:compiler/src/elements/elements.dart';
import 'package:compiler/src/filenames.dart';
import 'package:compiler/src/js_backend/js_backend.dart';
@@ -29,9 +31,19 @@ main(List<String> args) {
await serializeDartCore(arguments: arguments);
if (arguments.filename != null) {
Uri entryPoint = Uri.base.resolve(nativeToUriPath(arguments.filename));
+ print('----------------------------------------------------------------');
+ print('serialize ${entryPoint}');
+ print('----------------------------------------------------------------');
+ SerializationResult result = await serialize(
+ entryPoint,
+ memorySourceFiles: serializedData.toMemorySourceFiles(),
+ resolutionInputs: serializedData.toUris(),
+ dataUri: Uri.parse('memory:test.data'));
await checkModels(entryPoint,
- sourceFiles: serializedData.toMemorySourceFiles(),
- resolutionInputs: serializedData.toUris());
+ sourceFiles: serializedData.toMemorySourceFiles(
+ result.serializedData.toMemorySourceFiles()),
+ resolutionInputs: serializedData.toUris(
+ result.serializedData.toUris()));
} else {
Uri entryPoint = Uri.parse('memory:main.dart');
await arguments.forEachTest(serializedData, TESTS, checkModels);
@@ -59,6 +71,8 @@ Future checkModels(
compilerNormal.phase = Compiler.PHASE_DONE_RESOLVING;
compilerNormal.world.populate();
compilerNormal.backend.onResolutionComplete();
+ compilerNormal.deferredLoadTask.onResolutionComplete(
+ compilerNormal.mainFunction);
print('------------------------------------------------------------------');
print('compile deserialized ${id}${testDescription}');
@@ -72,6 +86,8 @@ Future checkModels(
compilerDeserialized.phase = Compiler.PHASE_DONE_RESOLVING;
compilerDeserialized.world.populate();
compilerDeserialized.backend.onResolutionComplete();
+ compilerDeserialized.deferredLoadTask.onResolutionComplete(
+ compilerDeserialized.mainFunction);
checkAllImpacts(
compilerNormal, compilerDeserialized,
@@ -130,6 +146,10 @@ Future checkModels(
Expect.equals(compilerNormal.hasIsolateSupport,
compilerDeserialized.hasIsolateSupport,
"Compiler.hasIsolateSupport mismatch");
+ Expect.equals(
+ compilerNormal.deferredLoadTask.isProgramSplit,
+ compilerDeserialized.deferredLoadTask.isProgramSplit,
+ "isProgramSplit mismatch");
}
void checkElements(
@@ -211,6 +231,8 @@ void checkElements(
backend1.inlineCache.getCurrentCacheDecisionForTesting(element1),
backend2.inlineCache.getCurrentCacheDecisionForTesting(element2),
"Inline cache decision mismatch for $element1 vs $element2");
+
+ checkOutputUnits(compiler1, compiler2, element1, element2);
}
void checkMixinUses(
@@ -324,4 +346,19 @@ String nodeToString(Node node) {
return '(${node.runtimeType}) ${text.substring(0, 37)}...';
}
return '(${node.runtimeType}) $text';
+}
+
+void checkOutputUnits(Compiler compiler1, Compiler compiler2, Element element1,
+ Element element2) {
+ OutputUnit outputUnit1 =
+ compiler1.deferredLoadTask.outputUnitForElement(element1);
+ OutputUnit outputUnit2 =
+ compiler2.deferredLoadTask.outputUnitForElement(element2);
+ check(outputUnit1, outputUnit2,
+ 'OutputUnit.isMainOutput for $element1 vs $element2',
+ outputUnit1.isMainOutput, outputUnit2.isMainOutput);
+ checkSetEquivalence(outputUnit1, outputUnit2,
+ 'OutputUnit.imports for $element1 vs $element2',
+ outputUnit1.imports, outputUnit2.imports,
+ (a, b) => areElementsEquivalent(a.declaration, b.declaration));
}

Powered by Google App Engine
This is Rietveld 408576698