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

Side by Side Diff: pkg/analyzer/test/src/task/driver_test.dart

Issue 1132103002: Remove memento. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 7 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « pkg/analyzer/test/src/task/dart_test.dart ('k') | pkg/analyzer/test/src/task/model_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library test.src.task.driver_test; 5 library test.src.task.driver_test;
6 6
7 import 'package:analyzer/src/context/cache.dart'; 7 import 'package:analyzer/src/context/cache.dart';
8 import 'package:analyzer/src/context/context.dart'; 8 import 'package:analyzer/src/context/context.dart';
9 import 'package:analyzer/src/generated/engine.dart' 9 import 'package:analyzer/src/generated/engine.dart'
10 hide AnalysisContextImpl, AnalysisTask; 10 hide AnalysisContextImpl, AnalysisTask;
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 AnalysisTarget priorityTarget = new TestSource(); 57 AnalysisTarget priorityTarget = new TestSource();
58 AnalysisTarget normalTarget = new TestSource(); 58 AnalysisTarget normalTarget = new TestSource();
59 ResultDescriptor result = new ResultDescriptor('result', null); 59 ResultDescriptor result = new ResultDescriptor('result', null);
60 TaskDescriptor descriptor = new TaskDescriptor('task', 60 TaskDescriptor descriptor = new TaskDescriptor('task',
61 (context, target) => new TestAnalysisTask(context, target), 61 (context, target) => new TestAnalysisTask(context, target),
62 (target) => {}, [result]); 62 (target) => {}, [result]);
63 taskManager.addGeneralResult(result); 63 taskManager.addGeneralResult(result);
64 taskManager.addTaskDescriptor(descriptor); 64 taskManager.addTaskDescriptor(descriptor);
65 context.priorityTargets.add(priorityTarget); 65 context.priorityTargets.add(priorityTarget);
66 context.getCacheEntry(priorityTarget).setValue( 66 context.getCacheEntry(priorityTarget).setValue(
67 result, '', TargetedResult.EMPTY_LIST, null); 67 result, '', TargetedResult.EMPTY_LIST);
68 context.explicitTargets.add(normalTarget); 68 context.explicitTargets.add(normalTarget);
69 context.getCacheEntry(priorityTarget).setValue( 69 context.getCacheEntry(priorityTarget).setValue(
70 result, '', TargetedResult.EMPTY_LIST, null); 70 result, '', TargetedResult.EMPTY_LIST);
71 71
72 expect(analysisDriver.createNextWorkOrder(), isNull); 72 expect(analysisDriver.createNextWorkOrder(), isNull);
73 } 73 }
74 74
75 test_createNextWorkOrder_normalTarget() { 75 test_createNextWorkOrder_normalTarget() {
76 AnalysisTarget priorityTarget = new TestSource(); 76 AnalysisTarget priorityTarget = new TestSource();
77 AnalysisTarget normalTarget = new TestSource(); 77 AnalysisTarget normalTarget = new TestSource();
78 ResultDescriptor result = new ResultDescriptor('result', null); 78 ResultDescriptor result = new ResultDescriptor('result', null);
79 TaskDescriptor descriptor = new TaskDescriptor('task', 79 TaskDescriptor descriptor = new TaskDescriptor('task',
80 (context, target) => new TestAnalysisTask(context, target), 80 (context, target) => new TestAnalysisTask(context, target),
81 (target) => {}, [result]); 81 (target) => {}, [result]);
82 taskManager.addGeneralResult(result); 82 taskManager.addGeneralResult(result);
83 taskManager.addTaskDescriptor(descriptor); 83 taskManager.addTaskDescriptor(descriptor);
84 context.priorityTargets.add(priorityTarget); 84 context.priorityTargets.add(priorityTarget);
85 context.getCacheEntry(priorityTarget).setValue( 85 context.getCacheEntry(priorityTarget).setValue(
86 result, '', TargetedResult.EMPTY_LIST, null); 86 result, '', TargetedResult.EMPTY_LIST);
87 context.explicitTargets.add(normalTarget); 87 context.explicitTargets.add(normalTarget);
88 context.getCacheEntry(normalTarget).setState(result, CacheState.INVALID); 88 context.getCacheEntry(normalTarget).setState(result, CacheState.INVALID);
89 89
90 WorkOrder workOrder = analysisDriver.createNextWorkOrder(); 90 WorkOrder workOrder = analysisDriver.createNextWorkOrder();
91 expect(workOrder, isNotNull); 91 expect(workOrder, isNotNull);
92 expect(workOrder.moveNext(), true); 92 expect(workOrder.moveNext(), true);
93 expect(workOrder.currentItem.target, normalTarget); 93 expect(workOrder.currentItem.target, normalTarget);
94 } 94 }
95 95
96 test_createNextWorkOrder_noTargets() { 96 test_createNextWorkOrder_noTargets() {
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
153 153
154 WorkOrder workOrder = 154 WorkOrder workOrder =
155 analysisDriver.createWorkOrderForResult(target, result); 155 analysisDriver.createWorkOrderForResult(target, result);
156 expect(workOrder, isNotNull); 156 expect(workOrder, isNotNull);
157 } 157 }
158 158
159 test_createWorkOrderForResult_valid() { 159 test_createWorkOrderForResult_valid() {
160 AnalysisTarget target = new TestSource(); 160 AnalysisTarget target = new TestSource();
161 ResultDescriptor result = new ResultDescriptor('result', null); 161 ResultDescriptor result = new ResultDescriptor('result', null);
162 context.getCacheEntry(target).setValue( 162 context.getCacheEntry(target).setValue(
163 result, '', TargetedResult.EMPTY_LIST, null); 163 result, '', TargetedResult.EMPTY_LIST);
164 164
165 expect(analysisDriver.createWorkOrderForResult(target, result), isNull); 165 expect(analysisDriver.createWorkOrderForResult(target, result), isNull);
166 } 166 }
167 167
168 test_createWorkOrderForTarget_complete_generalTarget_generalResult() { 168 test_createWorkOrderForTarget_complete_generalTarget_generalResult() {
169 _createWorkOrderForTarget(true, false, false); 169 _createWorkOrderForTarget(true, false, false);
170 } 170 }
171 171
172 test_createWorkOrderForTarget_complete_generalTarget_priorityResult() { 172 test_createWorkOrderForTarget_complete_generalTarget_priorityResult() {
173 _createWorkOrderForTarget(true, false, true); 173 _createWorkOrderForTarget(true, false, true);
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
272 expect(context.getCacheEntry(target).getValue(resultA), 10); 272 expect(context.getCacheEntry(target).getValue(resultA), 10);
273 expect(context.getCacheEntry(target).getValue(resultB), -2); 273 expect(context.getCacheEntry(target).getValue(resultB), -2);
274 // compute resultB 274 // compute resultB
275 expect(analysisDriver.performAnalysisTask(), true); 275 expect(analysisDriver.performAnalysisTask(), true);
276 expect(context.getCacheEntry(target).getValue(resultA), 10); 276 expect(context.getCacheEntry(target).getValue(resultA), 10);
277 expect(context.getCacheEntry(target).getValue(resultB), 20); 277 expect(context.getCacheEntry(target).getValue(resultB), 20);
278 // done 278 // done
279 expect(analysisDriver.performAnalysisTask(), false); 279 expect(analysisDriver.performAnalysisTask(), false);
280 } 280 }
281 281
282 test_performAnalysisTask_recordMemento() {
283 AnalysisTarget target = new TestSource();
284 ResultDescriptor result = new ResultDescriptor('result', -1);
285 // configure tasks
286 TestAnalysisTask task;
287 TaskDescriptor descriptor = new TaskDescriptor(
288 'task', (context, target) => task, (target) => {}, [result]);
289 task = new TestAnalysisTask(context, target,
290 descriptor: descriptor,
291 memento: 'my mem',
292 results: [result],
293 value: 10);
294 taskManager.addTaskDescriptor(descriptor);
295 context.explicitTargets.add(target);
296 taskManager.addGeneralResult(result);
297 // prepare work order
298 expect(analysisDriver.performAnalysisTask(), true);
299 expect(context.getCacheEntry(target).getValue(result), -1);
300 // compute result
301 expect(analysisDriver.performAnalysisTask(), true);
302 expect(context.getCacheEntry(target).getValue(result), 10);
303 expect(context.getCacheEntry(target).getMemento(result), 'my mem');
304 // done
305 expect(analysisDriver.performAnalysisTask(), false);
306 }
307
308 test_performWorkItem_exceptionInTask() { 282 test_performWorkItem_exceptionInTask() {
309 AnalysisTarget target = new TestSource(); 283 AnalysisTarget target = new TestSource();
310 ResultDescriptor result = new ResultDescriptor('result', null); 284 ResultDescriptor result = new ResultDescriptor('result', null);
311 CaughtException exception = 285 CaughtException exception =
312 new CaughtException(new AnalysisException(), null); 286 new CaughtException(new AnalysisException(), null);
313 TestAnalysisTask task; 287 TestAnalysisTask task;
314 TaskDescriptor descriptor = new TaskDescriptor( 288 TaskDescriptor descriptor = new TaskDescriptor(
315 'task', (context, target) => task, (target) => {}, [result]); 289 'task', (context, target) => task, (target) => {}, [result]);
316 task = new TestAnalysisTask(context, target, 290 task = new TestAnalysisTask(context, target,
317 descriptor: descriptor, exception: exception); 291 descriptor: descriptor, exception: exception);
318 WorkItem item = new WorkItem(context, target, descriptor, null); 292 WorkItem item = new WorkItem(context, target, descriptor);
319 293
320 analysisDriver.performWorkItem(item); 294 analysisDriver.performWorkItem(item);
321 CacheEntry targetEntry = context.getCacheEntry(item.target); 295 CacheEntry targetEntry = context.getCacheEntry(item.target);
322 expect(targetEntry.exception, exception); 296 expect(targetEntry.exception, exception);
323 expect(targetEntry.getState(result), CacheState.ERROR); 297 expect(targetEntry.getState(result), CacheState.ERROR);
324 } 298 }
325 299
326 test_performWorkItem_noException() { 300 test_performWorkItem_noException() {
327 AnalysisTarget target = new TestSource(); 301 AnalysisTarget target = new TestSource();
328 ResultDescriptor result = new ResultDescriptor('result', null); 302 ResultDescriptor result = new ResultDescriptor('result', null);
329 TestAnalysisTask task; 303 TestAnalysisTask task;
330 TaskDescriptor descriptor = new TaskDescriptor( 304 TaskDescriptor descriptor = new TaskDescriptor(
331 'task', (context, target) => task, (target) => {}, [result]); 305 'task', (context, target) => task, (target) => {}, [result]);
332 task = new TestAnalysisTask(context, target, descriptor: descriptor); 306 task = new TestAnalysisTask(context, target, descriptor: descriptor);
333 WorkItem item = new WorkItem(context, target, descriptor, null); 307 WorkItem item = new WorkItem(context, target, descriptor);
334 308
335 analysisDriver.performWorkItem(item); 309 analysisDriver.performWorkItem(item);
336 CacheEntry targetEntry = context.getCacheEntry(item.target); 310 CacheEntry targetEntry = context.getCacheEntry(item.target);
337 expect(targetEntry.exception, isNull); 311 expect(targetEntry.exception, isNull);
338 expect(targetEntry.getState(result), CacheState.VALID); 312 expect(targetEntry.getState(result), CacheState.VALID);
339 } 313 }
340 314
341 test_performWorkItem_preExistingException() { 315 test_performWorkItem_preExistingException() {
342 AnalysisTarget target = new TestSource(); 316 AnalysisTarget target = new TestSource();
343 ResultDescriptor result = new ResultDescriptor('result', null); 317 ResultDescriptor result = new ResultDescriptor('result', null);
344 TaskDescriptor descriptor = new TaskDescriptor('task', 318 TaskDescriptor descriptor = new TaskDescriptor('task',
345 (context, target) => new TestAnalysisTask(context, target), 319 (context, target) => new TestAnalysisTask(context, target),
346 (target) => {}, [result]); 320 (target) => {}, [result]);
347 CaughtException exception = 321 CaughtException exception =
348 new CaughtException(new AnalysisException(), null); 322 new CaughtException(new AnalysisException(), null);
349 WorkItem item = new WorkItem(context, target, descriptor, null); 323 WorkItem item = new WorkItem(context, target, descriptor);
350 item.exception = exception; 324 item.exception = exception;
351 325
352 analysisDriver.performWorkItem(item); 326 analysisDriver.performWorkItem(item);
353 CacheEntry targetEntry = context.getCacheEntry(item.target); 327 CacheEntry targetEntry = context.getCacheEntry(item.target);
354 expect(targetEntry.exception, exception); 328 expect(targetEntry.exception, exception);
355 expect(targetEntry.getState(result), CacheState.ERROR); 329 expect(targetEntry.getState(result), CacheState.ERROR);
356 } 330 }
357 331
358 test_reset() { 332 test_reset() {
359 ResultDescriptor inputResult = new ResultDescriptor('input', null); 333 ResultDescriptor inputResult = new ResultDescriptor('input', null);
360 TaskDescriptor descriptor = new TaskDescriptor('task', 334 TaskDescriptor descriptor = new TaskDescriptor('task',
361 (context, target) => new TestAnalysisTask(context, target), 335 (context, target) => new TestAnalysisTask(context, target),
362 (target) => {'one': inputResult.of(target)}, 336 (target) => {'one': inputResult.of(target)},
363 [new ResultDescriptor('output', null)]); 337 [new ResultDescriptor('output', null)]);
364 analysisDriver.currentWorkOrder = 338 analysisDriver.currentWorkOrder =
365 new WorkOrder(taskManager, new WorkItem(null, null, descriptor, null)); 339 new WorkOrder(taskManager, new WorkItem(null, null, descriptor));
366 340
367 analysisDriver.reset(); 341 analysisDriver.reset();
368 expect(analysisDriver.currentWorkOrder, isNull); 342 expect(analysisDriver.currentWorkOrder, isNull);
369 } 343 }
370 344
371 /** 345 /**
372 * [complete] is `true` if the value of the result has already been computed. 346 * [complete] is `true` if the value of the result has already been computed.
373 * [priorityTarget] is `true` if the target is in the list of priority 347 * [priorityTarget] is `true` if the target is in the list of priority
374 * targets. 348 * targets.
375 * [priorityResult] is `true` if the result should only be computed for 349 * [priorityResult] is `true` if the result should only be computed for
(...skipping 12 matching lines...) Expand all
388 taskManager.addGeneralResult(result); 362 taskManager.addGeneralResult(result);
389 } 363 }
390 taskManager.addTaskDescriptor(descriptor); 364 taskManager.addTaskDescriptor(descriptor);
391 if (priorityTarget) { 365 if (priorityTarget) {
392 context.priorityTargets.add(target); 366 context.priorityTargets.add(target);
393 } else { 367 } else {
394 context.explicitTargets.add(target); 368 context.explicitTargets.add(target);
395 } 369 }
396 if (complete) { 370 if (complete) {
397 context.getCacheEntry(target).setValue( 371 context.getCacheEntry(target).setValue(
398 result, '', TargetedResult.EMPTY_LIST, null); 372 result, '', TargetedResult.EMPTY_LIST);
399 } else { 373 } else {
400 context.getCacheEntry(target).setState(result, CacheState.INVALID); 374 context.getCacheEntry(target).setState(result, CacheState.INVALID);
401 } 375 }
402 376
403 WorkOrder workOrder = 377 WorkOrder workOrder =
404 analysisDriver.createWorkOrderForTarget(target, priorityTarget); 378 analysisDriver.createWorkOrderForTarget(target, priorityTarget);
405 if (complete) { 379 if (complete) {
406 expect(workOrder, isNull); 380 expect(workOrder, isNull);
407 } else if (priorityResult) { 381 } else if (priorityResult) {
408 expect(workOrder, priorityTarget ? isNotNull : isNull); 382 expect(workOrder, priorityTarget ? isNotNull : isNull);
409 } else { 383 } else {
410 expect(workOrder, isNotNull); 384 expect(workOrder, isNotNull);
411 } 385 }
412 } 386 }
413 } 387 }
414 388
415 @reflectiveTest 389 @reflectiveTest
416 class WorkItemTest extends EngineTestCase { 390 class WorkItemTest extends EngineTestCase {
417 test_buildTask_complete() { 391 test_buildTask_complete() {
418 AnalysisContext context = new AnalysisContextImpl(); 392 AnalysisContext context = new AnalysisContextImpl();
419 AnalysisTarget target = new TestSource(); 393 AnalysisTarget target = new TestSource();
420 TaskDescriptor descriptor = new TaskDescriptor('task', 394 TaskDescriptor descriptor = new TaskDescriptor('task',
421 (context, target) => new TestAnalysisTask(context, target), 395 (context, target) => new TestAnalysisTask(context, target),
422 (target) => {}, [new ResultDescriptor('output', null)]); 396 (target) => {}, [new ResultDescriptor('output', null)]);
423 Object memento = new Object(); 397 WorkItem item = new WorkItem(context, target, descriptor);
424 WorkItem item = new WorkItem(context, target, descriptor, memento);
425 AnalysisTask task = item.buildTask(); 398 AnalysisTask task = item.buildTask();
426 expect(task, isNotNull); 399 expect(task, isNotNull);
427 expect(task.inputMemento, memento);
428 } 400 }
429 401
430 test_buildTask_incomplete() { 402 test_buildTask_incomplete() {
431 AnalysisContext context = new AnalysisContextImpl(); 403 AnalysisContext context = new AnalysisContextImpl();
432 AnalysisTarget target = new TestSource(); 404 AnalysisTarget target = new TestSource();
433 ResultDescriptor inputResult = new ResultDescriptor('input', null); 405 ResultDescriptor inputResult = new ResultDescriptor('input', null);
434 List<ResultDescriptor> outputResults = 406 List<ResultDescriptor> outputResults =
435 <ResultDescriptor>[new ResultDescriptor('output', null)]; 407 <ResultDescriptor>[new ResultDescriptor('output', null)];
436 TaskDescriptor descriptor = new TaskDescriptor('task', (context, target) => 408 TaskDescriptor descriptor = new TaskDescriptor('task', (context, target) =>
437 new TestAnalysisTask(context, target, results: outputResults), 409 new TestAnalysisTask(context, target, results: outputResults),
438 (target) => {'one': inputResult.of(target)}, outputResults); 410 (target) => {'one': inputResult.of(target)}, outputResults);
439 WorkItem item = new WorkItem(context, target, descriptor, null); 411 WorkItem item = new WorkItem(context, target, descriptor);
440 expect(() => item.buildTask(), throwsStateError); 412 expect(() => item.buildTask(), throwsStateError);
441 } 413 }
442 414
443 test_create() { 415 test_create() {
444 AnalysisContext context = new AnalysisContextImpl(); 416 AnalysisContext context = new AnalysisContextImpl();
445 AnalysisTarget target = new TestSource(); 417 AnalysisTarget target = new TestSource();
446 Object memento = new Object();
447 TaskDescriptor descriptor = new TaskDescriptor( 418 TaskDescriptor descriptor = new TaskDescriptor(
448 'task', null, (target) => {}, [new ResultDescriptor('result', null)]); 419 'task', null, (target) => {}, [new ResultDescriptor('result', null)]);
449 WorkItem item = new WorkItem(context, target, descriptor, memento); 420 WorkItem item = new WorkItem(context, target, descriptor);
450 expect(item, isNotNull); 421 expect(item, isNotNull);
451 expect(item.context, context); 422 expect(item.context, context);
452 expect(item.descriptor, descriptor); 423 expect(item.descriptor, descriptor);
453 expect(item.inputMemento, memento);
454 expect(item.target, target); 424 expect(item.target, target);
455 } 425 }
456 426
457 test_gatherInputs_complete() { 427 test_gatherInputs_complete() {
458 TaskManager manager = new TaskManager(); 428 TaskManager manager = new TaskManager();
459 AnalysisContext context = new AnalysisContextImpl(); 429 AnalysisContext context = new AnalysisContextImpl();
460 AnalysisTarget target = new TestSource(); 430 AnalysisTarget target = new TestSource();
461 TaskDescriptor descriptor = new TaskDescriptor('task', 431 TaskDescriptor descriptor = new TaskDescriptor('task',
462 (context, target) => new TestAnalysisTask(context, target), 432 (context, target) => new TestAnalysisTask(context, target),
463 (target) => {}, [new ResultDescriptor('output', null)]); 433 (target) => {}, [new ResultDescriptor('output', null)]);
464 WorkItem item = new WorkItem(context, target, descriptor, null); 434 WorkItem item = new WorkItem(context, target, descriptor);
465 WorkItem result = item.gatherInputs(manager); 435 WorkItem result = item.gatherInputs(manager);
466 expect(result, isNull); 436 expect(result, isNull);
467 expect(item.exception, isNull); 437 expect(item.exception, isNull);
468 } 438 }
469 439
470 test_gatherInputs_incomplete() { 440 test_gatherInputs_incomplete() {
471 TaskManager manager = new TaskManager(); 441 TaskManager manager = new TaskManager();
472 AnalysisContextImpl context = new AnalysisContextImpl(); 442 AnalysisContextImpl context = new AnalysisContextImpl();
473 AnalysisTarget target = new TestSource(); 443 AnalysisTarget target = new TestSource();
474 ResultDescriptor resultA = new ResultDescriptor('resultA', null); 444 ResultDescriptor resultA = new ResultDescriptor('resultA', null);
475 ResultDescriptor resultB = new ResultDescriptor('resultB', null); 445 ResultDescriptor resultB = new ResultDescriptor('resultB', null);
476 // prepare tasks 446 // prepare tasks
477 TaskDescriptor task1 = new TaskDescriptor('task', (context, target) => 447 TaskDescriptor task1 = new TaskDescriptor('task', (context, target) =>
478 new TestAnalysisTask(context, target, results: [resultA]), 448 new TestAnalysisTask(context, target, results: [resultA]),
479 (target) => {}, [resultA]); 449 (target) => {}, [resultA]);
480 TaskDescriptor task2 = new TaskDescriptor('task', 450 TaskDescriptor task2 = new TaskDescriptor('task',
481 (context, target) => new TestAnalysisTask(context, target), 451 (context, target) => new TestAnalysisTask(context, target),
482 (target) => {'one': resultA.of(target)}, [resultB]); 452 (target) => {'one': resultA.of(target)}, [resultB]);
483 manager.addTaskDescriptor(task1); 453 manager.addTaskDescriptor(task1);
484 manager.addTaskDescriptor(task2); 454 manager.addTaskDescriptor(task2);
485 // configure memento for "resultA"
486 dynamic memento = 'main() {}';
487 {
488 CacheEntry cacheEntry = context.getCacheEntry(target);
489 cacheEntry.setValue(resultA, null, TargetedResult.EMPTY_LIST, memento);
490 cacheEntry.setState(resultA, CacheState.INVALID);
491 }
492 // gather inputs 455 // gather inputs
493 WorkItem item = new WorkItem(context, target, task2, null); 456 WorkItem item = new WorkItem(context, target, task2);
494 WorkItem inputItem = item.gatherInputs(manager); 457 WorkItem inputItem = item.gatherInputs(manager);
495 expect(inputItem, isNotNull); 458 expect(inputItem, isNotNull);
496 expect(inputItem.inputMemento, memento);
497 } 459 }
498 460
499 test_gatherInputs_invalid() { 461 test_gatherInputs_invalid() {
500 TaskManager manager = new TaskManager(); 462 TaskManager manager = new TaskManager();
501 AnalysisContext context = new AnalysisContextImpl(); 463 AnalysisContext context = new AnalysisContextImpl();
502 AnalysisTarget target = new TestSource(); 464 AnalysisTarget target = new TestSource();
503 ResultDescriptor inputResult = new ResultDescriptor('input', null); 465 ResultDescriptor inputResult = new ResultDescriptor('input', null);
504 TaskDescriptor descriptor = new TaskDescriptor('task', 466 TaskDescriptor descriptor = new TaskDescriptor('task',
505 (context, target) => new TestAnalysisTask(context, target), 467 (context, target) => new TestAnalysisTask(context, target),
506 (target) => {'one': inputResult.of(target)}, 468 (target) => {'one': inputResult.of(target)},
507 [new ResultDescriptor('output', null)]); 469 [new ResultDescriptor('output', null)]);
508 WorkItem item = new WorkItem(context, target, descriptor, null); 470 WorkItem item = new WorkItem(context, target, descriptor);
509 WorkItem result = item.gatherInputs(manager); 471 WorkItem result = item.gatherInputs(manager);
510 expect(result, isNull); 472 expect(result, isNull);
511 expect(item.exception, isNotNull); 473 expect(item.exception, isNotNull);
512 } 474 }
513 } 475 }
514 476
515 @reflectiveTest 477 @reflectiveTest
516 class WorkOrderTest extends EngineTestCase { 478 class WorkOrderTest extends EngineTestCase {
517 test_create() { 479 test_create() {
518 TaskManager manager = new TaskManager(); 480 TaskManager manager = new TaskManager();
519 TaskDescriptor descriptor = new TaskDescriptor( 481 TaskDescriptor descriptor = new TaskDescriptor(
520 'task', null, (_) => {}, [new ResultDescriptor('result', null)]); 482 'task', null, (_) => {}, [new ResultDescriptor('result', null)]);
521 WorkOrder order = 483 WorkOrder order =
522 new WorkOrder(manager, new WorkItem(null, null, descriptor, null)); 484 new WorkOrder(manager, new WorkItem(null, null, descriptor));
523 expect(order, isNotNull); 485 expect(order, isNotNull);
524 expect(order.currentItem, isNull); 486 expect(order.currentItem, isNull);
525 expect(order.pendingItems, hasLength(1)); 487 expect(order.pendingItems, hasLength(1));
526 expect(order.taskManager, manager); 488 expect(order.taskManager, manager);
527 } 489 }
528 490
529 test_moveNext() { 491 test_moveNext() {
530 TaskManager manager = new TaskManager(); 492 TaskManager manager = new TaskManager();
531 TaskDescriptor descriptor = new TaskDescriptor( 493 TaskDescriptor descriptor = new TaskDescriptor(
532 'task', null, (_) => {}, [new ResultDescriptor('result', null)]); 494 'task', null, (_) => {}, [new ResultDescriptor('result', null)]);
533 WorkItem workItem = new WorkItem(null, null, descriptor, null); 495 WorkItem workItem = new WorkItem(null, null, descriptor);
534 WorkOrder order = new WorkOrder(manager, workItem); 496 WorkOrder order = new WorkOrder(manager, workItem);
535 // "item" has no child items 497 // "item" has no child items
536 expect(order.moveNext(), isTrue); 498 expect(order.moveNext(), isTrue);
537 expect(order.current, workItem); 499 expect(order.current, workItem);
538 // done 500 // done
539 expect(order.moveNext(), isFalse); 501 expect(order.moveNext(), isFalse);
540 expect(order.current, isNull); 502 expect(order.current, isNull);
541 } 503 }
542 } 504 }
543 505
544 /** 506 /**
545 * An [AnalysisContextImpl] which allows to set explicit and implicit targets 507 * An [AnalysisContextImpl] which allows to set explicit and implicit targets
546 * directly. 508 * directly.
547 */ 509 */
548 class _TestContext extends AnalysisContextImpl { 510 class _TestContext extends AnalysisContextImpl {
549 @override 511 @override
550 List<AnalysisTarget> explicitTargets = <AnalysisTarget>[]; 512 List<AnalysisTarget> explicitTargets = <AnalysisTarget>[];
551 513
552 @override 514 @override
553 List<AnalysisTarget> priorityTargets = <AnalysisTarget>[]; 515 List<AnalysisTarget> priorityTargets = <AnalysisTarget>[];
554 } 516 }
OLDNEW
« no previous file with comments | « pkg/analyzer/test/src/task/dart_test.dart ('k') | pkg/analyzer/test/src/task/model_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698