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

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

Issue 1012993004: Task: Build Export Source Closure. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 9 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 | Annotate | Revision Log
« 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/file_system/file_system.dart'; 7 import 'package:analyzer/file_system/file_system.dart';
8 import 'package:analyzer/file_system/memory_file_system.dart'; 8 import 'package:analyzer/file_system/memory_file_system.dart';
9 import 'package:analyzer/src/context/cache.dart'; 9 import 'package:analyzer/src/context/cache.dart';
10 import 'package:analyzer/src/generated/ast.dart'; 10 import 'package:analyzer/src/generated/ast.dart';
(...skipping 18 matching lines...) Expand all
29 29
30 import '../../generated/test_support.dart'; 30 import '../../generated/test_support.dart';
31 import '../../reflective_tests.dart'; 31 import '../../reflective_tests.dart';
32 import '../mock_sdk.dart'; 32 import '../mock_sdk.dart';
33 33
34 main() { 34 main() {
35 groupSep = ' | '; 35 groupSep = ' | ';
36 runReflectiveTests(BuildCompilationUnitElementTaskTest); 36 runReflectiveTests(BuildCompilationUnitElementTaskTest);
37 runReflectiveTests(BuildDirectiveElementsTaskTest); 37 runReflectiveTests(BuildDirectiveElementsTaskTest);
38 runReflectiveTests(BuildEnumMemberElementsTaskTest); 38 runReflectiveTests(BuildEnumMemberElementsTaskTest);
39 runReflectiveTests(BuildExportSourceClosureTaskTest);
39 runReflectiveTests(BuildLibraryElementTaskTest); 40 runReflectiveTests(BuildLibraryElementTaskTest);
40 runReflectiveTests(BuildPublicNamespaceTaskTest); 41 runReflectiveTests(BuildPublicNamespaceTaskTest);
41 runReflectiveTests(BuildTypeProviderTaskTest); 42 runReflectiveTests(BuildTypeProviderTaskTest);
42 runReflectiveTests(ParseDartTaskTest); 43 runReflectiveTests(ParseDartTaskTest);
43 runReflectiveTests(ScanDartTaskTest); 44 runReflectiveTests(ScanDartTaskTest);
44 } 45 }
45 46
46 @reflectiveTest 47 @reflectiveTest
47 class BuildCompilationUnitElementTaskTest extends _AbstractDartTaskTest { 48 class BuildCompilationUnitElementTaskTest extends _AbstractDartTaskTest {
48 test_buildInputs() { 49 test_buildInputs() {
(...skipping 381 matching lines...) Expand 10 before | Expand all | Expand 10 after
430 431
431 static void _assertGetter(FieldElement field) { 432 static void _assertGetter(FieldElement field) {
432 PropertyAccessorElement getter = field.getter; 433 PropertyAccessorElement getter = field.getter;
433 expect(getter, isNotNull); 434 expect(getter, isNotNull);
434 expect(getter.variable, same(field)); 435 expect(getter.variable, same(field));
435 expect(getter.type, isNotNull); 436 expect(getter.type, isNotNull);
436 } 437 }
437 } 438 }
438 439
439 @reflectiveTest 440 @reflectiveTest
441 class BuildExportSourceClosureTaskTest extends _AbstractDartTaskTest {
442 test_perform() {
443 Source sourceA = _newSource('/a.dart', '''
444 library lib_a;
445 export 'b.dart';
446 ''');
447 Source sourceB = _newSource('/b.dart', '''
448 library lib_b;
449 export 'b.dart';
450 ''');
451 Source sourceC = _newSource('/c.dart', '''
452 library lib_c;
453 export 'a.dart';
454 ''');
455 Source sourceD = _newSource('/d.dart', '''
456 library lib_d;
457 ''');
458 // a.dart
459 {
460 _computeResult(sourceA, EXPORT_SOURCE_CLOSURE);
461 expect(task, new isInstanceOf<BuildExportSourceClosureTask>());
462 List<Source> closure = outputs[EXPORT_SOURCE_CLOSURE];
463 expect(closure, unorderedEquals([sourceA, sourceB]));
464 }
465 // c.dart
466 {
467 _computeResult(sourceC, EXPORT_SOURCE_CLOSURE);
468 expect(task, new isInstanceOf<BuildExportSourceClosureTask>());
469 List<Source> closure = outputs[EXPORT_SOURCE_CLOSURE];
470 expect(closure, unorderedEquals([sourceA, sourceB, sourceC]));
471 }
472 // d.dart
473 {
474 _computeResult(sourceD, EXPORT_SOURCE_CLOSURE);
475 expect(task, new isInstanceOf<BuildExportSourceClosureTask>());
476 List<Source> closure = outputs[EXPORT_SOURCE_CLOSURE];
477 expect(closure, unorderedEquals([sourceD]));
478 }
479 }
480 }
481
482 @reflectiveTest
440 class BuildLibraryElementTaskTest extends _AbstractDartTaskTest { 483 class BuildLibraryElementTaskTest extends _AbstractDartTaskTest {
441 Source librarySource; 484 Source librarySource;
442 CompilationUnit libraryUnit; 485 CompilationUnit libraryUnit;
443 CompilationUnitElement libraryUnitElement; 486 CompilationUnitElement libraryUnitElement;
444 List<CompilationUnit> partUnits; 487 List<CompilationUnit> partUnits;
445 488
446 LibraryElement libraryElement; 489 LibraryElement libraryElement;
447 490
448 test_constructor() { 491 test_constructor() {
449 BuildLibraryElementTask task = 492 BuildLibraryElementTask task =
(...skipping 473 matching lines...) Expand 10 before | Expand all | Expand 10 after
923 new ResourceUriResolver(resourceProvider) 966 new ResourceUriResolver(resourceProvider)
924 ]); 967 ]);
925 // prepare TaskManager 968 // prepare TaskManager
926 taskManager.addTaskDescriptor(GetContentTask.DESCRIPTOR); 969 taskManager.addTaskDescriptor(GetContentTask.DESCRIPTOR);
927 taskManager.addTaskDescriptor(ScanDartTask.DESCRIPTOR); 970 taskManager.addTaskDescriptor(ScanDartTask.DESCRIPTOR);
928 taskManager.addTaskDescriptor(ParseDartTask.DESCRIPTOR); 971 taskManager.addTaskDescriptor(ParseDartTask.DESCRIPTOR);
929 taskManager.addTaskDescriptor(BuildCompilationUnitElementTask.DESCRIPTOR); 972 taskManager.addTaskDescriptor(BuildCompilationUnitElementTask.DESCRIPTOR);
930 taskManager.addTaskDescriptor(BuildLibraryElementTask.DESCRIPTOR); 973 taskManager.addTaskDescriptor(BuildLibraryElementTask.DESCRIPTOR);
931 taskManager.addTaskDescriptor(BuildPublicNamespaceTask.DESCRIPTOR); 974 taskManager.addTaskDescriptor(BuildPublicNamespaceTask.DESCRIPTOR);
932 taskManager.addTaskDescriptor(BuildDirectiveElementsTask.DESCRIPTOR); 975 taskManager.addTaskDescriptor(BuildDirectiveElementsTask.DESCRIPTOR);
976 taskManager.addTaskDescriptor(BuildExportSourceClosureTask.DESCRIPTOR);
933 taskManager.addTaskDescriptor(BuildTypeProviderTask.DESCRIPTOR); 977 taskManager.addTaskDescriptor(BuildTypeProviderTask.DESCRIPTOR);
934 taskManager.addTaskDescriptor(BuildEnumMemberElementsTask.DESCRIPTOR); 978 taskManager.addTaskDescriptor(BuildEnumMemberElementsTask.DESCRIPTOR);
935 // prepare AnalysisDriver 979 // prepare AnalysisDriver
936 analysisDriver = new AnalysisDriver(taskManager, context); 980 analysisDriver = new AnalysisDriver(taskManager, context);
937 } 981 }
938 982
939 void _computeResult(AnalysisTarget target, ResultDescriptor result) { 983 void _computeResult(AnalysisTarget target, ResultDescriptor result) {
940 task = analysisDriver.computeResult(target, result); 984 task = analysisDriver.computeResult(target, result);
941 expect(task.caughtException, isNull); 985 expect(task.caughtException, isNull);
942 outputs = task.outputs; 986 outputs = task.outputs;
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
979 1023
980 bool exists(Source source) => source.exists(); 1024 bool exists(Source source) => source.exists();
981 1025
982 @override 1026 @override
983 CacheEntry getCacheEntry(AnalysisTarget target) { 1027 CacheEntry getCacheEntry(AnalysisTarget target) {
984 return entryMap.putIfAbsent(target, () => new CacheEntry()); 1028 return entryMap.putIfAbsent(target, () => new CacheEntry());
985 } 1029 }
986 1030
987 TimestampedData<String> getContents(Source source) => source.contents; 1031 TimestampedData<String> getContents(Source source) => source.contents;
988 1032
1033 @override
1034 Namespace getPublicNamespace(LibraryElement library) {
1035 // TODO(scheglov) Should be be replaced with an explicit input?
Brian Wilkerson 2015/03/17 13:52:49 "be be" --> "be"
1036 // TODO(scheglov) Based on... LibraryElement's closure?
1037 var cacheEntry = getCacheEntry(library.source);
1038 return cacheEntry.getValue(PUBLIC_NAMESPACE);
1039 }
1040
989 noSuchMethod(Invocation invocation) { 1041 noSuchMethod(Invocation invocation) {
990 print('noSuchMethod: ${invocation.memberName}'); 1042 print('noSuchMethod: ${invocation.memberName}');
991 return super.noSuchMethod(invocation); 1043 return super.noSuchMethod(invocation);
992 } 1044 }
993 } 1045 }
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