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

Unified Diff: pkg/analyzer/test/src/task/dart_work_manager_test.dart

Issue 1160873004: Only units with 'part of' and no other directives are parts. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: pkg/analyzer/test/src/task/dart_work_manager_test.dart
diff --git a/pkg/analyzer/test/src/task/dart_work_manager_test.dart b/pkg/analyzer/test/src/task/dart_work_manager_test.dart
index eba0dbd1243c2301e17305264c69a6be1aab4fc4..433ffe9be15f1d0e0d10590417bfe746219047bb 100644
--- a/pkg/analyzer/test/src/task/dart_work_manager_test.dart
+++ b/pkg/analyzer/test/src/task/dart_work_manager_test.dart
@@ -145,6 +145,8 @@ class DartWorkManagerTest {
manager.partLibrariesMap[part3] = [library1];
manager.libraryPartsMap[library1] = [part1, part3];
manager.libraryPartsMap[library2] = [part1, part2];
+ _getOrCreateEntry(part1).setValue(CONTAINING_LIBRARIES, [], []);
+ expect(cache.getState(part1, CONTAINING_LIBRARIES), CacheState.VALID);
// change library1
manager.applyChange([], [library1], []);
expect(manager.partLibrariesMap[part1], unorderedEquals([library2]));
@@ -152,6 +154,7 @@ class DartWorkManagerTest {
expect(manager.partLibrariesMap[part3], unorderedEquals([]));
expect(manager.libraryPartsMap[library1], isNull);
expect(manager.libraryPartsMap[library2], [part1, part2]);
+ expect(cache.getState(part1, CONTAINING_LIBRARIES), CacheState.INVALID);
}
void test_applyChange_updatePartsLibraries_changePart() {
@@ -165,12 +168,24 @@ class DartWorkManagerTest {
manager.partLibrariesMap[part3] = [library1];
manager.libraryPartsMap[library1] = [part1, part3];
manager.libraryPartsMap[library2] = [part1, part2];
+ _getOrCreateEntry(part1).setValue(CONTAINING_LIBRARIES, [], []);
+ expect(cache.getState(part1, CONTAINING_LIBRARIES), CacheState.VALID);
// change part1
manager.applyChange([], [part1], []);
expect(manager.partLibrariesMap[part2], unorderedEquals([library2]));
expect(manager.partLibrariesMap[part3], unorderedEquals([library1]));
expect(manager.libraryPartsMap[library1], [part1, part3]);
expect(manager.libraryPartsMap[library2], [part1, part2]);
+ expect(cache.getState(part1, CONTAINING_LIBRARIES), CacheState.INVALID);
+ }
+
+ CacheEntry _getOrCreateEntry(Source source) {
+ CacheEntry entry = cache.get(source);
+ if (entry == null) {
+ entry = new CacheEntry(source);
+ cache.put(entry);
+ }
+ return entry;
}
void test_applyChange_updatePartsLibraries_removeLibrary() {
@@ -445,44 +460,14 @@ class DartWorkManagerTest {
expect(notice.lineInfo, lineInfo);
}
- void test_resultsComputed_includedParts_turnLibraryIntoPart() {
- when(context.shouldErrorsBeAnalyzed(anyObject, null)).thenReturn(true);
- Source library = new TestSource('library.dart');
- Source part = new TestSource('part.dart');
- // library "library" (real)
- manager.resultsComputed(library, {SOURCE_KIND: SourceKind.LIBRARY});
- CacheEntry libraryEntry = new CacheEntry(library);
- cache.put(libraryEntry);
- libraryEntry.setValue(SOURCE_KIND, SourceKind.LIBRARY, []);
- // library "part" (speculative)
- manager.resultsComputed(part, {SOURCE_KIND: SourceKind.LIBRARY});
- CacheEntry partEntry = new CacheEntry(part);
- cache.put(partEntry);
- partEntry.setValue(SOURCE_KIND, SourceKind.LIBRARY, []);
- // unit "part in part" (speculative)
- AnalysisTarget partInPartTarget = new LibrarySpecificUnit(part, part);
- CacheEntry partInPartEntry = new CacheEntry(partInPartTarget);
- cache.put(partInPartEntry);
- // so far we consider "part" a library
- expect(manager.librarySourceQueue, contains(part));
- expect(partEntry.getValue(SOURCE_KIND), SourceKind.LIBRARY);
- expect(cache.get(partInPartTarget), isNotNull);
- // "part" is used as a part in "library"
- manager.resultsComputed(library, {INCLUDED_PARTS: [part]});
- expect(manager.partLibrariesMap[part], [library]);
- expect(manager.libraryPartsMap[library], [part]);
- // now we know that "part" is not a library
- expect(manager.librarySourceQueue, isNot(contains(part)));
- expect(partEntry.getValue(SOURCE_KIND), SourceKind.PART);
- expect(cache.get(partInPartTarget), isNull);
- }
-
void test_resultsComputed_includedParts_updatePartLibraries() {
Source part1 = new TestSource('part1.dart');
Source part2 = new TestSource('part2.dart');
Source part3 = new TestSource('part3.dart');
Source library1 = new TestSource('library1.dart');
Source library2 = new TestSource('library2.dart');
+ _getOrCreateEntry(part1).setValue(CONTAINING_LIBRARIES, [], []);
+ expect(cache.getState(part1, CONTAINING_LIBRARIES), CacheState.VALID);
// library1 parts
manager.resultsComputed(library1, {INCLUDED_PARTS: [part1, part2]});
expect(manager.partLibrariesMap[part1], [library1]);
@@ -497,6 +482,8 @@ class DartWorkManagerTest {
expect(manager.partLibrariesMap[part3], [library2]);
expect(manager.libraryPartsMap[library1], [part1, part2]);
expect(manager.libraryPartsMap[library2], [part2, part3]);
+ // part1 CONTAINING_LIBRARIES
+ expect(cache.getState(part1, CONTAINING_LIBRARIES), CacheState.INVALID);
}
void test_resultsComputed_noSourceKind() {
« pkg/analyzer/lib/src/task/dart_work_manager.dart ('K') | « pkg/analyzer/test/src/task/dart_test.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698