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 b11c55f3734c56e866a7a4ee5b0a24c8b6b8c53c..8497f2cf2420378d9e5b145e3b7a2d639ac9bfce 100644 |
--- a/pkg/analyzer/test/src/task/dart_work_manager_test.dart |
+++ b/pkg/analyzer/test/src/task/dart_work_manager_test.dart |
@@ -190,6 +190,40 @@ class DartWorkManagerTest { |
expect(request, isNull); |
} |
+ void test_getNextResult_hasPriority_firstIsError() { |
+ manager.addPriorityResult(source1, SOURCE_KIND); |
+ manager.addPriorityResult(source2, SOURCE_KIND); |
+ expect(manager.priorityResultQueue, unorderedEquals([ |
+ new TargetedResult(source1, SOURCE_KIND), |
+ new TargetedResult(source2, SOURCE_KIND) |
+ ])); |
+ // configure state and get next result |
+ entry1.setErrorState(caughtException, [SOURCE_KIND]); |
+ TargetedResult request = manager.getNextResult(); |
+ expect(request.target, source2); |
+ expect(request.result, SOURCE_KIND); |
+ // source1 is out, source2 is waiting |
+ expect(manager.priorityResultQueue, |
+ unorderedEquals([new TargetedResult(source2, SOURCE_KIND)])); |
+ } |
+ |
+ void test_getNextResult_hasPriority_firstIsValid() { |
+ manager.addPriorityResult(source1, SOURCE_KIND); |
+ manager.addPriorityResult(source2, SOURCE_KIND); |
+ expect(manager.priorityResultQueue, unorderedEquals([ |
+ new TargetedResult(source1, SOURCE_KIND), |
+ new TargetedResult(source2, SOURCE_KIND) |
+ ])); |
+ // configure state and get next result |
+ entry1.setValue(SOURCE_KIND, SourceKind.LIBRARY, []); |
+ TargetedResult request = manager.getNextResult(); |
+ expect(request.target, source2); |
+ expect(request.result, SOURCE_KIND); |
+ // source1 is out, source2 is waiting |
+ expect(manager.priorityResultQueue, |
+ unorderedEquals([new TargetedResult(source2, SOURCE_KIND)])); |
+ } |
+ |
void test_getNextResult_hasUnknown_firstIsError() { |
entry1.setErrorState(caughtException, [SOURCE_KIND]); |
manager.unknownSourceQueue.addAll([source1, source2]); |