Index: tests/html/async_test.dart |
diff --git a/tests/html/async_test.dart b/tests/html/async_test.dart |
index 616258cd17dbd607711a83d11d2be774843a361c..a0d99fbf94ccf3666812ea0f592f820dd7bd1c42 100644 |
--- a/tests/html/async_test.dart |
+++ b/tests/html/async_test.dart |
@@ -7,61 +7,61 @@ import 'dart:async'; |
import 'dart:isolate'; |
import 'dart:html'; |
-oneshotTimerIsolate() { |
- port.receive((msg, replyTo) { |
- expect(msg, 'START'); |
- new Timer(const Duration(milliseconds: 10), () { |
- replyTo.send('DONE'); |
- }); |
- }); |
-} |
- |
-periodicTimerIsolate() { |
- port.receive((msg, replyTo) { |
- expect(msg, 'START'); |
- int counter = 0; |
- new Timer.periodic(const Duration(milliseconds: 10), (timer) { |
- if (counter == 3) { |
- counter = 1024; |
- timer.cancel(); |
- // Wait some more time to be sure callback won't be invoked any |
- // more. |
- new Timer(const Duration(milliseconds: 30), () { |
- replyTo.send('DONE'); |
- }); |
- return; |
- } |
- assert(counter < 3); |
- counter++; |
- }); |
+oneshotTimerIsolate(message) { |
+ var command = message[0]; |
+ var replyTo = message[1]; |
+ expect(command, 'START'); |
+ new Timer(const Duration(milliseconds: 10), () { |
+ replyTo.send('DONE'); |
}); |
} |
-cancellingIsolate() { |
- port.receive((msg, replyTo) { |
- expect(msg, 'START'); |
- bool shot = false; |
- var oneshot; |
- var periodic; |
- periodic = new Timer.periodic(const Duration(milliseconds: 10), (timer) { |
- expect(shot, isFalse); |
- shot = true; |
- expect(timer, same(periodic)); |
- periodic.cancel(); |
- oneshot.cancel(); |
- // Wait some more time to be sure callbacks won't be invoked any |
+periodicTimerIsolate(message) { |
+ var command = message[0]; |
+ var replyTo = message[1]; |
+ expect(command, 'START'); |
+ int counter = 0; |
+ new Timer.periodic(const Duration(milliseconds: 10), (timer) { |
+ if (counter == 3) { |
+ counter = 1024; |
+ timer.cancel(); |
+ // Wait some more time to be sure callback won't be invoked any |
// more. |
- new Timer(const Duration(milliseconds: 50), () { |
+ new Timer(const Duration(milliseconds: 30), () { |
replyTo.send('DONE'); |
}); |
+ return; |
+ } |
+ assert(counter < 3); |
+ counter++; |
+ }); |
+} |
+ |
+cancellingIsolate(message) { |
+ var command = message[0]; |
+ var replyTo = message[1]; |
+ expect(command, 'START'); |
+ bool shot = false; |
+ var oneshot; |
+ var periodic; |
+ periodic = new Timer.periodic(const Duration(milliseconds: 10), (timer) { |
+ expect(shot, isFalse); |
+ shot = true; |
+ expect(timer, same(periodic)); |
+ periodic.cancel(); |
+ oneshot.cancel(); |
+ // Wait some more time to be sure callbacks won't be invoked any |
+ // more. |
+ new Timer(const Duration(milliseconds: 50), () { |
+ replyTo.send('DONE'); |
}); |
- // We launch the oneshot timer after the periodic timer. Otherwise a |
- // (very long) context switch could make this test flaky: assume the |
- // oneshot timer is created first and then there is a 30ms context switch. |
- // when the periodic timer is scheduled it would execute after the oneshot. |
- oneshot = new Timer(const Duration(milliseconds: 30), () { |
- fail('Should never be invoked'); |
- }); |
+ }); |
+ // We launch the oneshot timer after the periodic timer. Otherwise a |
+ // (very long) context switch could make this test flaky: assume the |
+ // oneshot timer is created first and then there is a 30ms context switch. |
+ // when the periodic timer is scheduled it would execute after the oneshot. |
+ oneshot = new Timer(const Duration(milliseconds: 30), () { |
+ fail('Should never be invoked'); |
}); |
} |
@@ -69,15 +69,21 @@ main() { |
useHtmlConfiguration(); |
test('one shot timer in pure isolate', () { |
- expect(spawnFunction(oneshotTimerIsolate).call('START'), |
- completion('DONE')); |
+ var response = new ReceivePort(); |
+ var remote = Isolate.spawn(oneshotTimerIsolate, |
+ ['START', response.sendPort]); |
+ expect(remote.then((_) => response.first), completion('DONE')); |
}); |
test('periodic timer in pure isolate', () { |
- expect(spawnFunction(periodicTimerIsolate).call('START'), |
- completion('DONE')); |
+ var response = new ReceivePort(); |
+ var remote = Isolate.spawn(periodicTimerIsolate, |
+ ['START', response.sendPort]); |
+ expect(remote.then((_) => response.first), completion('DONE')); |
}); |
test('cancellation in pure isolate', () { |
- expect(spawnFunction(cancellingIsolate).call('START'), |
- completion('DONE')); |
+ var response = new ReceivePort(); |
+ var remote = Isolate.spawn(cancellingIsolate, |
+ ['START', response.sendPort]); |
+ expect(remote.then((_) => response.first), completion('DONE')); |
}); |
} |