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

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

Issue 1311773005: Extension point for WorkManagerFactory(s). (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Move classes as by review comments. Created 5 years, 3 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
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_work_manager_test; 5 library test.src.task.dart_work_manager_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/engine.dart' 9 import 'package:analyzer/src/generated/engine.dart'
10 show 10 show
11 AnalysisErrorInfo, 11 AnalysisErrorInfo,
12 AnalysisErrorInfoImpl,
12 CacheState, 13 CacheState,
13 ChangeNoticeImpl, 14 ChangeNoticeImpl,
14 InternalAnalysisContext; 15 InternalAnalysisContext;
15 import 'package:analyzer/src/generated/error.dart' show AnalysisError; 16 import 'package:analyzer/src/generated/error.dart' show AnalysisError;
16 import 'package:analyzer/src/generated/java_engine.dart' show CaughtException; 17 import 'package:analyzer/src/generated/java_engine.dart' show CaughtException;
17 import 'package:analyzer/src/generated/scanner.dart' show ScannerErrorCode; 18 import 'package:analyzer/src/generated/scanner.dart' show ScannerErrorCode;
18 import 'package:analyzer/src/generated/source.dart'; 19 import 'package:analyzer/src/generated/source.dart';
19 import 'package:analyzer/src/generated/testing/ast_factory.dart'; 20 import 'package:analyzer/src/generated/testing/ast_factory.dart';
20 import 'package:analyzer/src/task/dart.dart'; 21 import 'package:analyzer/src/task/dart.dart';
21 import 'package:analyzer/src/task/dart_work_manager.dart'; 22 import 'package:analyzer/src/task/dart_work_manager.dart';
(...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after
287 expect(request.target, source2); 288 expect(request.target, source2);
288 expect(request.result, SOURCE_KIND); 289 expect(request.result, SOURCE_KIND);
289 } 290 }
290 291
291 void test_getErrors() { 292 void test_getErrors() {
292 AnalysisError error1 = 293 AnalysisError error1 =
293 new AnalysisError(source1, 1, 0, ScannerErrorCode.MISSING_DIGIT); 294 new AnalysisError(source1, 1, 0, ScannerErrorCode.MISSING_DIGIT);
294 AnalysisError error2 = 295 AnalysisError error2 =
295 new AnalysisError(source1, 2, 0, ScannerErrorCode.MISSING_DIGIT); 296 new AnalysisError(source1, 2, 0, ScannerErrorCode.MISSING_DIGIT);
296 when(context.getLibrariesContaining(source1)).thenReturn([source2]); 297 when(context.getLibrariesContaining(source1)).thenReturn([source2]);
297 LineInfo lineInfo = new LineInfo([0]);
298 entry1.setValue(LINE_INFO, lineInfo, []);
299 entry1.setValue(SCAN_ERRORS, <AnalysisError>[error1], []); 298 entry1.setValue(SCAN_ERRORS, <AnalysisError>[error1], []);
300 context 299 context
301 .getCacheEntry(new LibrarySpecificUnit(source2, source1)) 300 .getCacheEntry(new LibrarySpecificUnit(source2, source1))
302 .setValue(VERIFY_ERRORS, <AnalysisError>[error2], []); 301 .setValue(VERIFY_ERRORS, <AnalysisError>[error2], []);
303 AnalysisErrorInfo errorInfo = manager.getErrors(source1); 302 List<AnalysisError> errors = manager.getErrors(source1);
304 expect(errorInfo.errors, unorderedEquals([error1, error2])); 303 expect(errors, unorderedEquals([error1, error2]));
305 expect(errorInfo.lineInfo, lineInfo);
306 } 304 }
307 305
308 void test_getErrors_hasFullList() { 306 void test_getErrors_hasFullList() {
309 AnalysisError error1 = 307 AnalysisError error1 =
310 new AnalysisError(source1, 1, 0, ScannerErrorCode.MISSING_DIGIT); 308 new AnalysisError(source1, 1, 0, ScannerErrorCode.MISSING_DIGIT);
311 AnalysisError error2 = 309 AnalysisError error2 =
312 new AnalysisError(source1, 2, 0, ScannerErrorCode.MISSING_DIGIT); 310 new AnalysisError(source1, 2, 0, ScannerErrorCode.MISSING_DIGIT);
313 when(context.getLibrariesContaining(source1)).thenReturn([source2]); 311 when(context.getLibrariesContaining(source1)).thenReturn([source2]);
314 LineInfo lineInfo = new LineInfo([0]);
315 entry1.setValue(LINE_INFO, lineInfo, []);
316 entry1.setValue(DART_ERRORS, <AnalysisError>[error1, error2], []); 312 entry1.setValue(DART_ERRORS, <AnalysisError>[error1, error2], []);
317 AnalysisErrorInfo errorInfo = manager.getErrors(source1); 313 List<AnalysisError> errors = manager.getErrors(source1);
318 expect(errorInfo.errors, unorderedEquals([error1, error2])); 314 expect(errors, unorderedEquals([error1, error2]));
319 expect(errorInfo.lineInfo, lineInfo);
320 } 315 }
321 316
322 void test_getLibrariesContainingPart() { 317 void test_getLibrariesContainingPart() {
323 Source part1 = new TestSource('part1.dart'); 318 Source part1 = new TestSource('part1.dart');
324 Source part2 = new TestSource('part2.dart'); 319 Source part2 = new TestSource('part2.dart');
325 Source part3 = new TestSource('part3.dart'); 320 Source part3 = new TestSource('part3.dart');
326 Source library1 = new TestSource('library1.dart'); 321 Source library1 = new TestSource('library1.dart');
327 Source library2 = new TestSource('library2.dart'); 322 Source library2 = new TestSource('library2.dart');
328 manager.partLibrariesMap[part1] = [library1, library2]; 323 manager.partLibrariesMap[part1] = [library1, library2];
329 manager.partLibrariesMap[part2] = [library2]; 324 manager.partLibrariesMap[part2] = [library2];
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
523 expect(unitEntry.getState(BUILD_LIBRARY_ERRORS), CacheState.INVALID); 518 expect(unitEntry.getState(BUILD_LIBRARY_ERRORS), CacheState.INVALID);
524 // ...and URIs resolution too 519 // ...and URIs resolution too
525 expect(entry1.getState(PARSED_UNIT), CacheState.INVALID); 520 expect(entry1.getState(PARSED_UNIT), CacheState.INVALID);
526 expect(entry1.getState(IMPORTED_LIBRARIES), CacheState.INVALID); 521 expect(entry1.getState(IMPORTED_LIBRARIES), CacheState.INVALID);
527 expect(entry1.getState(EXPLICITLY_IMPORTED_LIBRARIES), CacheState.INVALID); 522 expect(entry1.getState(EXPLICITLY_IMPORTED_LIBRARIES), CacheState.INVALID);
528 expect(entry1.getState(EXPORTED_LIBRARIES), CacheState.INVALID); 523 expect(entry1.getState(EXPORTED_LIBRARIES), CacheState.INVALID);
529 expect(entry1.getState(INCLUDED_PARTS), CacheState.INVALID); 524 expect(entry1.getState(INCLUDED_PARTS), CacheState.INVALID);
530 } 525 }
531 526
532 void test_resultsComputed_errors_forLibrarySpecificUnit() { 527 void test_resultsComputed_errors_forLibrarySpecificUnit() {
528 LineInfo lineInfo = new LineInfo([0]);
533 AnalysisError error1 = 529 AnalysisError error1 =
534 new AnalysisError(source1, 1, 0, ScannerErrorCode.MISSING_DIGIT); 530 new AnalysisError(source1, 1, 0, ScannerErrorCode.MISSING_DIGIT);
535 AnalysisError error2 = 531 AnalysisError error2 =
536 new AnalysisError(source1, 2, 0, ScannerErrorCode.MISSING_DIGIT); 532 new AnalysisError(source1, 2, 0, ScannerErrorCode.MISSING_DIGIT);
537 when(context.getLibrariesContaining(source1)).thenReturn([source2]); 533 when(context.getLibrariesContaining(source1)).thenReturn([source2]);
538 LineInfo lineInfo = new LineInfo([0]); 534 when(context.getErrors(source1))
535 .thenReturn(new AnalysisErrorInfoImpl([error1, error2], lineInfo));
539 entry1.setValue(LINE_INFO, lineInfo, []); 536 entry1.setValue(LINE_INFO, lineInfo, []);
540 entry1.setValue(SCAN_ERRORS, <AnalysisError>[error1], []); 537 entry1.setValue(SCAN_ERRORS, <AnalysisError>[error1], []);
541 AnalysisTarget unitTarget = new LibrarySpecificUnit(source2, source1); 538 AnalysisTarget unitTarget = new LibrarySpecificUnit(source2, source1);
542 context 539 context
543 .getCacheEntry(unitTarget) 540 .getCacheEntry(unitTarget)
544 .setValue(VERIFY_ERRORS, <AnalysisError>[error2], []); 541 .setValue(VERIFY_ERRORS, <AnalysisError>[error2], []);
545 // RESOLVED_UNIT is ready, set errors 542 // RESOLVED_UNIT is ready, set errors
546 manager.resultsComputed( 543 manager.resultsComputed(
547 unitTarget, {RESOLVED_UNIT: AstFactory.compilationUnit()}); 544 unitTarget, {RESOLVED_UNIT: AstFactory.compilationUnit()});
548 // all of the errors are included 545 // all of the errors are included
549 ChangeNoticeImpl notice = context.getNotice(source1); 546 ChangeNoticeImpl notice = context.getNotice(source1);
550 expect(notice.errors, unorderedEquals([error1, error2])); 547 expect(notice.errors, unorderedEquals([error1, error2]));
551 expect(notice.lineInfo, lineInfo); 548 expect(notice.lineInfo, lineInfo);
552 } 549 }
553 550
554 void test_resultsComputed_errors_forSource() { 551 void test_resultsComputed_errors_forSource() {
552 LineInfo lineInfo = new LineInfo([0]);
555 AnalysisError error1 = 553 AnalysisError error1 =
556 new AnalysisError(source1, 1, 0, ScannerErrorCode.MISSING_DIGIT); 554 new AnalysisError(source1, 1, 0, ScannerErrorCode.MISSING_DIGIT);
557 AnalysisError error2 = 555 AnalysisError error2 =
558 new AnalysisError(source1, 2, 0, ScannerErrorCode.MISSING_DIGIT); 556 new AnalysisError(source1, 2, 0, ScannerErrorCode.MISSING_DIGIT);
559 when(context.getLibrariesContaining(source1)).thenReturn([source2]); 557 when(context.getLibrariesContaining(source1)).thenReturn([source2]);
560 LineInfo lineInfo = new LineInfo([0]); 558 when(context.getErrors(source1))
559 .thenReturn(new AnalysisErrorInfoImpl([error1, error2], lineInfo));
561 entry1.setValue(LINE_INFO, lineInfo, []); 560 entry1.setValue(LINE_INFO, lineInfo, []);
562 entry1.setValue(SCAN_ERRORS, <AnalysisError>[error1], []); 561 entry1.setValue(SCAN_ERRORS, <AnalysisError>[error1], []);
563 entry1.setValue(PARSE_ERRORS, <AnalysisError>[error2], []); 562 entry1.setValue(PARSE_ERRORS, <AnalysisError>[error2], []);
564 // PARSED_UNIT is ready, set errors 563 // PARSED_UNIT is ready, set errors
565 manager.resultsComputed( 564 manager.resultsComputed(
566 source1, {PARSED_UNIT: AstFactory.compilationUnit()}); 565 source1, {PARSED_UNIT: AstFactory.compilationUnit()});
567 // all of the errors are included 566 // all of the errors are included
568 ChangeNoticeImpl notice = context.getNotice(source1); 567 ChangeNoticeImpl notice = context.getNotice(source1);
569 expect(notice.errors, unorderedEquals([error1, error2])); 568 expect(notice.errors, unorderedEquals([error1, error2]));
570 expect(notice.lineInfo, lineInfo); 569 expect(notice.lineInfo, lineInfo);
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
608 } 607 }
609 608
610 void test_resultsComputed_notDart() { 609 void test_resultsComputed_notDart() {
611 manager.unknownSourceQueue.addAll([source1, source2]); 610 manager.unknownSourceQueue.addAll([source1, source2]);
612 manager.resultsComputed(new TestSource('test.html'), {}); 611 manager.resultsComputed(new TestSource('test.html'), {});
613 expect_librarySourceQueue([]); 612 expect_librarySourceQueue([]);
614 expect_unknownSourceQueue([source1, source2]); 613 expect_unknownSourceQueue([source1, source2]);
615 } 614 }
616 615
617 void test_resultsComputed_parsedUnit() { 616 void test_resultsComputed_parsedUnit() {
617 LineInfo lineInfo = new LineInfo([0]);
618 when(context.getLibrariesContaining(source1)).thenReturn([]); 618 when(context.getLibrariesContaining(source1)).thenReturn([]);
619 LineInfo lineInfo = new LineInfo([0]); 619 when(context.getErrors(source1))
620 .thenReturn(new AnalysisErrorInfoImpl([], lineInfo));
620 entry1.setValue(LINE_INFO, lineInfo, []); 621 entry1.setValue(LINE_INFO, lineInfo, []);
621 CompilationUnit unit = AstFactory.compilationUnit(); 622 CompilationUnit unit = AstFactory.compilationUnit();
622 manager.resultsComputed(source1, {PARSED_UNIT: unit}); 623 manager.resultsComputed(source1, {PARSED_UNIT: unit});
623 ChangeNoticeImpl notice = context.getNotice(source1); 624 ChangeNoticeImpl notice = context.getNotice(source1);
624 expect(notice.parsedDartUnit, unit); 625 expect(notice.parsedDartUnit, unit);
625 expect(notice.resolvedDartUnit, isNull); 626 expect(notice.resolvedDartUnit, isNull);
626 expect(notice.lineInfo, lineInfo); 627 expect(notice.lineInfo, lineInfo);
627 } 628 }
628 629
629 void test_resultsComputed_resolvedUnit() { 630 void test_resultsComputed_resolvedUnit() {
631 LineInfo lineInfo = new LineInfo([0]);
630 when(context.getLibrariesContaining(source2)).thenReturn([]); 632 when(context.getLibrariesContaining(source2)).thenReturn([]);
631 LineInfo lineInfo = new LineInfo([0]); 633 when(context.getErrors(source2))
634 .thenReturn(new AnalysisErrorInfoImpl([], lineInfo));
632 entry2.setValue(LINE_INFO, lineInfo, []); 635 entry2.setValue(LINE_INFO, lineInfo, []);
633 CompilationUnit unit = AstFactory.compilationUnit(); 636 CompilationUnit unit = AstFactory.compilationUnit();
634 manager.resultsComputed( 637 manager.resultsComputed(
635 new LibrarySpecificUnit(source1, source2), {RESOLVED_UNIT: unit}); 638 new LibrarySpecificUnit(source1, source2), {RESOLVED_UNIT: unit});
636 ChangeNoticeImpl notice = context.getNotice(source2); 639 ChangeNoticeImpl notice = context.getNotice(source2);
637 expect(notice.parsedDartUnit, isNull); 640 expect(notice.parsedDartUnit, isNull);
638 expect(notice.resolvedDartUnit, unit); 641 expect(notice.resolvedDartUnit, unit);
639 expect(notice.lineInfo, lineInfo); 642 expect(notice.lineInfo, lineInfo);
640 } 643 }
641 644
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
715 } 718 }
716 719
717 @override 720 @override
718 ChangeNoticeImpl getNotice(Source source) { 721 ChangeNoticeImpl getNotice(Source source) {
719 return _pendingNotices.putIfAbsent( 722 return _pendingNotices.putIfAbsent(
720 source, () => new ChangeNoticeImpl(source)); 723 source, () => new ChangeNoticeImpl(source));
721 } 724 }
722 725
723 noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation); 726 noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
724 } 727 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698