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

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

Issue 1444353004: Add debug output for issue 24939. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 1 month 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/driver.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.driver_test; 5 library test.src.task.driver_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/engine.dart' 8 import 'package:analyzer/src/generated/engine.dart'
9 hide 9 hide
10 AnalysisCache, 10 AnalysisCache,
(...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after
343 } 343 }
344 344
345 test_performAnalysisTask_onResultComputed() { 345 test_performAnalysisTask_onResultComputed() {
346 AnalysisTarget target = new TestSource(); 346 AnalysisTarget target = new TestSource();
347 ResultDescriptor result = new ResultDescriptor('result', null); 347 ResultDescriptor result = new ResultDescriptor('result', null);
348 TestAnalysisTask task; 348 TestAnalysisTask task;
349 TaskDescriptor descriptor = new TaskDescriptor( 349 TaskDescriptor descriptor = new TaskDescriptor(
350 'task', (context, target) => task, (target) => {}, [result]); 350 'task', (context, target) => task, (target) => {}, [result]);
351 task = new TestAnalysisTask(context, target, 351 task = new TestAnalysisTask(context, target,
352 descriptor: descriptor, value: 42); 352 descriptor: descriptor, value: 42);
353 WorkItem item = new WorkItem(context, target, descriptor, null); 353 WorkItem item = new WorkItem(context, target, descriptor, null, null);
354 354
355 bool streamNotified = false; 355 bool streamNotified = false;
356 analysisDriver.onResultComputed(result).listen((event) { 356 analysisDriver.onResultComputed(result).listen((event) {
357 streamNotified = true; 357 streamNotified = true;
358 expect(event.context, same(context)); 358 expect(event.context, same(context));
359 expect(event.target, same(target)); 359 expect(event.target, same(target));
360 expect(event.descriptor, same(result)); 360 expect(event.descriptor, same(result));
361 expect(event.value, 42); 361 expect(event.value, 42);
362 }); 362 });
363 analysisDriver.performWorkItem(item); 363 analysisDriver.performWorkItem(item);
364 expect(streamNotified, isTrue); 364 expect(streamNotified, isTrue);
365 } 365 }
366 366
367 test_performWorkItem_exceptionInTask() { 367 test_performWorkItem_exceptionInTask() {
368 AnalysisTarget target = new TestSource(); 368 AnalysisTarget target = new TestSource();
369 ResultDescriptor result = new ResultDescriptor('result', null); 369 ResultDescriptor result = new ResultDescriptor('result', null);
370 CaughtException exception = 370 CaughtException exception =
371 new CaughtException(new AnalysisException(), null); 371 new CaughtException(new AnalysisException(), null);
372 TestAnalysisTask task; 372 TestAnalysisTask task;
373 TaskDescriptor descriptor = new TaskDescriptor( 373 TaskDescriptor descriptor = new TaskDescriptor(
374 'task', (context, target) => task, (target) => {}, [result]); 374 'task', (context, target) => task, (target) => {}, [result]);
375 task = new TestAnalysisTask(context, target, 375 task = new TestAnalysisTask(context, target,
376 descriptor: descriptor, exception: exception); 376 descriptor: descriptor, exception: exception);
377 WorkItem item = new WorkItem(context, target, descriptor, null); 377 WorkItem item = new WorkItem(context, target, descriptor, null, null);
378 378
379 analysisDriver.performWorkItem(item); 379 analysisDriver.performWorkItem(item);
380 CacheEntry targetEntry = context.getCacheEntry(item.target); 380 CacheEntry targetEntry = context.getCacheEntry(item.target);
381 expect(targetEntry.exception, exception); 381 expect(targetEntry.exception, exception);
382 expect(targetEntry.getState(result), CacheState.ERROR); 382 expect(targetEntry.getState(result), CacheState.ERROR);
383 } 383 }
384 384
385 test_performWorkItem_noException() { 385 test_performWorkItem_noException() {
386 AnalysisTarget target = new TestSource(); 386 AnalysisTarget target = new TestSource();
387 ResultDescriptor result = new ResultDescriptor('result', null); 387 ResultDescriptor result = new ResultDescriptor('result', null);
388 TestAnalysisTask task; 388 TestAnalysisTask task;
389 TaskDescriptor descriptor = new TaskDescriptor( 389 TaskDescriptor descriptor = new TaskDescriptor(
390 'task', (context, target) => task, (target) => {}, [result]); 390 'task', (context, target) => task, (target) => {}, [result]);
391 task = new TestAnalysisTask(context, target, descriptor: descriptor); 391 task = new TestAnalysisTask(context, target, descriptor: descriptor);
392 WorkItem item = new WorkItem(context, target, descriptor, null); 392 WorkItem item = new WorkItem(context, target, descriptor, null, null);
393 393
394 analysisDriver.performWorkItem(item); 394 analysisDriver.performWorkItem(item);
395 CacheEntry targetEntry = context.getCacheEntry(item.target); 395 CacheEntry targetEntry = context.getCacheEntry(item.target);
396 expect(targetEntry.exception, isNull); 396 expect(targetEntry.exception, isNull);
397 expect(targetEntry.getState(result), CacheState.VALID); 397 expect(targetEntry.getState(result), CacheState.VALID);
398 } 398 }
399 399
400 test_performWorkItem_preExistingException() { 400 test_performWorkItem_preExistingException() {
401 AnalysisTarget target = new TestSource(); 401 AnalysisTarget target = new TestSource();
402 ResultDescriptor result = new ResultDescriptor('result', null); 402 ResultDescriptor result = new ResultDescriptor('result', null);
403 TaskDescriptor descriptor = new TaskDescriptor( 403 TaskDescriptor descriptor = new TaskDescriptor(
404 'task', 404 'task',
405 (context, target) => new TestAnalysisTask(context, target), 405 (context, target) => new TestAnalysisTask(context, target),
406 (target) => {}, 406 (target) => {},
407 [result]); 407 [result]);
408 CaughtException exception = 408 CaughtException exception =
409 new CaughtException(new AnalysisException(), null); 409 new CaughtException(new AnalysisException(), null);
410 WorkItem item = new WorkItem(context, target, descriptor, null); 410 WorkItem item = new WorkItem(context, target, descriptor, null, null);
411 item.exception = exception; 411 item.exception = exception;
412 412
413 analysisDriver.performWorkItem(item); 413 analysisDriver.performWorkItem(item);
414 CacheEntry targetEntry = context.getCacheEntry(item.target); 414 CacheEntry targetEntry = context.getCacheEntry(item.target);
415 expect(targetEntry.exception, exception); 415 expect(targetEntry.exception, exception);
416 expect(targetEntry.getState(result), CacheState.ERROR); 416 expect(targetEntry.getState(result), CacheState.ERROR);
417 } 417 }
418 418
419 test_reset() { 419 test_reset() {
420 ResultDescriptor inputResult = new ResultDescriptor('input', null); 420 ResultDescriptor inputResult = new ResultDescriptor('input', null);
421 TaskDescriptor descriptor = new TaskDescriptor( 421 TaskDescriptor descriptor = new TaskDescriptor(
422 'task', 422 'task',
423 (context, target) => new TestAnalysisTask(context, target), 423 (context, target) => new TestAnalysisTask(context, target),
424 (target) => {'one': inputResult.of(target)}, 424 (target) => {'one': inputResult.of(target)},
425 [new ResultDescriptor('output', null)]); 425 [new ResultDescriptor('output', null)]);
426 analysisDriver.currentWorkOrder = 426 analysisDriver.currentWorkOrder = new WorkOrder(
427 new WorkOrder(taskManager, new WorkItem(null, null, descriptor, null)); 427 taskManager, new WorkItem(null, null, descriptor, null, null));
428 428
429 analysisDriver.reset(); 429 analysisDriver.reset();
430 expect(analysisDriver.currentWorkOrder, isNull); 430 expect(analysisDriver.currentWorkOrder, isNull);
431 } 431 }
432 432
433 void _configureDescriptors12() { 433 void _configureDescriptors12() {
434 descriptor1 = new TaskDescriptor( 434 descriptor1 = new TaskDescriptor(
435 'task1', 435 'task1',
436 (context, target) => 436 (context, target) =>
437 new TestAnalysisTask(context, target, descriptor: descriptor1), 437 new TestAnalysisTask(context, target, descriptor: descriptor1),
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
615 615
616 @reflectiveTest 616 @reflectiveTest
617 class WorkItemTest extends AbstractDriverTest { 617 class WorkItemTest extends AbstractDriverTest {
618 test_buildTask_complete() { 618 test_buildTask_complete() {
619 AnalysisTarget target = new TestSource(); 619 AnalysisTarget target = new TestSource();
620 TaskDescriptor descriptor = new TaskDescriptor( 620 TaskDescriptor descriptor = new TaskDescriptor(
621 'task', 621 'task',
622 (context, target) => new TestAnalysisTask(context, target), 622 (context, target) => new TestAnalysisTask(context, target),
623 (target) => {}, 623 (target) => {},
624 [new ResultDescriptor('output', null)]); 624 [new ResultDescriptor('output', null)]);
625 WorkItem item = new WorkItem(context, target, descriptor, null); 625 WorkItem item = new WorkItem(context, target, descriptor, null, null);
626 AnalysisTask task = item.buildTask(); 626 AnalysisTask task = item.buildTask();
627 expect(task, isNotNull); 627 expect(task, isNotNull);
628 } 628 }
629 629
630 test_buildTask_incomplete() { 630 test_buildTask_incomplete() {
631 AnalysisTarget target = new TestSource(); 631 AnalysisTarget target = new TestSource();
632 ResultDescriptor inputResult = new ResultDescriptor('input', null); 632 ResultDescriptor inputResult = new ResultDescriptor('input', null);
633 List<ResultDescriptor> outputResults = <ResultDescriptor>[ 633 List<ResultDescriptor> outputResults = <ResultDescriptor>[
634 new ResultDescriptor('output', null) 634 new ResultDescriptor('output', null)
635 ]; 635 ];
636 TaskDescriptor descriptor = new TaskDescriptor( 636 TaskDescriptor descriptor = new TaskDescriptor(
637 'task', 637 'task',
638 (context, target) => 638 (context, target) =>
639 new TestAnalysisTask(context, target, results: outputResults), 639 new TestAnalysisTask(context, target, results: outputResults),
640 (target) => {'one': inputResult.of(target)}, 640 (target) => {'one': inputResult.of(target)},
641 outputResults); 641 outputResults);
642 WorkItem item = new WorkItem(context, target, descriptor, null); 642 WorkItem item = new WorkItem(context, target, descriptor, null, null);
643 expect(() => item.buildTask(), throwsStateError); 643 expect(() => item.buildTask(), throwsStateError);
644 } 644 }
645 645
646 test_create() { 646 test_create() {
647 AnalysisTarget target = new TestSource(); 647 AnalysisTarget target = new TestSource();
648 TaskDescriptor descriptor = new TaskDescriptor( 648 TaskDescriptor descriptor = new TaskDescriptor(
649 'task', null, (target) => {}, [new ResultDescriptor('result', null)]); 649 'task', null, (target) => {}, [new ResultDescriptor('result', null)]);
650 WorkItem item = new WorkItem(context, target, descriptor, null); 650 WorkItem item = new WorkItem(context, target, descriptor, null, null);
651 expect(item, isNotNull); 651 expect(item, isNotNull);
652 expect(item.context, context); 652 expect(item.context, context);
653 expect(item.descriptor, descriptor); 653 expect(item.descriptor, descriptor);
654 expect(item.target, target); 654 expect(item.target, target);
655 } 655 }
656 656
657 test_gatherInputs_complete() { 657 test_gatherInputs_complete() {
658 AnalysisTarget target = new TestSource(); 658 AnalysisTarget target = new TestSource();
659 TaskDescriptor descriptor = new TaskDescriptor( 659 TaskDescriptor descriptor = new TaskDescriptor(
660 'task', 660 'task',
661 (context, target) => new TestAnalysisTask(context, target), 661 (context, target) => new TestAnalysisTask(context, target),
662 (target) => {}, 662 (target) => {},
663 [new ResultDescriptor('output', null)]); 663 [new ResultDescriptor('output', null)]);
664 WorkItem item = new WorkItem(context, target, descriptor, null); 664 WorkItem item = new WorkItem(context, target, descriptor, null, null);
665 WorkItem result = item.gatherInputs(taskManager, []); 665 WorkItem result = item.gatherInputs(taskManager, []);
666 expect(result, isNull); 666 expect(result, isNull);
667 expect(item.exception, isNull); 667 expect(item.exception, isNull);
668 } 668 }
669 669
670 test_gatherInputs_incomplete() { 670 test_gatherInputs_incomplete() {
671 AnalysisTarget target = new TestSource(); 671 AnalysisTarget target = new TestSource();
672 ResultDescriptor resultA = new ResultDescriptor('resultA', null); 672 ResultDescriptor resultA = new ResultDescriptor('resultA', null);
673 ResultDescriptor resultB = new ResultDescriptor('resultB', null); 673 ResultDescriptor resultB = new ResultDescriptor('resultB', null);
674 // prepare tasks 674 // prepare tasks
675 TaskDescriptor task1 = new TaskDescriptor( 675 TaskDescriptor task1 = new TaskDescriptor(
676 'task', 676 'task',
677 (context, target) => 677 (context, target) =>
678 new TestAnalysisTask(context, target, results: [resultA]), 678 new TestAnalysisTask(context, target, results: [resultA]),
679 (target) => {}, 679 (target) => {},
680 [resultA]); 680 [resultA]);
681 TaskDescriptor task2 = new TaskDescriptor( 681 TaskDescriptor task2 = new TaskDescriptor(
682 'task', 682 'task',
683 (context, target) => new TestAnalysisTask(context, target), 683 (context, target) => new TestAnalysisTask(context, target),
684 (target) => {'one': resultA.of(target)}, 684 (target) => {'one': resultA.of(target)},
685 [resultB]); 685 [resultB]);
686 taskManager.addTaskDescriptor(task1); 686 taskManager.addTaskDescriptor(task1);
687 taskManager.addTaskDescriptor(task2); 687 taskManager.addTaskDescriptor(task2);
688 // gather inputs 688 // gather inputs
689 WorkItem item = new WorkItem(context, target, task2, null); 689 WorkItem item = new WorkItem(context, target, task2, null, null);
690 WorkItem inputItem = item.gatherInputs(taskManager, []); 690 WorkItem inputItem = item.gatherInputs(taskManager, []);
691 expect(inputItem, isNotNull); 691 expect(inputItem, isNotNull);
692 } 692 }
693 693
694 test_gatherInputs_invalid() { 694 test_gatherInputs_invalid() {
695 AnalysisTarget target = new TestSource(); 695 AnalysisTarget target = new TestSource();
696 ResultDescriptor inputResult = new ResultDescriptor('input', null); 696 ResultDescriptor inputResult = new ResultDescriptor('input', null);
697 TaskDescriptor descriptor = new TaskDescriptor( 697 TaskDescriptor descriptor = new TaskDescriptor(
698 'task', 698 'task',
699 (context, target) => new TestAnalysisTask(context, target), 699 (context, target) => new TestAnalysisTask(context, target),
700 (target) => {'one': inputResult.of(target)}, 700 (target) => {'one': inputResult.of(target)},
701 [new ResultDescriptor('output', null)]); 701 [new ResultDescriptor('output', null)]);
702 WorkItem item = new WorkItem(context, target, descriptor, null); 702 WorkItem item = new WorkItem(context, target, descriptor, null, null);
703 WorkItem result = item.gatherInputs(taskManager, []); 703 WorkItem result = item.gatherInputs(taskManager, []);
704 expect(result, isNull); 704 expect(result, isNull);
705 expect(item.exception, isNotNull); 705 expect(item.exception, isNotNull);
706 } 706 }
707 } 707 }
708 708
709 @reflectiveTest 709 @reflectiveTest
710 class WorkOrderTest extends EngineTestCase { 710 class WorkOrderTest extends EngineTestCase {
711 test_create() { 711 test_create() {
712 TaskManager manager = new TaskManager(); 712 TaskManager manager = new TaskManager();
713 TaskDescriptor descriptor = new TaskDescriptor( 713 TaskDescriptor descriptor = new TaskDescriptor(
714 'task', null, (_) => {}, [new ResultDescriptor('result', null)]); 714 'task', null, (_) => {}, [new ResultDescriptor('result', null)]);
715 WorkOrder order = 715 WorkOrder order = new WorkOrder(
716 new WorkOrder(manager, new WorkItem(null, null, descriptor, null)); 716 manager, new WorkItem(null, null, descriptor, null, null));
717 expect(order, isNotNull); 717 expect(order, isNotNull);
718 expect(order.currentItems, isNull); 718 expect(order.currentItems, isNull);
719 expect(order.current, isNull); 719 expect(order.current, isNull);
720 } 720 }
721 721
722 test_moveNext() { 722 test_moveNext() {
723 TaskManager manager = new TaskManager(); 723 TaskManager manager = new TaskManager();
724 TaskDescriptor descriptor = new TaskDescriptor( 724 TaskDescriptor descriptor = new TaskDescriptor(
725 'task', null, (_) => {}, [new ResultDescriptor('result', null)]); 725 'task', null, (_) => {}, [new ResultDescriptor('result', null)]);
726 WorkItem workItem = new WorkItem(null, null, descriptor, null); 726 WorkItem workItem = new WorkItem(null, null, descriptor, null, null);
727 WorkOrder order = new WorkOrder(manager, workItem); 727 WorkOrder order = new WorkOrder(manager, workItem);
728 // "item" has no child items 728 // "item" has no child items
729 expect(order.moveNext(), isTrue); 729 expect(order.moveNext(), isTrue);
730 expect(order.current, workItem); 730 expect(order.current, workItem);
731 // done 731 // done
732 expect(order.moveNext(), isFalse); 732 expect(order.moveNext(), isFalse);
733 expect(order.current, isNull); 733 expect(order.current, isNull);
734 } 734 }
735 } 735 }
736 736
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
784 return dependency; 784 return dependency;
785 } 785 }
786 } 786 }
787 return null; 787 return null;
788 } 788 }
789 } 789 }
790 790
791 class _WorkManagerMock extends TypedMock implements WorkManager { 791 class _WorkManagerMock extends TypedMock implements WorkManager {
792 noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation); 792 noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
793 } 793 }
OLDNEW
« no previous file with comments | « pkg/analyzer/lib/src/task/driver.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698