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

Unified Diff: tests/lib/async/zone_task_test.dart

Issue 2123593002: Revert "Reapply zone tasks." (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 5 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 | « tests/html/xhr_task_test.dart ('k') | tests/lib/async/zone_timer_task_test.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/lib/async/zone_task_test.dart
diff --git a/tests/lib/async/zone_task_test.dart b/tests/lib/async/zone_task_test.dart
deleted file mode 100644
index aa9b008bad62e3d6ac89a2c3472a39b851a4a717..0000000000000000000000000000000000000000
--- a/tests/lib/async/zone_task_test.dart
+++ /dev/null
@@ -1,310 +0,0 @@
-// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// Tests basic functionality of tasks in zones.
-
-import 'package:expect/expect.dart';
-import 'package:async_helper/async_helper.dart';
-import 'dart:async';
-
-List log = [];
-
-class MySpecification extends TaskSpecification {
- final Function callback;
- final bool isOneShot;
- final int value;
-
- MySpecification(void this.callback(), this.isOneShot, this.value);
-
- String get name => "test.specification-name";
-}
-
-class MyTask {
- final Zone zone;
- final Function callback;
- final int id;
- int invocationCount = 0;
- bool shouldStop = false;
-
- MyTask(this.zone, void this.callback(), this.id);
-}
-
-void runMyTask(MyTask task, int value) {
- log.add("running "
- "zone: ${Zone.current['name']} "
- "task-id: ${task.id} "
- "invocation-count: ${task.invocationCount} "
- "value: $value");
- task.callback();
- task.invocationCount++;
-}
-
-MyTask createMyTask(MySpecification spec, Zone zone) {
- var task = new MyTask(zone, spec.callback, spec.value);
- log.add("creating task: ${spec.value} oneshot?: ${spec.isOneShot}");
- if (spec.isOneShot) {
- Timer.run(() {
- zone.runTask(runMyTask, task, task.id);
- });
- } else {
- new Timer.periodic(const Duration(milliseconds: 10), (Timer timer) {
- zone.runTask(runMyTask, task, task.id);
- if (task.shouldStop) {
- timer.cancel();
- }
- });
- }
- return task;
-}
-
-MyTask startTask(f, bool oneShot, int value) {
- var spec = new MySpecification(f, oneShot, value);
- return Zone.current.createTask(createMyTask, spec);
-}
-
-/// Makes sure things are working in a simple setting.
-/// No interceptions, changes, ...
-Future testCustomTask() {
- var testCompleter = new Completer();
- asyncStart();
-
- Object createTaskHandler(Zone self, ZoneDelegate parent, Zone zone,
- TaskCreate create, TaskSpecification specification) {
- if (specification is MySpecification) {
- log.add("create enter "
- "zone: ${self['name']} "
- "spec-value: ${specification.value} "
- "spec-oneshot?: ${specification.isOneShot}");
- MyTask result = parent.createTask(zone, create, specification);
- log.add("create leave");
- return result;
- }
- return parent.createTask(zone, create, specification);
- }
-
- void runTaskHandler(Zone self, ZoneDelegate parent, Zone zone, TaskRun run,
- Object task, Object arg) {
- if (task is MyTask) {
- log.add("run enter "
- "zone: ${self['name']} "
- "task-id: ${task.id} "
- "invocation-count: ${task.invocationCount} "
- "arg: $arg");
- parent.runTask(zone, run, task, arg);
- log.add("run leave invocation-count: ${task.invocationCount}");
- return;
- }
- parent.runTask(zone, run, task, arg);
- }
-
- runZoned(() async {
- var completer0 = new Completer();
- startTask(() {
- completer0.complete("done");
- }, true, 0);
- await completer0.future;
-
- Expect.listEquals([
- 'create enter zone: custom zone spec-value: 0 spec-oneshot?: true',
- 'creating task: 0 oneshot?: true',
- 'create leave',
- 'run enter zone: custom zone task-id: 0 invocation-count: 0 arg: 0',
- 'running zone: custom zone task-id: 0 invocation-count: 0 value: 0',
- 'run leave invocation-count: 1'
- ], log);
- log.clear();
-
- var completer1 = new Completer();
- MyTask task1;
- task1 = startTask(() {
- if (task1.invocationCount == 1) {
- task1.shouldStop = true;
- completer1.complete("done");
- }
- }, false, 1);
- await completer1.future;
-
- Expect.listEquals([
- 'create enter zone: custom zone spec-value: 1 spec-oneshot?: false',
- 'creating task: 1 oneshot?: false',
- 'create leave',
- 'run enter zone: custom zone task-id: 1 invocation-count: 0 arg: 1',
- 'running zone: custom zone task-id: 1 invocation-count: 0 value: 1',
- 'run leave invocation-count: 1',
- 'run enter zone: custom zone task-id: 1 invocation-count: 1 arg: 1',
- 'running zone: custom zone task-id: 1 invocation-count: 1 value: 1',
- 'run leave invocation-count: 2',
- ], log);
- log.clear();
-
- testCompleter.complete("done");
- asyncEnd();
- },
- zoneValues: {'name': 'custom zone'},
- zoneSpecification: new ZoneSpecification(
- createTask: createTaskHandler,
- runTask: runTaskHandler));
-
- return testCompleter.future;
-}
-
-/// More complicated zone, that intercepts...
-Future testCustomTask2() {
- var testCompleter = new Completer();
- asyncStart();
-
- Object createTaskHandler(Zone self, ZoneDelegate parent, Zone zone,
- TaskCreate create, TaskSpecification specification) {
- if (specification is MySpecification) {
- log.add("create enter "
- "zone: ${self['name']} "
- "spec-value: ${specification.value} "
- "spec-oneshot?: ${specification.isOneShot}");
- var replacement = new MySpecification(specification.callback,
- specification.isOneShot, specification.value + 1);
- MyTask result = parent.createTask(zone, create, replacement);
- log.add("create leave");
- return result;
- }
- return parent.createTask(zone, create, specification);
- }
-
- void runTaskHandler(Zone self, ZoneDelegate parent, Zone zone, TaskRun run,
- Object task, Object arg) {
- if (task is MyTask) {
- log.add("run enter "
- "zone: ${self['name']} "
- "task-id: ${task.id} "
- "invocation-count: ${task.invocationCount} "
- "arg: $arg");
- int value = arg;
- parent.runTask(zone, run, task, value + 101);
- log.add("run leave invocation-count: ${task.invocationCount}");
- return;
- }
- parent.runTask(zone, run, task, arg);
- }
-
- runZoned(() async {
- var completer0 = new Completer();
- startTask(() {
- completer0.complete("done");
- }, true, 0);
- await completer0.future;
-
- Expect.listEquals([
- 'create enter zone: outer-zone spec-value: 0 spec-oneshot?: true',
- 'creating task: 1 oneshot?: true',
- 'create leave',
- 'run enter zone: outer-zone task-id: 1 invocation-count: 0 arg: 1',
- 'running zone: outer-zone task-id: 1 invocation-count: 0 value: 102',
- 'run leave invocation-count: 1'
- ], log);
- log.clear();
-
- var completer1 = new Completer();
- MyTask task1;
- task1 = startTask(() {
- if (task1.invocationCount == 1) {
- task1.shouldStop = true;
- completer1.complete("done");
- }
- }, false, 1);
- await completer1.future;
-
- Expect.listEquals([
- 'create enter zone: outer-zone spec-value: 1 spec-oneshot?: false',
- 'creating task: 2 oneshot?: false',
- 'create leave',
- 'run enter zone: outer-zone task-id: 2 invocation-count: 0 arg: 2',
- 'running zone: outer-zone task-id: 2 invocation-count: 0 value: 103',
- 'run leave invocation-count: 1',
- 'run enter zone: outer-zone task-id: 2 invocation-count: 1 arg: 2',
- 'running zone: outer-zone task-id: 2 invocation-count: 1 value: 103',
- 'run leave invocation-count: 2',
- ], log);
- log.clear();
-
- var nestedCompleter = new Completer();
-
- runZoned(() async {
- var completer0 = new Completer();
- startTask(() {
- completer0.complete("done");
- }, true, 0);
- await completer0.future;
-
- Expect.listEquals([
- 'create enter zone: inner-zone spec-value: 0 spec-oneshot?: true',
- 'create enter zone: outer-zone spec-value: 1 spec-oneshot?: true',
- 'creating task: 2 oneshot?: true',
- 'create leave',
- 'create leave',
- 'run enter zone: inner-zone task-id: 2 invocation-count: 0 arg: 2',
- 'run enter zone: outer-zone task-id: 2 invocation-count: 0 arg: 103',
- 'running zone: inner-zone task-id: 2 invocation-count: 0 value: 204',
- 'run leave invocation-count: 1',
- 'run leave invocation-count: 1'
- ], log);
- log.clear();
-
- var completer1 = new Completer();
- MyTask task1;
- task1 = startTask(() {
- if (task1.invocationCount == 1) {
- task1.shouldStop = true;
- completer1.complete("done");
- }
- }, false, 1);
- await completer1.future;
-
- Expect.listEquals([
- 'create enter zone: inner-zone spec-value: 1 spec-oneshot?: false',
- 'create enter zone: outer-zone spec-value: 2 spec-oneshot?: false',
- 'creating task: 3 oneshot?: false',
- 'create leave',
- 'create leave',
- 'run enter zone: inner-zone task-id: 3 invocation-count: 0 arg: 3',
- 'run enter zone: outer-zone task-id: 3 invocation-count: 0 arg: 104',
- 'running zone: inner-zone task-id: 3 invocation-count: 0 value: 205',
- 'run leave invocation-count: 1',
- 'run leave invocation-count: 1',
- 'run enter zone: inner-zone task-id: 3 invocation-count: 1 arg: 3',
- 'run enter zone: outer-zone task-id: 3 invocation-count: 1 arg: 104',
- 'running zone: inner-zone task-id: 3 invocation-count: 1 value: 205',
- 'run leave invocation-count: 2',
- 'run leave invocation-count: 2',
- ], log);
- log.clear();
-
- nestedCompleter.complete("done");
- },
- zoneValues: {'name': 'inner-zone'},
- zoneSpecification: new ZoneSpecification(
- createTask: createTaskHandler,
- runTask: runTaskHandler));
-
- await nestedCompleter.future;
- testCompleter.complete("done");
- asyncEnd();
- },
- zoneValues: {'name': 'outer-zone'},
- zoneSpecification: new ZoneSpecification(
- createTask: createTaskHandler,
- runTask: runTaskHandler));
-
- return testCompleter.future;
-}
-
-runTests() async {
- await testCustomTask();
- await testCustomTask2();
-}
-
-main() {
- asyncStart();
- runTests().then((_) {
- asyncEnd();
- });
-}
« no previous file with comments | « tests/html/xhr_task_test.dart ('k') | tests/lib/async/zone_timer_task_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698