Chromium Code Reviews| Index: tests/isolate/timer_isolate_test.dart |
| diff --git a/tests/isolate/timer_isolate_test.dart b/tests/isolate/timer_isolate_test.dart |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..24b5d2239857060ac08274592377df379dc9cf9a |
| --- /dev/null |
| +++ b/tests/isolate/timer_isolate_test.dart |
| @@ -0,0 +1,39 @@ |
| +// 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() { |
| + SendPort replyPort; |
| + |
| + port.receive((msg, replyTo) { |
| + replyPort = replyTo; |
| + }); |
| + |
| + new Timer(TIMEOUT, (_) { |
| + replyPort.send("timer_fired"); |
|
vsm
2012/10/09 00:14:33
This seems brittle as I don't think there is a gua
justinfagnani
2012/10/09 00:18:01
Done.
|
| + }); |
| +} |
| + |
| +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) >= TIMEOUT); |
| + })); |
| + |
| + startTime = (new Date.now()).millisecondsSinceEpoch; |
| + var sendPort = spawnFunction(createTimer); |
| + sendPort.send("sendPort", port.toSendPort()); |
| + }); |
| +} |