| Index: tests/html/async_test.dart
|
| diff --git a/tests/html/async_test.dart b/tests/html/async_test.dart
|
| index 4144098ef691e505c14282762735a349a4f1ca44..7a19538d69c5e421a63eebf1b9a89bc617940c4b 100644
|
| --- a/tests/html/async_test.dart
|
| +++ b/tests/html/async_test.dart
|
| @@ -7,83 +7,36 @@ import 'dart:async';
|
| import 'dart:isolate';
|
| import 'dart:html';
|
|
|
| -oneshotTimerIsolate(message) {
|
| - var command = message[0];
|
| - var replyTo = message[1];
|
| - expect(command, 'START');
|
| - new Timer(const Duration(milliseconds: 10), () {
|
| - replyTo.send('DONE');
|
| - });
|
| -}
|
| +import 'async_oneshot.dart' as oneshot_test show main;
|
| +import 'async_periodictimer.dart' as periodictimer_test show main;
|
| +import 'async_cancellingisolate.dart' as cancelling_test show main;
|
|
|
| -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: 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');
|
| - });
|
| -}
|
| +oneshot(message) => oneshot_test.main(message.first, message.last);
|
| +periodicTimerIsolate(message) =>
|
| + periodictimer_test.main(message.first, message.last);
|
| +cancellingIsolate(message) => cancelling_test.main(message.first, message.last);
|
|
|
| main() {
|
| useHtmlConfiguration();
|
|
|
| test('one shot timer in pure isolate', () {
|
| var response = new ReceivePort();
|
| - var remote = Isolate.spawn(oneshotTimerIsolate,
|
| - ['START', response.sendPort]);
|
| + var remote = Isolate.spawn(oneshot,
|
| + [['START'], response.sendPort]);
|
| expect(remote.then((_) => response.first), completion('DONE'));
|
| });
|
| +
|
| test('periodic timer in pure isolate', () {
|
| var response = new ReceivePort();
|
| var remote = Isolate.spawn(periodicTimerIsolate,
|
| - ['START', response.sendPort]);
|
| + [['START'], response.sendPort]);
|
| expect(remote.then((_) => response.first), completion('DONE'));
|
| });
|
| +
|
| test('cancellation in pure isolate', () {
|
| var response = new ReceivePort();
|
| var remote = Isolate.spawn(cancellingIsolate,
|
| - ['START', response.sendPort]);
|
| + [['START'], response.sendPort]);
|
| expect(remote.then((_) => response.first), completion('DONE'));
|
| });
|
| }
|
|
|