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

Side by Side Diff: pkg/analyzer/test/src/task/dart_test.dart

Issue 1220743004: Split BuildSourceClosuresTask into two tasks; remove unnecessary computation. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 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 unified diff | Download patch
« no previous file with comments | « pkg/analyzer/lib/src/task/dart.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 test.src.task.dart_test; 5 library test.src.task.dart_test;
6 6
7 import 'package:analyzer/src/context/cache.dart'; 7 import 'package:analyzer/src/context/cache.dart';
8 import 'package:analyzer/src/generated/ast.dart'; 8 import 'package:analyzer/src/generated/ast.dart';
9 import 'package:analyzer/src/generated/constant.dart'; 9 import 'package:analyzer/src/generated/constant.dart';
10 import 'package:analyzer/src/generated/element.dart'; 10 import 'package:analyzer/src/generated/element.dart';
(...skipping 14 matching lines...) Expand all
25 import '../../generated/test_support.dart'; 25 import '../../generated/test_support.dart';
26 import '../../reflective_tests.dart'; 26 import '../../reflective_tests.dart';
27 import '../context/abstract_context.dart'; 27 import '../context/abstract_context.dart';
28 28
29 main() { 29 main() {
30 groupSep = ' | '; 30 groupSep = ' | ';
31 runReflectiveTests(BuildClassConstructorsTaskTest); 31 runReflectiveTests(BuildClassConstructorsTaskTest);
32 runReflectiveTests(BuildCompilationUnitElementTaskTest); 32 runReflectiveTests(BuildCompilationUnitElementTaskTest);
33 runReflectiveTests(BuildDirectiveElementsTaskTest); 33 runReflectiveTests(BuildDirectiveElementsTaskTest);
34 runReflectiveTests(BuildEnumMemberElementsTaskTest); 34 runReflectiveTests(BuildEnumMemberElementsTaskTest);
35 runReflectiveTests(BuildSourceClosuresTaskTest); 35 runReflectiveTests(BuildSourceExportClosureTaskTest);
36 runReflectiveTests(BuildSourceImportExportClosureTaskTest);
36 runReflectiveTests(BuildExportNamespaceTaskTest); 37 runReflectiveTests(BuildExportNamespaceTaskTest);
37 runReflectiveTests(BuildLibraryConstructorsTaskTest); 38 runReflectiveTests(BuildLibraryConstructorsTaskTest);
38 runReflectiveTests(BuildLibraryElementTaskTest); 39 runReflectiveTests(BuildLibraryElementTaskTest);
39 runReflectiveTests(BuildPublicNamespaceTaskTest); 40 runReflectiveTests(BuildPublicNamespaceTaskTest);
40 runReflectiveTests(BuildTypeProviderTaskTest); 41 runReflectiveTests(BuildTypeProviderTaskTest);
41 runReflectiveTests(ComputeConstantDependenciesTaskTest); 42 runReflectiveTests(ComputeConstantDependenciesTaskTest);
42 runReflectiveTests(ComputeConstantValueTaskTest); 43 runReflectiveTests(ComputeConstantValueTaskTest);
43 runReflectiveTests(ContainingLibrariesTaskTest); 44 runReflectiveTests(ContainingLibrariesTaskTest);
44 runReflectiveTests(DartErrorsTaskTest); 45 runReflectiveTests(DartErrorsTaskTest);
45 runReflectiveTests(EvaluateUnitConstantsTaskTest); 46 runReflectiveTests(EvaluateUnitConstantsTaskTest);
(...skipping 1045 matching lines...) Expand 10 before | Expand all | Expand 10 after
1091 computeResult(sources.first, LIBRARY_ELEMENT3); 1092 computeResult(sources.first, LIBRARY_ELEMENT3);
1092 expect(task, new isInstanceOf<BuildPublicNamespaceTask>()); 1093 expect(task, new isInstanceOf<BuildPublicNamespaceTask>());
1093 // validate 1094 // validate
1094 LibraryElement library = outputs[LIBRARY_ELEMENT3]; 1095 LibraryElement library = outputs[LIBRARY_ELEMENT3];
1095 Namespace namespace = library.publicNamespace; 1096 Namespace namespace = library.publicNamespace;
1096 expect(namespace.definedNames.keys, unorderedEquals(['a', 'd'])); 1097 expect(namespace.definedNames.keys, unorderedEquals(['a', 'd']));
1097 } 1098 }
1098 } 1099 }
1099 1100
1100 @reflectiveTest 1101 @reflectiveTest
1101 class BuildSourceClosuresTaskTest extends _AbstractDartTaskTest { 1102 class BuildSourceExportClosureTaskTest extends _AbstractDartTaskTest {
1102 test_perform_exportClosure() { 1103 test_perform_exportClosure() {
1103 Source sourceA = newSource('/a.dart', ''' 1104 Source sourceA = newSource('/a.dart', '''
1104 library lib_a; 1105 library lib_a;
1105 export 'b.dart'; 1106 export 'b.dart';
1106 '''); 1107 ''');
1107 Source sourceB = newSource('/b.dart', ''' 1108 Source sourceB = newSource('/b.dart', '''
1108 library lib_b; 1109 library lib_b;
1109 export 'c.dart'; 1110 export 'c.dart';
1110 '''); 1111 ''');
1111 Source sourceC = newSource('/c.dart', ''' 1112 Source sourceC = newSource('/c.dart', '''
1112 library lib_c; 1113 library lib_c;
1113 export 'a.dart'; 1114 export 'a.dart';
1114 '''); 1115 ''');
1115 Source sourceD = newSource('/d.dart', ''' 1116 Source sourceD = newSource('/d.dart', '''
1116 library lib_d; 1117 library lib_d;
1117 '''); 1118 ''');
1118 // a.dart 1119 // a.dart
1119 { 1120 {
1120 computeResult(sourceA, EXPORT_SOURCE_CLOSURE); 1121 computeResult(sourceA, EXPORT_SOURCE_CLOSURE);
1121 expect(task, new isInstanceOf<BuildSourceClosuresTask>()); 1122 expect(task, new isInstanceOf<BuildSourceExportClosureTask>());
1122 List<Source> closure = outputs[EXPORT_SOURCE_CLOSURE]; 1123 List<Source> closure = outputs[EXPORT_SOURCE_CLOSURE];
1123 expect(closure, unorderedEquals([sourceA, sourceB, sourceC])); 1124 expect(closure, unorderedEquals([sourceA, sourceB, sourceC]));
1124 } 1125 }
1125 // c.dart 1126 // c.dart
1126 { 1127 {
1127 computeResult(sourceC, EXPORT_SOURCE_CLOSURE); 1128 computeResult(sourceC, EXPORT_SOURCE_CLOSURE);
1128 expect(task, new isInstanceOf<BuildSourceClosuresTask>()); 1129 expect(task, new isInstanceOf<BuildSourceExportClosureTask>());
1129 List<Source> closure = outputs[EXPORT_SOURCE_CLOSURE]; 1130 List<Source> closure = outputs[EXPORT_SOURCE_CLOSURE];
1130 expect(closure, unorderedEquals([sourceA, sourceB, sourceC])); 1131 expect(closure, unorderedEquals([sourceA, sourceB, sourceC]));
1131 } 1132 }
1132 // d.dart 1133 // d.dart
1133 { 1134 {
1134 computeResult(sourceD, EXPORT_SOURCE_CLOSURE); 1135 computeResult(sourceD, EXPORT_SOURCE_CLOSURE);
1135 expect(task, new isInstanceOf<BuildSourceClosuresTask>()); 1136 expect(task, new isInstanceOf<BuildSourceExportClosureTask>());
1136 List<Source> closure = outputs[EXPORT_SOURCE_CLOSURE]; 1137 List<Source> closure = outputs[EXPORT_SOURCE_CLOSURE];
1137 expect(closure, unorderedEquals([sourceD])); 1138 expect(closure, unorderedEquals([sourceD]));
1138 } 1139 }
1139 } 1140 }
1141 }
1140 1142
1141 test_perform_importClosure() { 1143 @reflectiveTest
1142 Source sourceA = newSource('/a.dart', ''' 1144 class BuildSourceImportExportClosureTaskTest extends _AbstractDartTaskTest {
1143 library lib_a;
1144 import 'b.dart';
1145 ''');
1146 Source sourceB = newSource('/b.dart', '''
1147 library lib_b;
1148 import 'c.dart';
1149 ''');
1150 Source sourceC = newSource('/c.dart', '''
1151 library lib_c;
1152 import 'a.dart';
1153 ''');
1154 Source sourceD = newSource('/d.dart', '''
1155 library lib_d;
1156 ''');
1157 Source coreSource = context.sourceFactory.resolveUri(null, 'dart:core');
1158 // a.dart
1159 {
1160 computeResult(sourceA, IMPORT_SOURCE_CLOSURE);
1161 expect(task, new isInstanceOf<BuildSourceClosuresTask>());
1162 List<Source> closure = outputs[IMPORT_SOURCE_CLOSURE];
1163 expect(closure, contains(sourceA));
1164 expect(closure, contains(sourceB));
1165 expect(closure, contains(sourceC));
1166 expect(closure, contains(coreSource));
1167 }
1168 // c.dart
1169 {
1170 computeResult(sourceC, IMPORT_SOURCE_CLOSURE);
1171 expect(task, new isInstanceOf<BuildSourceClosuresTask>());
1172 List<Source> closure = outputs[IMPORT_SOURCE_CLOSURE];
1173 expect(closure, contains(sourceA));
1174 expect(closure, contains(sourceB));
1175 expect(closure, contains(sourceC));
1176 expect(closure, contains(coreSource));
1177 }
1178 // d.dart
1179 {
1180 computeResult(sourceD, IMPORT_SOURCE_CLOSURE);
1181 expect(task, new isInstanceOf<BuildSourceClosuresTask>());
1182 List<Source> closure = outputs[IMPORT_SOURCE_CLOSURE];
1183 expect(closure, contains(sourceD));
1184 expect(closure, contains(coreSource));
1185 }
1186 }
1187
1188 test_perform_importExportClosure() { 1145 test_perform_importExportClosure() {
1189 Source sourceA = newSource('/a.dart', ''' 1146 Source sourceA = newSource('/a.dart', '''
1190 library lib_a; 1147 library lib_a;
1191 '''); 1148 ''');
1192 Source sourceB = newSource('/b.dart', ''' 1149 Source sourceB = newSource('/b.dart', '''
1193 library lib_b; 1150 library lib_b;
1194 export 'a.dart'; 1151 export 'a.dart';
1195 '''); 1152 ''');
1196 Source sourceC = newSource('/c.dart', ''' 1153 Source sourceC = newSource('/c.dart', '''
1197 library lib_c; 1154 library lib_c;
1198 import 'b.dart'; 1155 import 'b.dart';
1199 '''); 1156 ''');
1200 Source coreSource = context.sourceFactory.resolveUri(null, 'dart:core'); 1157 Source coreSource = context.sourceFactory.resolveUri(null, 'dart:core');
1201 // c.dart 1158 // c.dart
1202 { 1159 {
1203 computeResult(sourceC, IMPORT_EXPORT_SOURCE_CLOSURE); 1160 computeResult(sourceC, IMPORT_EXPORT_SOURCE_CLOSURE);
1204 expect(task, new isInstanceOf<BuildSourceClosuresTask>()); 1161 expect(task, new isInstanceOf<BuildSourceImportExportClosureTask>());
1205 List<Source> closure = outputs[IMPORT_EXPORT_SOURCE_CLOSURE]; 1162 List<Source> closure = outputs[IMPORT_EXPORT_SOURCE_CLOSURE];
1206 expect(closure, contains(sourceA)); 1163 expect(closure, contains(sourceA));
1207 expect(closure, contains(sourceB)); 1164 expect(closure, contains(sourceB));
1208 expect(closure, contains(sourceC)); 1165 expect(closure, contains(sourceC));
1209 expect(closure, contains(coreSource)); 1166 expect(closure, contains(coreSource));
1210 } 1167 }
1211 // b.dart 1168 // b.dart
1212 { 1169 {
1213 computeResult(sourceB, IMPORT_EXPORT_SOURCE_CLOSURE); 1170 computeResult(sourceB, IMPORT_EXPORT_SOURCE_CLOSURE);
1214 expect(task, new isInstanceOf<BuildSourceClosuresTask>()); 1171 expect(task, new isInstanceOf<BuildSourceImportExportClosureTask>());
1215 List<Source> closure = outputs[IMPORT_EXPORT_SOURCE_CLOSURE]; 1172 List<Source> closure = outputs[IMPORT_EXPORT_SOURCE_CLOSURE];
1216 expect(closure, contains(sourceA)); 1173 expect(closure, contains(sourceA));
1217 expect(closure, contains(sourceB)); 1174 expect(closure, contains(sourceB));
1218 expect(closure, contains(coreSource)); 1175 expect(closure, contains(coreSource));
1219 } 1176 }
1220 } 1177 }
1221 1178
1222 test_perform_isClient_false() { 1179 test_perform_isClient_false() {
1223 Source sourceA = newSource('/a.dart', ''' 1180 Source sourceA = newSource('/a.dart', '''
1224 library lib_a; 1181 library lib_a;
1225 import 'b.dart'; 1182 import 'b.dart';
1226 '''); 1183 ''');
1227 newSource('/b.dart', ''' 1184 newSource('/b.dart', '''
1228 library lib_b; 1185 library lib_b;
1229 '''); 1186 ''');
1230 computeResult(sourceA, IS_CLIENT); 1187 computeResult(sourceA, IS_CLIENT);
1231 expect(task, new isInstanceOf<BuildSourceClosuresTask>()); 1188 expect(task, new isInstanceOf<BuildSourceImportExportClosureTask>());
1232 expect(outputs[IS_CLIENT], isFalse); 1189 expect(outputs[IS_CLIENT], isFalse);
1233 } 1190 }
1234 1191
1235 test_perform_isClient_true_export_indirect() { 1192 test_perform_isClient_true_export_indirect() {
1236 newSource('/exports_html.dart', ''' 1193 newSource('/exports_html.dart', '''
1237 library lib_exports_html; 1194 library lib_exports_html;
1238 export 'dart:html'; 1195 export 'dart:html';
1239 '''); 1196 ''');
1240 Source source = newSource('/test.dart', ''' 1197 Source source = newSource('/test.dart', '''
1241 import 'exports_html.dart'; 1198 import 'exports_html.dart';
1242 '''); 1199 ''');
1243 computeResult(source, IS_CLIENT); 1200 computeResult(source, IS_CLIENT);
1244 expect(task, new isInstanceOf<BuildSourceClosuresTask>()); 1201 expect(task, new isInstanceOf<BuildSourceImportExportClosureTask>());
1245 expect(outputs[IS_CLIENT], isTrue); 1202 expect(outputs[IS_CLIENT], isTrue);
1246 } 1203 }
1247 1204
1248 test_perform_isClient_true_import_direct() { 1205 test_perform_isClient_true_import_direct() {
1249 Source sourceA = newSource('/a.dart', ''' 1206 Source sourceA = newSource('/a.dart', '''
1250 library lib_a; 1207 library lib_a;
1251 import 'dart:html'; 1208 import 'dart:html';
1252 '''); 1209 ''');
1253 computeResult(sourceA, IS_CLIENT); 1210 computeResult(sourceA, IS_CLIENT);
1254 expect(task, new isInstanceOf<BuildSourceClosuresTask>()); 1211 expect(task, new isInstanceOf<BuildSourceImportExportClosureTask>());
1255 expect(outputs[IS_CLIENT], isTrue); 1212 expect(outputs[IS_CLIENT], isTrue);
1256 } 1213 }
1257 1214
1258 test_perform_isClient_true_import_indirect() { 1215 test_perform_isClient_true_import_indirect() {
1259 Source sourceA = newSource('/a.dart', ''' 1216 Source sourceA = newSource('/a.dart', '''
1260 library lib_a; 1217 library lib_a;
1261 import 'b.dart'; 1218 import 'b.dart';
1262 '''); 1219 ''');
1263 newSource('/b.dart', ''' 1220 newSource('/b.dart', '''
1264 library lib_b; 1221 library lib_b;
1265 import 'dart:html'; 1222 import 'dart:html';
1266 '''); 1223 ''');
1267 computeResult(sourceA, IS_CLIENT); 1224 computeResult(sourceA, IS_CLIENT);
1268 expect(task, new isInstanceOf<BuildSourceClosuresTask>()); 1225 expect(task, new isInstanceOf<BuildSourceImportExportClosureTask>());
1269 expect(outputs[IS_CLIENT], isTrue); 1226 expect(outputs[IS_CLIENT], isTrue);
1270 } 1227 }
1271 } 1228 }
1272 1229
1273 @reflectiveTest 1230 @reflectiveTest
1274 class BuildTypeProviderTaskTest extends _AbstractDartTaskTest { 1231 class BuildTypeProviderTaskTest extends _AbstractDartTaskTest {
1275 test_perform() { 1232 test_perform() {
1276 computeResult(AnalysisContextTarget.request, TYPE_PROVIDER); 1233 computeResult(AnalysisContextTarget.request, TYPE_PROVIDER);
1277 expect(task, new isInstanceOf<BuildTypeProviderTask>()); 1234 expect(task, new isInstanceOf<BuildTypeProviderTask>());
1278 // validate 1235 // validate
(...skipping 1502 matching lines...) Expand 10 before | Expand all | Expand 10 after
2781 /** 2738 /**
2782 * Fill [errorListener] with [result] errors in the current [task]. 2739 * Fill [errorListener] with [result] errors in the current [task].
2783 */ 2740 */
2784 void _fillErrorListener(ResultDescriptor<List<AnalysisError>> result) { 2741 void _fillErrorListener(ResultDescriptor<List<AnalysisError>> result) {
2785 List<AnalysisError> errors = task.outputs[result]; 2742 List<AnalysisError> errors = task.outputs[result];
2786 expect(errors, isNotNull, reason: result.name); 2743 expect(errors, isNotNull, reason: result.name);
2787 errorListener = new GatheringErrorListener(); 2744 errorListener = new GatheringErrorListener();
2788 errorListener.addAll(errors); 2745 errorListener.addAll(errors);
2789 } 2746 }
2790 } 2747 }
OLDNEW
« no previous file with comments | « pkg/analyzer/lib/src/task/dart.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698