| // Copyright (c) 2012, 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 multiple_timer_test; |
| |
| import 'dart:isolate'; |
| import 'dart:async'; |
| import '../../../pkg/unittest/lib/unittest.dart'; |
| |
| const Duration TIMEOUT = const Duration(milliseconds: 100); |
| |
| createTimer() { |
| port.receive((msg, replyTo) { |
| new Timer(TIMEOUT, () { |
| replyTo.send("timer_fired"); |
| }); |
| }); |
| } |
| |
| main() { |
| test("timer in isolate", () { |
| int startTime; |
| int endTime; |
| |
| port.receive(expectAsync2((msg, _) { |
| expect("timer_fired", msg); |
| int endTime = (new DateTime.now()).millisecondsSinceEpoch; |
| expect(endTime - startTime, greaterThanOrEqualTo(TIMEOUT.inMilliseconds)); |
| port.close(); |
| })); |
| |
| startTime = (new DateTime.now()).millisecondsSinceEpoch; |
| var sendPort = spawnFunction(createTimer); |
| sendPort.send("sendPort", port.toSendPort()); |
| }); |
| } |