| OLD | NEW |
| 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 show | 9 show |
| 10 AnalysisContext, | 10 AnalysisContext, |
| (...skipping 653 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 664 manager.resultStored(result2, null); | 664 manager.resultStored(result2, null); |
| 665 manager.resultStored(result3, null); | 665 manager.resultStored(result3, null); |
| 666 expect(manager.currentSize, 3); | 666 expect(manager.currentSize, 3); |
| 667 expect(manager.recentlyUsed, orderedEquals([result1, result2, result3])); | 667 expect(manager.recentlyUsed, orderedEquals([result1, result2, result3])); |
| 668 // access result2 | 668 // access result2 |
| 669 manager.resultAccessed(result2); | 669 manager.resultAccessed(result2); |
| 670 expect(manager.currentSize, 3); | 670 expect(manager.currentSize, 3); |
| 671 expect(manager.recentlyUsed, orderedEquals([result1, result3, result2])); | 671 expect(manager.recentlyUsed, orderedEquals([result1, result3, result2])); |
| 672 } | 672 } |
| 673 | 673 |
| 674 test_resultAccessed_negativeMaxSize() { |
| 675 manager = new CacheFlushManager(new SimpleResultCachingPolicy(-1, -1), |
| 676 (AnalysisTarget target) => false); |
| 677 ResultDescriptor descriptor1 = new ResultDescriptor('result1', null); |
| 678 ResultDescriptor descriptor2 = new ResultDescriptor('result2', null); |
| 679 AnalysisTarget target = new TestSource(); |
| 680 TargetedResult result1 = new TargetedResult(target, descriptor1); |
| 681 TargetedResult result2 = new TargetedResult(target, descriptor2); |
| 682 manager.resultStored(result1, null); |
| 683 manager.resultStored(result2, null); |
| 684 expect(manager.currentSize, 0); |
| 685 expect(manager.recentlyUsed, isEmpty); |
| 686 // access result2 |
| 687 manager.resultAccessed(result2); |
| 688 expect(manager.currentSize, 0); |
| 689 expect(manager.recentlyUsed, isEmpty); |
| 690 } |
| 691 |
| 674 test_resultAccessed_noSuchResult() { | 692 test_resultAccessed_noSuchResult() { |
| 675 ResultDescriptor descriptor1 = new ResultDescriptor('result1', null); | 693 ResultDescriptor descriptor1 = new ResultDescriptor('result1', null); |
| 676 ResultDescriptor descriptor2 = new ResultDescriptor('result2', null); | 694 ResultDescriptor descriptor2 = new ResultDescriptor('result2', null); |
| 677 ResultDescriptor descriptor3 = new ResultDescriptor('result3', null); | 695 ResultDescriptor descriptor3 = new ResultDescriptor('result3', null); |
| 678 AnalysisTarget target = new TestSource(); | 696 AnalysisTarget target = new TestSource(); |
| 679 TargetedResult result1 = new TargetedResult(target, descriptor1); | 697 TargetedResult result1 = new TargetedResult(target, descriptor1); |
| 680 TargetedResult result2 = new TargetedResult(target, descriptor2); | 698 TargetedResult result2 = new TargetedResult(target, descriptor2); |
| 681 TargetedResult result3 = new TargetedResult(target, descriptor3); | 699 TargetedResult result3 = new TargetedResult(target, descriptor3); |
| 682 manager.resultStored(result1, null); | 700 manager.resultStored(result1, null); |
| 683 manager.resultStored(result2, null); | 701 manager.resultStored(result2, null); |
| 684 expect(manager.currentSize, 2); | 702 expect(manager.currentSize, 2); |
| 685 expect(manager.recentlyUsed, orderedEquals([result1, result2])); | 703 expect(manager.recentlyUsed, orderedEquals([result1, result2])); |
| 686 // access result3, no-op | 704 // access result3, no-op |
| 687 manager.resultAccessed(result3); | 705 manager.resultAccessed(result3); |
| 688 expect(manager.currentSize, 2); | 706 expect(manager.currentSize, 2); |
| 689 expect(manager.recentlyUsed, orderedEquals([result1, result2])); | 707 expect(manager.recentlyUsed, orderedEquals([result1, result2])); |
| 690 } | 708 } |
| 691 | 709 |
| 692 test_resultAccessed_unlimitedCachingPolicy() { | |
| 693 manager = new CacheFlushManager(new SimpleResultCachingPolicy(-1, -1), | |
| 694 (AnalysisTarget target) => false); | |
| 695 ResultDescriptor descriptor1 = new ResultDescriptor('result1', null); | |
| 696 ResultDescriptor descriptor2 = new ResultDescriptor('result2', null); | |
| 697 AnalysisTarget target = new TestSource(); | |
| 698 TargetedResult result1 = new TargetedResult(target, descriptor1); | |
| 699 TargetedResult result2 = new TargetedResult(target, descriptor2); | |
| 700 manager.resultStored(result1, null); | |
| 701 manager.resultStored(result2, null); | |
| 702 expect(manager.currentSize, 0); | |
| 703 expect(manager.recentlyUsed, isEmpty); | |
| 704 // access result2 | |
| 705 manager.resultAccessed(result2); | |
| 706 expect(manager.currentSize, 0); | |
| 707 expect(manager.recentlyUsed, isEmpty); | |
| 708 } | |
| 709 | |
| 710 test_resultStored() { | 710 test_resultStored() { |
| 711 ResultDescriptor descriptor1 = new ResultDescriptor('result1', null); | 711 ResultDescriptor descriptor1 = new ResultDescriptor('result1', null); |
| 712 ResultDescriptor descriptor2 = new ResultDescriptor('result2', null); | 712 ResultDescriptor descriptor2 = new ResultDescriptor('result2', null); |
| 713 ResultDescriptor descriptor3 = new ResultDescriptor('result3', null); | 713 ResultDescriptor descriptor3 = new ResultDescriptor('result3', null); |
| 714 ResultDescriptor descriptor4 = new ResultDescriptor('result4', null); | 714 ResultDescriptor descriptor4 = new ResultDescriptor('result4', null); |
| 715 AnalysisTarget target = new TestSource(); | 715 AnalysisTarget target = new TestSource(); |
| 716 TargetedResult result1 = new TargetedResult(target, descriptor1); | 716 TargetedResult result1 = new TargetedResult(target, descriptor1); |
| 717 TargetedResult result2 = new TargetedResult(target, descriptor2); | 717 TargetedResult result2 = new TargetedResult(target, descriptor2); |
| 718 TargetedResult result3 = new TargetedResult(target, descriptor3); | 718 TargetedResult result3 = new TargetedResult(target, descriptor3); |
| 719 TargetedResult result4 = new TargetedResult(target, descriptor4); | 719 TargetedResult result4 = new TargetedResult(target, descriptor4); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 732 // store result4 | 732 // store result4 |
| 733 { | 733 { |
| 734 List<TargetedResult> resultsToFlush = manager.resultStored(result4, null); | 734 List<TargetedResult> resultsToFlush = manager.resultStored(result4, null); |
| 735 expect(resultsToFlush, [result1]); | 735 expect(resultsToFlush, [result1]); |
| 736 expect(manager.currentSize, 3); | 736 expect(manager.currentSize, 3); |
| 737 expect(manager.recentlyUsed, orderedEquals([result3, result2, result4])); | 737 expect(manager.recentlyUsed, orderedEquals([result3, result2, result4])); |
| 738 expect(manager.resultSizeMap, {result3: 1, result2: 1, result4: 1}); | 738 expect(manager.resultSizeMap, {result3: 1, result2: 1, result4: 1}); |
| 739 } | 739 } |
| 740 } | 740 } |
| 741 | 741 |
| 742 test_resultStored_unlimitedCachingPolicy() { | 742 test_resultStored_negativeMaxSize() { |
| 743 manager = new CacheFlushManager(new SimpleResultCachingPolicy(-1, -1), | 743 manager = new CacheFlushManager(new SimpleResultCachingPolicy(-1, -1), |
| 744 (AnalysisTarget target) => false); | 744 (AnalysisTarget target) => false); |
| 745 ResultDescriptor descriptor1 = new ResultDescriptor('result1', null); | 745 ResultDescriptor descriptor1 = new ResultDescriptor('result1', null); |
| 746 ResultDescriptor descriptor2 = new ResultDescriptor('result2', null); | 746 ResultDescriptor descriptor2 = new ResultDescriptor('result2', null); |
| 747 AnalysisTarget target = new TestSource(); | 747 AnalysisTarget target = new TestSource(); |
| 748 TargetedResult result1 = new TargetedResult(target, descriptor1); | 748 TargetedResult result1 = new TargetedResult(target, descriptor1); |
| 749 TargetedResult result2 = new TargetedResult(target, descriptor2); | 749 TargetedResult result2 = new TargetedResult(target, descriptor2); |
| 750 manager.resultStored(result1, null); | 750 manager.resultStored(result1, null); |
| 751 manager.resultStored(result2, null); | 751 manager.resultStored(result2, null); |
| 752 expect(manager.currentSize, 0); | 752 expect(manager.currentSize, 0); |
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 895 | 895 |
| 896 class _InternalAnalysisContextMock extends TypedMock | 896 class _InternalAnalysisContextMock extends TypedMock |
| 897 implements InternalAnalysisContext { | 897 implements InternalAnalysisContext { |
| 898 noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation); | 898 noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation); |
| 899 } | 899 } |
| 900 | 900 |
| 901 class _TestAnalysisTarget implements AnalysisTarget { | 901 class _TestAnalysisTarget implements AnalysisTarget { |
| 902 @override | 902 @override |
| 903 Source get source => null; | 903 Source get source => null; |
| 904 } | 904 } |
| OLD | NEW |