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

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

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

Powered by Google App Engine
This is Rietveld 408576698