blob: 7720d5a1895a4600a0898f0d3efd23dc5f741c07 [file] [log] [blame]
// Copyright (c) 2020, 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.
library async_test;
import 'package:async_helper/async_minitest.dart';
import 'dart:async';
import 'dart:isolate';
import 'dart:html';
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;
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() {
test('one shot timer in pure isolate', () {
var response = new ReceivePort();
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
]);
expect(remote.then((_) => response.first), completion('DONE'));
});
test('cancellation in pure isolate', () {
var response = new ReceivePort();
var remote = Isolate.spawn(cancellingIsolate, [
['START'],
response.sendPort
]);
expect(remote.then((_) => response.first), completion('DONE'));
});
}