| Index: pkg/analyzer/test/src/context/cache_test.dart
|
| diff --git a/pkg/analyzer/test/src/context/cache_test.dart b/pkg/analyzer/test/src/context/cache_test.dart
|
| index 2a3952aa69c91bf3275727ce6d466a95e37489be..c6d9254a8d21b6f35e5a3d795463b0cd15b3b651 100644
|
| --- a/pkg/analyzer/test/src/context/cache_test.dart
|
| +++ b/pkg/analyzer/test/src/context/cache_test.dart
|
| @@ -237,6 +237,27 @@ class AnalysisCacheTest extends AbstractCacheTest {
|
|
|
| @reflectiveTest
|
| class CacheEntryTest extends AbstractCacheTest {
|
| + test_dispose() {
|
| + ResultDescriptor descriptor1 = new ResultDescriptor('result1', -1);
|
| + ResultDescriptor descriptor2 = new ResultDescriptor('result2', -2);
|
| + AnalysisTarget target1 = new TestSource('1.dart');
|
| + AnalysisTarget target2 = new TestSource('2.dart');
|
| + TargetedResult result1 = new TargetedResult(target1, descriptor1);
|
| + TargetedResult result2 = new TargetedResult(target2, descriptor2);
|
| + CacheEntry entry1 = new CacheEntry(target1);
|
| + CacheEntry entry2 = new CacheEntry(target2);
|
| + cache.put(entry1);
|
| + cache.put(entry2);
|
| + entry1.setValue(descriptor1, 1, TargetedResult.EMPTY_LIST);
|
| + entry2.setValue(descriptor2, 2, <TargetedResult>[result1]);
|
| + // target2 is listed as dependent in target1
|
| + expect(
|
| + entry1.getResultData(descriptor1).dependentResults, contains(result2));
|
| + // dispose entry2, result2 is removed from result1
|
| + entry2.dispose();
|
| + expect(entry1.getResultData(descriptor1).dependentResults, isEmpty);
|
| + }
|
| +
|
| test_explicitlyAdded() {
|
| AnalysisTarget target = new TestSource();
|
| CacheEntry entry = new CacheEntry(target);
|
| @@ -983,6 +1004,37 @@ class UniversalCachePartitionTest extends CachePartitionTest {
|
| return new UniversalCachePartition(null);
|
| }
|
|
|
| + test_dispose() {
|
| + InternalAnalysisContext context = new _InternalAnalysisContextMock();
|
| + CachePartition partition1 = new UniversalCachePartition(context);
|
| + CachePartition partition2 = new UniversalCachePartition(context);
|
| + AnalysisCache cache = new AnalysisCache([partition1, partition2]);
|
| + when(context.analysisCache).thenReturn(cache);
|
| + // configure
|
| + // prepare entries
|
| + ResultDescriptor descriptor1 = new ResultDescriptor('result1', -1);
|
| + ResultDescriptor descriptor2 = new ResultDescriptor('result2', -2);
|
| + AnalysisTarget target1 = new TestSource('1.dart');
|
| + AnalysisTarget target2 = new TestSource('2.dart');
|
| + TargetedResult result1 = new TargetedResult(target1, descriptor1);
|
| + TargetedResult result2 = new TargetedResult(target2, descriptor2);
|
| + CacheEntry entry1 = new CacheEntry(target1);
|
| + CacheEntry entry2 = new CacheEntry(target2);
|
| + partition1.put(entry1);
|
| + partition2.put(entry2);
|
| + entry1.setValue(descriptor1, 1, TargetedResult.EMPTY_LIST);
|
| + entry2.setValue(descriptor2, 2, <TargetedResult>[result1]);
|
| + // target2 is listed as dependent in target1
|
| + expect(
|
| + entry1.getResultData(descriptor1).dependentResults, contains(result2));
|
| + // dispose
|
| + partition2.dispose();
|
| + expect(partition1.get(target1), same(entry1));
|
| + expect(partition2.get(target2), isNull);
|
| + // result2 is removed from result1
|
| + expect(entry1.getResultData(descriptor1).dependentResults, isEmpty);
|
| + }
|
| +
|
| void test_contains() {
|
| UniversalCachePartition partition = new UniversalCachePartition(null);
|
| TestSource source = new TestSource();
|
|
|