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

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

Issue 990773002: Test for computing task inputs before performing task itself. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 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 | « no previous file | pkg/analyzer/test/src/task/test_support.dart » ('j') | 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 636c0776f97a4c3d452ecbd11452afc2decd7db5..9210299633818a78efa3b865e33b58e562b3dca7 100644
--- a/pkg/analyzer/test/src/task/driver_test.dart
+++ b/pkg/analyzer/test/src/task/driver_test.dart
@@ -19,6 +19,7 @@ import 'package:analyzer/src/generated/java_engine.dart';
import 'package:analyzer/src/generated/resolver.dart';
import 'package:analyzer/src/generated/source.dart';
import 'package:analyzer/src/task/driver.dart';
+import 'package:analyzer/src/task/inputs.dart';
import 'package:analyzer/src/task/manager.dart';
import 'package:analyzer/task/model.dart';
import 'package:unittest/unittest.dart';
@@ -223,6 +224,44 @@ class AnalysisDriverTest extends EngineTestCase {
expect(driver.performAnalysisTask(), false);
}
+ test_performAnalysisTask_inputsFirst() {
+ 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 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);
+ 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);
+ }
+
test_performWorkItem_exceptionInTask() {
AnalysisTarget target = new TestSource();
ResultDescriptor result = new ResultDescriptor('result', null);
@@ -437,8 +476,12 @@ class WorkOrderTest extends EngineTestCase {
'task', null, (_) => {}, [new ResultDescriptor('result', null)]);
WorkItem workItem = new WorkItem(null, null, descriptor);
WorkOrder order = new WorkOrder(manager, workItem);
- expect(order.moveNext(), true);
+ // "item" has no child items
+ expect(order.moveNext(), isTrue);
expect(order.current, workItem);
+ // done
+ expect(order.moveNext(), isFalse);
+ expect(order.current, isNull);
}
}
« no previous file with comments | « no previous file | pkg/analyzer/test/src/task/test_support.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698