Chromium Code Reviews| Index: pkg/analyzer/test/src/context/context_test.dart |
| diff --git a/pkg/analyzer/test/src/context/context_test.dart b/pkg/analyzer/test/src/context/context_test.dart |
| index ab4df6447dd1f1552de56db080282e648c1f8fca..a4980305c99c871c1c0a33de38805b96e4c90159 100644 |
| --- a/pkg/analyzer/test/src/context/context_test.dart |
| +++ b/pkg/analyzer/test/src/context/context_test.dart |
| @@ -1772,14 +1772,14 @@ void g() { f(null); }'''); |
| TestSource source = _addSourceWithException2("/test.dart", "library test;"); |
| source.generateExceptionOnRead = false; |
| _analyzeAll_assertFinished(); |
| - expect(source.readCount, 1); |
| + expect(source.readCount, 2); |
|
Brian Wilkerson
2015/09/23 13:53:38
I don't understand why this change would cause the
scheglov
2015/09/23 15:11:27
The scenario is following.
1. We add test.dart as
|
| _changeSource(source, ""); |
| source.generateExceptionOnRead = true; |
| _analyzeAll_assertFinished(); |
| if (AnalysisEngine.instance.limitInvalidationInTaskModel) { |
| - expect(source.readCount, 5); |
| + expect(source.readCount, 7); |
| } else { |
| - expect(source.readCount, 3); |
| + expect(source.readCount, 5); |
| } |
| } |
| @@ -1869,6 +1869,15 @@ void g() { f(null); }'''); |
| ["dart.core", "dart.async", "dart.math", "libA", "libB"]); |
| } |
| + void test_resolveCompilationUnit_library() { |
| + Source source = addSource("/lib.dart", "library lib;"); |
| + LibraryElement library = context.computeLibraryElement(source); |
| + CompilationUnit compilationUnit = |
| + context.resolveCompilationUnit(source, library); |
| + expect(compilationUnit, isNotNull); |
| + expect(compilationUnit.element, isNotNull); |
| + } |
| + |
| // void test_resolveCompilationUnit_sourceChangeDuringResolution() { |
| // _context = new _AnalysisContext_sourceChangeDuringResolution(); |
| // AnalysisContextFactory.initContextWithCore(_context); |
| @@ -1880,15 +1889,6 @@ void g() { f(null); }'''); |
| // expect(_context.getLineInfo(source), isNotNull); |
| // } |
| - void test_resolveCompilationUnit_library() { |
| - Source source = addSource("/lib.dart", "library lib;"); |
| - LibraryElement library = context.computeLibraryElement(source); |
| - CompilationUnit compilationUnit = |
| - context.resolveCompilationUnit(source, library); |
| - expect(compilationUnit, isNotNull); |
| - expect(compilationUnit.element, isNotNull); |
| - } |
| - |
| void test_resolveCompilationUnit_source() { |
| Source source = addSource("/lib.dart", "library lib;"); |
| CompilationUnit compilationUnit = |
| @@ -2073,6 +2073,22 @@ int a = 0;'''); |
| expect(context.sourcesNeedingProcessing.contains(source), isFalse); |
| } |
| + void test_validateCacheConsistency_deletedSource() { |
| + MemoryResourceProvider resourceProvider = new MemoryResourceProvider(); |
| + var fileA = resourceProvider.newFile('/a.dart', ""); |
| + var fileB = resourceProvider.newFile('/b.dart', "import 'a.dart';"); |
| + Source sourceA = fileA.createSource(); |
| + Source sourceB = fileB.createSource(); |
| + context.applyChanges( |
| + new ChangeSet()..addedSource(sourceA)..addedSource(sourceB)); |
| + // analyze everything |
| + _analyzeAll_assertFinished(); |
| + // delete a.dart |
| + resourceProvider.deleteFile('/a.dart'); |
| + // analysis should eventually stop |
| + _analyzeAll_assertFinished(); |
| + } |
| + |
| void xtest_performAnalysisTask_stress() { |
| int maxCacheSize = 4; |
| AnalysisOptionsImpl options = |
| @@ -2123,7 +2139,10 @@ int a = 0;'''); |
| for (int i = 0; i < maxIterations; i++) { |
| List<ChangeNotice> notice = context.performAnalysisTask().changeNotices; |
| if (notice == null) { |
| - return; |
| + bool inconsistent = context.validateCacheConsistency(); |
| + if (!inconsistent) { |
| + return; |
| + } |
| } |
| } |
| fail("performAnalysisTask failed to terminate after analyzing all sources"); |