| // 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('../../pkg/unittest/unittest.dart'); |
| |
| const int TIMEOUT = 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 Date.now()).millisecondsSinceEpoch; |
| expect(endTime - startTime, greaterThanOrEqualTo(TIMEOUT)); |
| port.close(); |
| })); |
| |
| startTime = (new Date.now()).millisecondsSinceEpoch; |
| var sendPort = spawnFunction(createTimer); |
| sendPort.send("sendPort", port.toSendPort()); |
| }); |
| } |