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

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

Issue 1539093002: ResultProvider - an alternative source of analysis results. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years 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/driver_test.dart
diff --git a/pkg/analyzer/test/src/task/driver_test.dart b/pkg/analyzer/test/src/task/driver_test.dart
index b0f8181111f3d1aa5cb77f9ae0e378692c1a5b64..4dccb63c9f05f90434883390be150005cb4c5f62 100644
--- a/pkg/analyzer/test/src/task/driver_test.dart
+++ b/pkg/analyzer/test/src/task/driver_test.dart
@@ -344,7 +344,8 @@ class AnalysisDriverTest extends AbstractDriverTest {
'task', (context, target) => task, (target) => {}, [result]);
task = new TestAnalysisTask(context, target,
descriptor: descriptor, value: 42);
- WorkItem item = new WorkItem(context, target, descriptor, null, 0, null);
+ WorkItem item =
+ new WorkItem(context, null, target, descriptor, null, 0, null);
bool streamNotified = false;
analysisDriver.onResultComputed(result).listen((event) {
@@ -368,7 +369,8 @@ class AnalysisDriverTest extends AbstractDriverTest {
'task', (context, target) => task, (target) => {}, [result]);
task = new TestAnalysisTask(context, target,
descriptor: descriptor, exception: exception);
- WorkItem item = new WorkItem(context, target, descriptor, null, 0, null);
+ WorkItem item =
+ new WorkItem(context, null, target, descriptor, null, 0, null);
analysisDriver.performWorkItem(item);
CacheEntry targetEntry = context.getCacheEntry(item.target);
@@ -383,7 +385,8 @@ class AnalysisDriverTest extends AbstractDriverTest {
TaskDescriptor descriptor = new TaskDescriptor(
'task', (context, target) => task, (target) => {}, [result]);
task = new TestAnalysisTask(context, target, descriptor: descriptor);
- WorkItem item = new WorkItem(context, target, descriptor, null, 0, null);
+ WorkItem item =
+ new WorkItem(context, null, target, descriptor, null, 0, null);
analysisDriver.performWorkItem(item);
CacheEntry targetEntry = context.getCacheEntry(item.target);
@@ -401,7 +404,8 @@ class AnalysisDriverTest extends AbstractDriverTest {
[result]);
CaughtException exception =
new CaughtException(new AnalysisException(), null);
- WorkItem item = new WorkItem(context, target, descriptor, null, 0, null);
+ WorkItem item =
+ new WorkItem(context, null, target, descriptor, null, 0, null);
item.exception = exception;
analysisDriver.performWorkItem(item);
@@ -418,7 +422,7 @@ class AnalysisDriverTest extends AbstractDriverTest {
(target) => {'one': inputResult.of(target)},
[new ResultDescriptor('output', null)]);
analysisDriver.currentWorkOrder = new WorkOrder(
- taskManager, new WorkItem(null, null, descriptor, null, 0, null));
+ taskManager, new WorkItem(null, null, null, descriptor, null, 0, null));
analysisDriver.reset();
expect(analysisDriver.currentWorkOrder, isNull);
@@ -616,7 +620,8 @@ class WorkItemTest extends AbstractDriverTest {
(context, target) => new TestAnalysisTask(context, target),
(target) => {},
[new ResultDescriptor('output', null)]);
- WorkItem item = new WorkItem(context, target, descriptor, null, 0, null);
+ WorkItem item =
+ new WorkItem(context, null, target, descriptor, null, 0, null);
AnalysisTask task = item.buildTask();
expect(task, isNotNull);
}
@@ -633,7 +638,8 @@ class WorkItemTest extends AbstractDriverTest {
new TestAnalysisTask(context, target, results: outputResults),
(target) => {'one': inputResult.of(target)},
outputResults);
- WorkItem item = new WorkItem(context, target, descriptor, null, 0, null);
+ WorkItem item =
+ new WorkItem(context, null, target, descriptor, null, 0, null);
expect(() => item.buildTask(), throwsStateError);
}
@@ -641,7 +647,8 @@ class WorkItemTest extends AbstractDriverTest {
AnalysisTarget target = new TestSource();
TaskDescriptor descriptor = new TaskDescriptor(
'task', null, (target) => {}, [new ResultDescriptor('result', null)]);
- WorkItem item = new WorkItem(context, target, descriptor, null, 0, null);
+ WorkItem item =
+ new WorkItem(context, null, target, descriptor, null, 0, null);
expect(item, isNotNull);
expect(item.context, context);
expect(item.descriptor, descriptor);
@@ -655,7 +662,8 @@ class WorkItemTest extends AbstractDriverTest {
(context, target) => new TestAnalysisTask(context, target),
(target) => {},
[new ResultDescriptor('output', null)]);
- WorkItem item = new WorkItem(context, target, descriptor, null, 0, null);
+ WorkItem item =
+ new WorkItem(context, null, target, descriptor, null, 0, null);
WorkItem result = item.gatherInputs(taskManager, []);
expect(result, isNull);
expect(item.exception, isNull);
@@ -680,7 +688,7 @@ class WorkItemTest extends AbstractDriverTest {
taskManager.addTaskDescriptor(task1);
taskManager.addTaskDescriptor(task2);
// gather inputs
- WorkItem item = new WorkItem(context, target, task2, null, 0, null);
+ WorkItem item = new WorkItem(context, null, target, task2, null, 0, null);
WorkItem inputItem = item.gatherInputs(taskManager, []);
expect(inputItem, isNotNull);
}
@@ -693,11 +701,72 @@ class WorkItemTest extends AbstractDriverTest {
(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 item =
+ new WorkItem(context, null, target, descriptor, null, 0, null);
WorkItem result = item.gatherInputs(taskManager, []);
expect(result, isNull);
expect(item.exception, isNotNull);
}
+
+ test_gatherInputs_useResultProvider_hasResult() {
+ AnalysisTarget target = new TestSource();
+ ResultDescriptor resultA = new ResultDescriptor('resultA', null);
+ ResultDescriptor resultB = new ResultDescriptor('resultB', null);
+ // prepare tasks
+ TaskDescriptor task1 = new TaskDescriptor(
+ 'task',
+ (context, target) =>
+ new TestAnalysisTask(context, target, results: [resultA]),
+ (target) => {},
+ [resultA]);
+ TaskDescriptor task2 = new TaskDescriptor(
+ 'task',
+ (context, target) => new TestAnalysisTask(context, target),
+ (target) => {'one': resultA.of(target)},
+ [resultB]);
+ taskManager.addTaskDescriptor(task1);
+ taskManager.addTaskDescriptor(task2);
+ // configure ResultProvider
+ ResultProvider resultProvider = new _ResultProviderMock();
+ when(resultProvider.provideResult(context, anyObject, resultA))
+ .thenReturn(true);
+ // gather inputs
+ WorkItem item =
+ new WorkItem(context, resultProvider, target, task2, null, 0, null);
+ WorkItem inputItem = item.gatherInputs(taskManager, []);
+ expect(inputItem, isNull);
+ }
+
+ test_gatherInputs_useResultProvider_noResult() {
+ AnalysisTarget target = new TestSource();
+ ResultDescriptor resultA = new ResultDescriptor('resultA', null);
+ ResultDescriptor resultB = new ResultDescriptor('resultB', null);
+ // prepare tasks
+ TaskDescriptor task1 = new TaskDescriptor(
+ 'task',
+ (context, target) =>
+ new TestAnalysisTask(context, target, results: [resultA]),
+ (target) => {},
+ [resultA]);
+ TaskDescriptor task2 = new TaskDescriptor(
+ 'task',
+ (context, target) => new TestAnalysisTask(context, target),
+ (target) => {'one': resultA.of(target)},
+ [resultB]);
+ taskManager.addTaskDescriptor(task1);
+ taskManager.addTaskDescriptor(task2);
+ // configure ResultProvider
+ ResultProvider resultProvider = new _ResultProviderMock();
+ when(resultProvider.provideResult(anyObject, anyObject, anyObject))
+ .thenReturn(false);
+ // gather inputs
+ WorkItem item =
+ new WorkItem(context, resultProvider, target, task2, null, 0, null);
+ WorkItem inputItem = item.gatherInputs(taskManager, []);
+ expect(inputItem, isNotNull);
+ expect(inputItem.target, target);
+ expect(inputItem.descriptor, task1);
+ }
}
@reflectiveTest
@@ -707,7 +776,7 @@ class WorkOrderTest extends EngineTestCase {
TaskDescriptor descriptor = new TaskDescriptor(
'task', null, (_) => {}, [new ResultDescriptor('result', null)]);
WorkOrder order = new WorkOrder(
- manager, new WorkItem(null, null, descriptor, null, 0, null));
+ manager, new WorkItem(null, null, null, descriptor, null, 0, null));
expect(order, isNotNull);
expect(order.currentItems, isNull);
expect(order.current, isNull);
@@ -717,7 +786,8 @@ class WorkOrderTest extends EngineTestCase {
TaskManager manager = new TaskManager();
TaskDescriptor descriptor = new TaskDescriptor(
'task', null, (_) => {}, [new ResultDescriptor('result', null)]);
- WorkItem workItem = new WorkItem(null, null, descriptor, null, 0, null);
+ WorkItem workItem =
+ new WorkItem(null, null, null, descriptor, null, 0, null);
WorkOrder order = new WorkOrder(manager, workItem);
// "item" has no child items
expect(order.moveNext(), isTrue);
@@ -757,6 +827,8 @@ class _InternalAnalysisContextMock extends TypedMock
}
}
+class _ResultProviderMock extends TypedMock implements ResultProvider {}
+
/**
* Concrete class for testing [CycleAwareDependencyWalker] behavior.
*/
« pkg/analyzer/lib/src/task/driver.dart ('K') | « 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