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

Side by Side Diff: pkg/analyzer/test/src/context/cache_test.dart

Issue 1151193002: Use UnlimitedCacheFlushManager for DEFAULT_CACHING_POLICY. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 7 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
« no previous file with comments | « pkg/analyzer/lib/src/context/cache.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 show 9 show
10 AnalysisContext, 10 AnalysisContext,
(...skipping 653 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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 }
OLDNEW
« no previous file with comments | « pkg/analyzer/lib/src/context/cache.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698