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

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

Issue 1053673008: Initial re-write of analysis context for the new task model (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 8 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
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;
« pkg/analyzer/lib/src/generated/engine.dart ('K') | « pkg/analyzer/test/src/task/dart_test.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698