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

Unified Diff: tests/compiler/dart2js/kernel/closed_world2_test.dart

Issue 2846433003: Run closed_world2_test using the normal compiler pipeline. (Closed)
Patch Set: Updated cf. comments Created 3 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 side-by-side diff with in-line comments
Download patch
Index: tests/compiler/dart2js/kernel/closed_world2_test.dart
diff --git a/tests/compiler/dart2js/kernel/closed_world2_test.dart b/tests/compiler/dart2js/kernel/closed_world2_test.dart
index fc2f86ca81b14f6a71ab0b946398ddaea1ac6ff8..8ce29f103d47809fb39a890e8563505af497d052 100644
--- a/tests/compiler/dart2js/kernel/closed_world2_test.dart
+++ b/tests/compiler/dart2js/kernel/closed_world2_test.dart
@@ -6,19 +6,17 @@
// kernel is equivalent to the original computed from resolution.
library dart2js.kernel.closed_world2_test;
+import 'dart:async';
+
import 'package:async_helper/async_helper.dart';
-import 'package:compiler/src/closure.dart';
import 'package:compiler/src/commandline_options.dart';
import 'package:compiler/src/common.dart';
import 'package:compiler/src/common_elements.dart';
import 'package:compiler/src/common/backend_api.dart';
-import 'package:compiler/src/common/resolution.dart';
-import 'package:compiler/src/common/work.dart';
+import 'package:compiler/src/common/tasks.dart';
import 'package:compiler/src/compiler.dart';
import 'package:compiler/src/deferred_load.dart';
import 'package:compiler/src/elements/resolution_types.dart';
-import 'package:compiler/src/elements/elements.dart';
-import 'package:compiler/src/elements/entities.dart';
import 'package:compiler/src/elements/types.dart';
import 'package:compiler/src/enqueue.dart';
import 'package:compiler/src/js_backend/backend.dart'
@@ -40,11 +38,12 @@ import 'package:compiler/src/native/enqueue.dart';
import 'package:compiler/src/native/resolver.dart';
import 'package:compiler/src/kernel/element_map.dart';
import 'package:compiler/src/kernel/kernel_strategy.dart';
+import 'package:compiler/src/library_loader.dart';
import 'package:compiler/src/options.dart';
import 'package:compiler/src/universe/world_builder.dart';
-import 'package:compiler/src/universe/world_impact.dart';
import 'package:compiler/src/world.dart';
import 'package:expect/expect.dart';
+import 'package:kernel/ast.dart' as ir;
import '../memory_compiler.dart';
import '../serialization/helper.dart';
import '../serialization/model_test_helper.dart';
@@ -106,35 +105,29 @@ main(List<String> args) {
compiler.resolutionWorldBuilder.closeWorld();
print('---- closed world from kernel ------------------------------------');
- KernelToElementMap elementMap = new KernelToElementMap(compiler.reporter);
- elementMap.addProgram(compiler.backend.kernelTask.program);
- KernelEquivalence equivalence = new KernelEquivalence(elementMap);
- NativeBasicData nativeBasicData = computeNativeBasicData(elementMap);
- checkNativeBasicData(
- compiler1.backend.nativeBasicData, nativeBasicData, equivalence);
- List list = createKernelResolutionEnqueuerListener(
- compiler.options,
- compiler.reporter,
- compiler.deferredLoadTask,
+ Compiler compiler2 = compilerFor(
+ entryPoint: entryPoint,
+ memorySourceFiles: memorySourceFiles,
+ options: [
+ Flags.analyzeOnly,
+ Flags.enableAssertMessage,
+ Flags.loadFromDill
+ ]);
+ ElementResolutionWorldBuilder.useInstantiationMap = true;
+ compiler2.resolution.retainCachesForTesting = true;
+ KernelFrontEndStrategy frontEndStrategy = compiler2.frontEndStrategy;
+ KernelToElementMap elementMap = frontEndStrategy.elementMap;
+ compiler2.libraryLoader = new MemoryDillLibraryLoaderTask(
elementMap,
- nativeBasicData);
- ResolutionEnqueuerListener resolutionEnqueuerListener = list[0];
- BackendUsageBuilder backendUsageBuilder2 = list[1];
- ImpactTransformer impactTransformer = list[2];
-
- ResolutionEnqueuer enqueuer2 = new ResolutionEnqueuer(
- compiler.enqueuer,
- compiler.options,
- compiler.reporter,
- const TreeShakingEnqueuerStrategy(),
- resolutionEnqueuerListener,
- new KernelResolutionWorldBuilder(
- elementMap, nativeBasicData, const OpenWorldStrategy()),
- new KernelWorkItemBuilder(elementMap, impactTransformer),
- 'enqueuer from kelements');
- ClosedWorld closedWorld2 = computeClosedWorld(
- compiler.reporter, enqueuer2, elementMap.elementEnvironment);
- BackendUsage backendUsage2 = backendUsageBuilder2.close();
+ compiler2.reporter,
+ compiler2.measurer,
+ compiler.backend.kernelTask.program);
+ await compiler2.run(entryPoint);
+ Expect.isFalse(compiler2.compilationFailed);
+ ResolutionEnqueuer enqueuer2 = compiler2.enqueuer.resolution;
+ BackendUsage backendUsage2 = compiler2.backend.backendUsage;
+ ClosedWorld closedWorld2 = compiler2.resolutionWorldBuilder.closeWorld();
+ KernelEquivalence equivalence = new KernelEquivalence(elementMap);
checkBackendUsage(backendUsage1, backendUsage2, equivalence);
checkResolutionEnqueuers(backendUsage1, backendUsage2, enqueuer1, enqueuer2,
@@ -214,20 +207,6 @@ List createKernelResolutionEnqueuerListener(
return [listener, backendUsageBuilder, transformer];
}
-/// Computes that NativeBasicData for the libraries in [worldBuilder].
-/// TODO(johnniwinther): Use [KernelAnnotationProcessor] instead.
-NativeBasicData computeNativeBasicData(KernelToElementMap elementMap) {
- NativeBasicDataBuilderImpl builder = new NativeBasicDataBuilderImpl();
- ElementEnvironment elementEnvironment = elementMap.elementEnvironment;
- for (LibraryEntity library in elementEnvironment.libraries) {
- if (library.canonicalUri.scheme == 'dart') {
- new KernelAnnotationProcessor(elementMap)
- .extractNativeAnnotations(library, builder);
- }
- }
- return builder.close(elementEnvironment);
-}
-
void checkNativeBasicData(NativeBasicDataImpl data1, NativeBasicDataImpl data2,
KernelEquivalence equivalence) {
checkMapEquivalence(
@@ -296,3 +275,16 @@ void checkBackendUsage(BackendUsageImpl usage1, BackendUsageImpl usage2,
check(usage1, usage2, 'isNoSuchMethodUsed', usage1.isNoSuchMethodUsed,
usage2.isNoSuchMethodUsed);
}
+
+class MemoryDillLibraryLoaderTask extends DillLibraryLoaderTask {
+ final ir.Program program;
+
+ MemoryDillLibraryLoaderTask(KernelToElementMap elementMap,
+ DiagnosticReporter reporter, Measurer measurer, this.program)
+ : super(elementMap, null, null, reporter, measurer);
+
+ Future<LoadedLibraries> loadLibrary(Uri resolvedUri,
+ {bool skipFileWithPartOfTag: false}) async {
+ return createLoadedLibraries(program);
+ }
+}
« no previous file with comments | « tests/compiler/dart2js/inference/inference_test_helper.dart ('k') | tests/compiler/dart2js/kernel/constructors_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698