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

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

Issue 1806563003: AnalysisDriver.createWorkOrderForResult() should check AnalysisContext.aboutToComputeResult() first. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 9 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
« no previous file with comments | « pkg/analyzer/lib/src/task/driver.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analyzer/test/src/task/driver_test.dart
diff --git a/pkg/analyzer/test/src/task/driver_test.dart b/pkg/analyzer/test/src/task/driver_test.dart
index 221636a2c5e41c8e19b01313ffecc22544bb2c1b..bd216758d77d7166b04ead01ea852ce1feb594e7 100644
--- a/pkg/analyzer/test/src/task/driver_test.dart
+++ b/pkg/analyzer/test/src/task/driver_test.dart
@@ -124,6 +124,32 @@ class AnalysisDriverTest extends AbstractDriverTest {
expect(analysisDriver.createNextWorkOrder(), isNull);
}
+ test_createWorkOrderForResult_aboutToComputeResult() {
+ AnalysisTarget target = new TestSource();
+ ResultDescriptor result = new ResultDescriptor('result', null);
+ TaskDescriptor descriptor = new TaskDescriptor(
+ 'task',
+ (context, target) => new TestAnalysisTask(context, target),
+ (target) => {},
+ [result]);
+ taskManager.addTaskDescriptor(descriptor);
+ context.getCacheEntry(target).setState(result, CacheState.INVALID);
+ // has result
+ {
+ when(context.aboutToComputeResult(anyObject, result)).thenReturn(true);
+ WorkOrder workOrder =
+ analysisDriver.createWorkOrderForResult(target, result);
+ expect(workOrder, isNull);
+ }
+ // no result
+ {
+ when(context.aboutToComputeResult(anyObject, result)).thenReturn(false);
+ WorkOrder workOrder =
+ analysisDriver.createWorkOrderForResult(target, result);
+ expect(workOrder, isNotNull);
+ }
+ }
+
test_createWorkOrderForResult_error() {
AnalysisTarget target = new TestSource();
ResultDescriptor result = new ResultDescriptor('result', null);
@@ -649,20 +675,7 @@ class WorkItemTest extends AbstractDriverTest {
expect(item.target, target);
}
- test_gatherInputs_complete() {
- AnalysisTarget target = new TestSource();
- TaskDescriptor descriptor = new TaskDescriptor(
- 'task',
- (context, target) => new TestAnalysisTask(context, target),
- (target) => {},
- [new ResultDescriptor('output', null)]);
- WorkItem item = new WorkItem(context, target, descriptor, null, 0, null);
- WorkItem result = item.gatherInputs(taskManager, []);
- expect(result, isNull);
- expect(item.exception, isNull);
- }
-
- test_gatherInputs_incomplete() {
+ test_gatherInputs_aboutToComputeResult_hasResult() {
AnalysisTarget target = new TestSource();
ResultDescriptor resultA = new ResultDescriptor('resultA', null);
ResultDescriptor resultB = new ResultDescriptor('resultB', null);
@@ -680,27 +693,15 @@ class WorkItemTest extends AbstractDriverTest {
[resultB]);
taskManager.addTaskDescriptor(task1);
taskManager.addTaskDescriptor(task2);
+ // configure mocks
+ when(context.aboutToComputeResult(anyObject, resultA)).thenReturn(true);
// gather inputs
WorkItem item = new WorkItem(context, target, task2, null, 0, null);
WorkItem inputItem = item.gatherInputs(taskManager, []);
- expect(inputItem, isNotNull);
- }
-
- test_gatherInputs_invalid() {
- AnalysisTarget target = new TestSource();
- ResultDescriptor inputResult = new ResultDescriptor('input', null);
- TaskDescriptor descriptor = new TaskDescriptor(
- 'task',
- (context, target) => new TestAnalysisTask(context, target),
- (target) => {'one': inputResult.of(target)},
- [new ResultDescriptor('output', null)]);
- WorkItem item = new WorkItem(context, target, descriptor, null, 0, null);
- WorkItem result = item.gatherInputs(taskManager, []);
- expect(result, isNull);
- expect(item.exception, isNotNull);
+ expect(inputItem, isNull);
}
- test_gatherInputs_aboutToComputeResult_hasResult() {
+ test_gatherInputs_aboutToComputeResult_noResult() {
AnalysisTarget target = new TestSource();
ResultDescriptor resultA = new ResultDescriptor('resultA', null);
ResultDescriptor resultB = new ResultDescriptor('resultB', null);
@@ -718,15 +719,31 @@ class WorkItemTest extends AbstractDriverTest {
[resultB]);
taskManager.addTaskDescriptor(task1);
taskManager.addTaskDescriptor(task2);
+ // configure ResultProvider
// configure mocks
- when(context.aboutToComputeResult(anyObject, resultA)).thenReturn(true);
+ when(context.aboutToComputeResult(anyObject, resultA)).thenReturn(false);
// gather inputs
WorkItem item = new WorkItem(context, target, task2, null, 0, null);
WorkItem inputItem = item.gatherInputs(taskManager, []);
- expect(inputItem, isNull);
+ expect(inputItem, isNotNull);
+ expect(inputItem.target, target);
+ expect(inputItem.descriptor, task1);
}
- test_gatherInputs_aboutToComputeResult_noResult() {
+ test_gatherInputs_complete() {
+ AnalysisTarget target = new TestSource();
+ TaskDescriptor descriptor = new TaskDescriptor(
+ 'task',
+ (context, target) => new TestAnalysisTask(context, target),
+ (target) => {},
+ [new ResultDescriptor('output', null)]);
+ WorkItem item = new WorkItem(context, target, descriptor, null, 0, null);
+ WorkItem result = item.gatherInputs(taskManager, []);
+ expect(result, isNull);
+ expect(item.exception, isNull);
+ }
+
+ test_gatherInputs_incomplete() {
AnalysisTarget target = new TestSource();
ResultDescriptor resultA = new ResultDescriptor('resultA', null);
ResultDescriptor resultB = new ResultDescriptor('resultB', null);
@@ -744,15 +761,24 @@ class WorkItemTest extends AbstractDriverTest {
[resultB]);
taskManager.addTaskDescriptor(task1);
taskManager.addTaskDescriptor(task2);
- // configure ResultProvider
- // configure mocks
- when(context.aboutToComputeResult(anyObject, resultA)).thenReturn(false);
// gather inputs
WorkItem item = new WorkItem(context, target, task2, null, 0, null);
WorkItem inputItem = item.gatherInputs(taskManager, []);
expect(inputItem, isNotNull);
- expect(inputItem.target, target);
- expect(inputItem.descriptor, task1);
+ }
+
+ test_gatherInputs_invalid() {
+ AnalysisTarget target = new TestSource();
+ ResultDescriptor inputResult = new ResultDescriptor('input', null);
+ TaskDescriptor descriptor = new TaskDescriptor(
+ 'task',
+ (context, target) => new TestAnalysisTask(context, target),
+ (target) => {'one': inputResult.of(target)},
+ [new ResultDescriptor('output', null)]);
+ WorkItem item = new WorkItem(context, target, descriptor, null, 0, null);
+ WorkItem result = item.gatherInputs(taskManager, []);
+ expect(result, isNull);
+ expect(item.exception, isNotNull);
}
}
« no previous file with comments | « pkg/analyzer/lib/src/task/driver.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698