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

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

Issue 2879593004: Reorganize equivalence test helpers (Closed)
Patch Set: Created 3 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/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 39b26e302486890d23ed46541cf41c382034b622..b6b4b410da9f649460b6e3c58332b27c1c81dc31 100644
--- a/tests/compiler/dart2js/kernel/closed_world2_test.dart
+++ b/tests/compiler/dart2js/kernel/closed_world2_test.dart
@@ -12,48 +12,23 @@ import 'package:async_helper/async_helper.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/tasks.dart';
import 'package:compiler/src/compiler.dart';
-import 'package:compiler/src/deferred_load.dart';
-import 'package:compiler/src/elements/entities.dart';
import 'package:compiler/src/elements/resolution_types.dart';
import 'package:compiler/src/elements/types.dart';
import 'package:compiler/src/enqueue.dart';
-import 'package:compiler/src/js_backend/backend.dart'
- hide RuntimeTypesNeedBuilderImpl;
-import 'package:compiler/src/js_backend/backend_impact.dart';
import 'package:compiler/src/js_backend/backend_usage.dart';
-import 'package:compiler/src/js_backend/custom_elements_analysis.dart';
-import 'package:compiler/src/js_backend/native_data.dart';
-import 'package:compiler/src/js_backend/impact_transformer.dart';
-import 'package:compiler/src/js_backend/interceptor_data.dart';
-import 'package:compiler/src/js_backend/lookup_map_analysis.dart';
-import 'package:compiler/src/js_backend/mirrors_analysis.dart'
- hide MirrorsResolutionAnalysisImpl;
-import 'package:compiler/src/js_backend/mirrors_data.dart';
-import 'package:compiler/src/js_backend/no_such_method_registry.dart';
-import 'package:compiler/src/js_backend/resolution_listener.dart';
-import 'package:compiler/src/js_backend/type_variable_handler.dart';
-import 'package:compiler/src/native/enqueue.dart';
-import 'package:compiler/src/native/resolver.dart';
import 'package:compiler/src/kernel/element_map_impl.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/serialization/equivalence.dart';
import 'package:compiler/src/universe/world_builder.dart';
import 'package:compiler/src/util/util.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';
-import '../serialization/test_helper.dart';
-
-import 'closed_world_test.dart' hide KernelWorkItemBuilder;
+import '../equivalence/check_functions.dart';
import 'compiler_helper.dart';
-import 'impact_test.dart';
+import 'test_helpers.dart';
const SOURCE = const {
'main.dart': '''
@@ -157,17 +132,18 @@ Future<ResultKind> mainInternal(List<String> args,
Expect.isFalse(compiler2.compilationFailed);
KernelEquivalence equivalence = new KernelEquivalence(elementMap);
+ TestStrategy strategy = equivalence.defaultStrategy;
ElementEnvironment environment2 = compiler2.elementEnvironment;
- checkElementEnvironment(environment1, environment2, equivalence);
+ checkElementEnvironment(environment1, environment2, strategy);
ResolutionEnqueuer enqueuer2 = compiler2.enqueuer.resolution;
BackendUsage backendUsage2 = compiler2.backend.backendUsage;
ClosedWorld closedWorld2 = compiler2.resolutionWorldBuilder.closeWorld();
- checkNativeClasses(compiler1, compiler2, equivalence);
+ checkNativeClasses(compiler1, compiler2, strategy);
- checkBackendUsage(backendUsage1, backendUsage2, equivalence);
+ checkBackendUsage(backendUsage1, backendUsage2, strategy);
checkResolutionEnqueuers(backendUsage1, backendUsage2, enqueuer1, enqueuer2,
elementEquivalence: equivalence.entityEquivalence,
@@ -180,192 +156,3 @@ Future<ResultKind> mainInternal(List<String> args,
return ResultKind.success;
}
-
-void checkNativeClasses(
Johnni Winther 2017/05/15 07:43:03 These were changed to used [TestStrategy] instead
- Compiler compiler1, Compiler compiler2, KernelEquivalence equivalence) {
- Iterable<ClassEntity> nativeClasses1 = compiler1
- .backend.nativeResolutionEnqueuerForTesting.nativeClassesForTesting;
- Iterable<ClassEntity> nativeClasses2 = compiler2
- .backend.nativeResolutionEnqueuerForTesting.nativeClassesForTesting;
-
- checkSetEquivalence(compiler1, compiler2, 'nativeClasses', nativeClasses1,
- nativeClasses2, equivalence.entityEquivalence);
-
- Iterable<ClassEntity> registeredClasses1 = compiler1
- .backend.nativeResolutionEnqueuerForTesting.registeredClassesForTesting;
- Iterable<ClassEntity> registeredClasses2 = compiler2
- .backend.nativeResolutionEnqueuerForTesting.registeredClassesForTesting;
-
- checkSetEquivalence(compiler1, compiler2, 'registeredClasses',
- registeredClasses1, registeredClasses2, equivalence.entityEquivalence);
-}
-
-void checkNativeBasicData(NativeBasicDataImpl data1, NativeBasicDataImpl data2,
- KernelEquivalence equivalence) {
- checkMapEquivalence(
- data1,
- data2,
- 'nativeClassTagInfo',
- data1.nativeClassTagInfo,
- data2.nativeClassTagInfo,
- equivalence.entityEquivalence,
- (a, b) => a == b);
- // TODO(johnniwinther): Check the remaining properties.
-}
-
-void checkBackendUsage(BackendUsageImpl usage1, BackendUsageImpl usage2,
- KernelEquivalence equivalence) {
- checkSetEquivalence(
- usage1,
- usage2,
- 'globalClassDependencies',
- usage1.globalClassDependencies,
- usage2.globalClassDependencies,
- equivalence.entityEquivalence);
- checkSetEquivalence(
- usage1,
- usage2,
- 'globalFunctionDependencies',
- usage1.globalFunctionDependencies,
- usage2.globalFunctionDependencies,
- equivalence.entityEquivalence);
- checkSetEquivalence(
- usage1,
- usage2,
- 'helperClassesUsed',
- usage1.helperClassesUsed,
- usage2.helperClassesUsed,
- equivalence.entityEquivalence);
- checkSetEquivalence(
- usage1,
- usage2,
- 'helperFunctionsUsed',
- usage1.helperFunctionsUsed,
- usage2.helperFunctionsUsed,
- equivalence.entityEquivalence);
- check(
- usage1,
- usage2,
- 'needToInitializeIsolateAffinityTag',
- usage1.needToInitializeIsolateAffinityTag,
- usage2.needToInitializeIsolateAffinityTag);
- check(
- usage1,
- usage2,
- 'needToInitializeDispatchProperty',
- usage1.needToInitializeDispatchProperty,
- usage2.needToInitializeDispatchProperty);
- check(usage1, usage2, 'requiresPreamble', usage1.requiresPreamble,
- usage2.requiresPreamble);
- check(usage1, usage2, 'isInvokeOnUsed', usage1.isInvokeOnUsed,
- usage2.isInvokeOnUsed);
- check(usage1, usage2, 'isRuntimeTypeUsed', usage1.isRuntimeTypeUsed,
- usage2.isRuntimeTypeUsed);
- check(usage1, usage2, 'isIsolateInUse', usage1.isIsolateInUse,
- usage2.isIsolateInUse);
- check(usage1, usage2, 'isFunctionApplyUsed', usage1.isFunctionApplyUsed,
- usage2.isFunctionApplyUsed);
- check(usage1, usage2, 'isNoSuchMethodUsed', usage1.isNoSuchMethodUsed,
- usage2.isNoSuchMethodUsed);
-}
-
-checkElementEnvironment(ElementEnvironment env1, ElementEnvironment env2,
- KernelEquivalence equivalence) {
- checkMembers(MemberEntity member1, MemberEntity member2) {
- Expect.equals(env1.isDeferredLoadLibraryGetter(member1),
- env2.isDeferredLoadLibraryGetter(member2));
-
- checkListEquivalence(
- member1,
- member2,
- 'metadata',
- env1.getMemberMetadata(member1),
- env2.getMemberMetadata(member2),
- equivalence.defaultStrategy.testConstantValues);
- }
-
- checkSetEquivalence(env1, env2, 'libraries', env1.libraries, env2.libraries,
- equivalence.entityEquivalence,
- onSameElement: (LibraryEntity lib1, LibraryEntity lib2) {
- Expect.identical(lib1, env1.lookupLibrary(lib1.canonicalUri));
- Expect.identical(lib2, env2.lookupLibrary(lib2.canonicalUri));
-
- List<ClassEntity> classes2 = <ClassEntity>[];
- env1.forEachClass(lib1, (ClassEntity cls1) {
- Expect.identical(cls1, env1.lookupClass(lib1, cls1.name));
-
- String className = cls1.name;
- ClassEntity cls2 = env2.lookupClass(lib2, className);
- Expect.isNotNull(cls2, 'Missing class $className in $lib2');
- Expect.identical(cls2, env2.lookupClass(lib2, cls2.name));
-
- check(lib1, lib2, 'class:${className}', cls1, cls2,
- equivalence.entityEquivalence);
-
- Expect.equals(env1.isGenericClass(cls1), env2.isGenericClass(cls2));
-
- check(
- cls1,
- cls2,
- 'superclass',
- env1.getSuperClass(cls1, skipUnnamedMixinApplications: false),
- env2.getSuperClass(cls2, skipUnnamedMixinApplications: false),
- equivalence.entityEquivalence);
- check(
- cls1,
- cls2,
- 'superclass',
- env1.getSuperClass(cls1, skipUnnamedMixinApplications: true),
- env2.getSuperClass(cls2, skipUnnamedMixinApplications: true),
- equivalence.entityEquivalence);
-
- List<InterfaceType> supertypes1 = <InterfaceType>[];
- env1.forEachSupertype(cls1, supertypes1.add);
- List<InterfaceType> supertypes2 = <InterfaceType>[];
- env2.forEachSupertype(cls2, supertypes1.add);
- equivalence.defaultStrategy
- .testTypeLists(cls1, cls2, 'supertypes', supertypes1, supertypes2);
-
- List<ClassEntity> mixins1 = <ClassEntity>[];
- env1.forEachMixin(cls1, mixins1.add);
- List<ClassEntity> mixins2 = <ClassEntity>[];
- env2.forEachMixin(cls2, mixins2.add);
- equivalence.defaultStrategy.testLists(cls1, cls2, 'mixins', mixins1,
- mixins2, equivalence.entityEquivalence);
-
- Map<MemberEntity, ClassEntity> members1 = <MemberEntity, ClassEntity>{};
- Map<MemberEntity, ClassEntity> members2 = <MemberEntity, ClassEntity>{};
- env1.forEachClassMember(cls1,
- (ClassEntity declarer1, MemberEntity member1) {
- if (cls1 == declarer1) {
- Expect.identical(
- member1,
- env1.lookupClassMember(cls1, member1.name,
- setter: member1.isSetter));
- }
- members1[member1] = declarer1;
- });
- env2.forEachClassMember(cls2,
- (ClassEntity declarer2, MemberEntity member2) {
- if (cls2 == declarer2) {
- Expect.identical(
- member2,
- env2.lookupClassMember(cls2, member2.name,
- setter: member2.isSetter));
- }
- members2[member2] = declarer2;
- });
- checkMapEquivalence(cls1, cls2, 'members', members1, members2, (a, b) {
- bool result = equivalence.entityEquivalence(a, b);
- if (result) checkMembers(a, b);
- return result;
- }, equivalence.entityEquivalence);
-
- classes2.add(cls2);
- });
- env2.forEachClass(lib2, (ClassEntity cls2) {
- Expect.isTrue(classes2.contains(cls2), "Extra class $cls2 in $lib2");
- });
- });
- // TODO(johnniwinther): Test the remaining properties of [ElementEnvironment].
-}
« no previous file with comments | « tests/compiler/dart2js/equivalence/check_helpers.dart ('k') | tests/compiler/dart2js/kernel/closed_world_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698