| 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 093a91f674c6c27c77700b233de8a2e9b46d4401..598c4ad8bdcbb78f7abbe213a7edeff5eef79512 100644
|
| --- a/pkg/analyzer/test/src/task/driver_test.dart
|
| +++ b/pkg/analyzer/test/src/task/driver_test.dart
|
| @@ -223,44 +223,36 @@ class AnalysisDriverTest extends EngineTestCase {
|
| expect(driver.performAnalysisTask(), false);
|
| }
|
|
|
| - test_performAnalysisTask_inputsFirst() {
|
| + test_performAnalysisTask_infiniteLoop() {
|
| AnalysisTarget target = new TestSource();
|
| ResultDescriptor resultA = new ResultDescriptor('resultA', -1);
|
| ResultDescriptor resultB = new ResultDescriptor('resultB', -2);
|
| // configure tasks
|
| TestAnalysisTask task1;
|
| TestAnalysisTask task2;
|
| - TaskDescriptor descriptor1 = new TaskDescriptor(
|
| - 'task1', (context, target) => task1, (target) => {}, [resultA]);
|
| + TaskDescriptor descriptor1 = new TaskDescriptor('task1',
|
| + (context, target) => task1, (target) => {
|
| + 'inputB': new SimpleTaskInput<int>(target, resultB)
|
| + }, [resultA]);
|
| TaskDescriptor descriptor2 = new TaskDescriptor('task2',
|
| (context, target) => task2, (target) => {
|
| 'inputA': new SimpleTaskInput<int>(target, resultA)
|
| }, [resultB]);
|
| - task1 = new TestAnalysisTask(context, target,
|
| - descriptor: descriptor1, results: [resultA], value: 10);
|
| - task2 = new TestAnalysisTask(context, target,
|
| - descriptor: descriptor2, value: 20);
|
| + task1 = new TestAnalysisTask(context, target, descriptor: descriptor1);
|
| + task2 = new TestAnalysisTask(context, target, descriptor: descriptor2);
|
| manager.addTaskDescriptor(descriptor1);
|
| manager.addTaskDescriptor(descriptor2);
|
| context.explicitTargets.add(target);
|
| manager.addGeneralResult(resultB);
|
| // prepare work order
|
| expect(driver.performAnalysisTask(), true);
|
| - expect(context.getCacheEntry(target).getValue(resultA), -1);
|
| - expect(context.getCacheEntry(target).getValue(resultB), -2);
|
| - // compute resultA
|
| - expect(driver.performAnalysisTask(), true);
|
| - expect(context.getCacheEntry(target).getValue(resultA), 10);
|
| - expect(context.getCacheEntry(target).getValue(resultB), -2);
|
| - // compute resultB
|
| expect(driver.performAnalysisTask(), true);
|
| - expect(context.getCacheEntry(target).getValue(resultA), 10);
|
| - expect(context.getCacheEntry(target).getValue(resultB), 20);
|
| - // done
|
| - expect(driver.performAnalysisTask(), false);
|
| + CaughtException exception = context.getCacheEntry(target).exception;
|
| + expect(exception, isNotNull);
|
| + expect(exception.exception, new isInstanceOf<InfiniteTaskLoopException>());
|
| }
|
|
|
| - test_performAnalysisTask_infiniteLoop() {
|
| + test_performAnalysisTask_inputsFirst() {
|
| AnalysisTarget target = new TestSource();
|
| ResultDescriptor resultA = new ResultDescriptor('resultA', -1);
|
| ResultDescriptor resultB = new ResultDescriptor('resultB', -2);
|
| @@ -268,25 +260,33 @@ class AnalysisDriverTest extends EngineTestCase {
|
| TestAnalysisTask task1;
|
| TestAnalysisTask task2;
|
| TaskDescriptor descriptor1 = new TaskDescriptor(
|
| - 'task1', (context, target) => task1, (target) => {
|
| - 'inputB': new SimpleTaskInput<int>(target, resultB)
|
| - }, [resultA]);
|
| + 'task1', (context, target) => task1, (target) => {}, [resultA]);
|
| TaskDescriptor descriptor2 = new TaskDescriptor('task2',
|
| (context, target) => task2, (target) => {
|
| 'inputA': new SimpleTaskInput<int>(target, resultA)
|
| }, [resultB]);
|
| - task1 = new TestAnalysisTask(context, target, descriptor: descriptor1);
|
| - task2 = new TestAnalysisTask(context, target, descriptor: descriptor2);
|
| + task1 = new TestAnalysisTask(context, target,
|
| + descriptor: descriptor1, results: [resultA], value: 10);
|
| + task2 = new TestAnalysisTask(context, target,
|
| + descriptor: descriptor2, value: 20);
|
| manager.addTaskDescriptor(descriptor1);
|
| manager.addTaskDescriptor(descriptor2);
|
| context.explicitTargets.add(target);
|
| manager.addGeneralResult(resultB);
|
| // prepare work order
|
| expect(driver.performAnalysisTask(), true);
|
| + expect(context.getCacheEntry(target).getValue(resultA), -1);
|
| + expect(context.getCacheEntry(target).getValue(resultB), -2);
|
| + // compute resultA
|
| expect(driver.performAnalysisTask(), true);
|
| - CaughtException exception = context.getCacheEntry(target).exception;
|
| - expect(exception, isNotNull);
|
| - expect(exception.exception, new isInstanceOf<InfiniteTaskLoopException>());
|
| + expect(context.getCacheEntry(target).getValue(resultA), 10);
|
| + expect(context.getCacheEntry(target).getValue(resultB), -2);
|
| + // compute resultB
|
| + expect(driver.performAnalysisTask(), true);
|
| + expect(context.getCacheEntry(target).getValue(resultA), 10);
|
| + expect(context.getCacheEntry(target).getValue(resultB), 20);
|
| + // done
|
| + expect(driver.performAnalysisTask(), false);
|
| }
|
|
|
| test_performWorkItem_exceptionInTask() {
|
| @@ -509,7 +509,7 @@ class WorkOrderTest extends EngineTestCase {
|
| }
|
| }
|
|
|
| -class _TestContext implements ExtendedAnalysisContext {
|
| +class _TestContext implements InternalAnalysisContext {
|
| InternalAnalysisContext baseContext =
|
| AnalysisContextFactory.contextWithCore();
|
|
|
| @@ -560,6 +560,10 @@ class _TestContext implements ExtendedAnalysisContext {
|
| baseContext.launchableServerLibrarySources;
|
|
|
| @override
|
| + LibraryResolverFactory get libraryResolverFactory =>
|
| + baseContext.libraryResolverFactory;
|
| +
|
| + @override
|
| List<Source> get librarySources => baseContext.librarySources;
|
|
|
| @override
|
| @@ -574,10 +578,6 @@ class _TestContext implements ExtendedAnalysisContext {
|
| baseContext.refactoringUnsafeSources;
|
|
|
| @override
|
| - LibraryResolverFactory get libraryResolverFactory =>
|
| - baseContext.libraryResolverFactory;
|
| -
|
| - @override
|
| ResolverVisitorFactory get resolverVisitorFactory =>
|
| baseContext.resolverVisitorFactory;
|
|
|
|
|