OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 library multiple_timer_test; | 5 library multiple_timer_test; |
6 | 6 |
7 import 'dart:async'; | 7 import 'dart:async'; |
8 import '../../../pkg/unittest/lib/unittest.dart'; | 8 import '../../../pkg/unittest/lib/unittest.dart'; |
9 | 9 |
10 const Duration TIMEOUT1 = const Duration(seconds: 1); | 10 const Duration TIMEOUT1 = const Duration(seconds: 1); |
11 const Duration TIMEOUT2 = const Duration(seconds: 2); | 11 const Duration TIMEOUT2 = const Duration(seconds: 2); |
12 const Duration TIMEOUT3 = const Duration(milliseconds: 500); | 12 const Duration TIMEOUT3 = const Duration(milliseconds: 500); |
13 const Duration TIMEOUT4 = const Duration(milliseconds: 1500); | 13 const Duration TIMEOUT4 = const Duration(milliseconds: 1500); |
14 | 14 |
15 // The stopwatch is more precise than the Timer. | 15 // The stopwatch is more precise than the Timer. It can happen that |
| 16 // the TIMEOUT triggers *slightly* too early on the VM. So we add a millisecond |
| 17 // as safetymargin. |
16 // Some browsers (Firefox and IE so far) can trigger too early. So we add more | 18 // Some browsers (Firefox and IE so far) can trigger too early. So we add more |
17 // margin. We use identical(1, 1.0) as an easy way to know if the test is | 19 // margin. We use identical(1, 1.0) as an easy way to know if the test is |
18 // compiled by dart2js. | 20 // compiled by dart2js. |
19 int get safetyMargin => identical(1, 1.0) ? 100 : 0; | 21 int get safetyMargin => identical(1, 1.0) ? 100 : 1; |
20 | 22 |
21 main() { | 23 main() { |
22 test("multiple timer test", () { | 24 test("multiple timer test", () { |
23 Stopwatch _stopwatch1 = new Stopwatch(); | 25 Stopwatch _stopwatch1 = new Stopwatch(); |
24 Stopwatch _stopwatch2 = new Stopwatch(); | 26 Stopwatch _stopwatch2 = new Stopwatch(); |
25 Stopwatch _stopwatch3 = new Stopwatch(); | 27 Stopwatch _stopwatch3 = new Stopwatch(); |
26 Stopwatch _stopwatch4 = new Stopwatch(); | 28 Stopwatch _stopwatch4 = new Stopwatch(); |
27 List<int> _order; | 29 List<int> _order; |
28 int _message; | 30 int _message; |
29 | 31 |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
65 _stopwatch1.start(); | 67 _stopwatch1.start(); |
66 new Timer(TIMEOUT1, expectAsync0(timeoutHandler1)); | 68 new Timer(TIMEOUT1, expectAsync0(timeoutHandler1)); |
67 _stopwatch2.start(); | 69 _stopwatch2.start(); |
68 new Timer(TIMEOUT2, expectAsync0(timeoutHandler2)); | 70 new Timer(TIMEOUT2, expectAsync0(timeoutHandler2)); |
69 _stopwatch3.start(); | 71 _stopwatch3.start(); |
70 new Timer(TIMEOUT3, expectAsync0(timeoutHandler3)); | 72 new Timer(TIMEOUT3, expectAsync0(timeoutHandler3)); |
71 _stopwatch4.start(); | 73 _stopwatch4.start(); |
72 new Timer(TIMEOUT4, expectAsync0(timeoutHandler4)); | 74 new Timer(TIMEOUT4, expectAsync0(timeoutHandler4)); |
73 }); | 75 }); |
74 } | 76 } |
OLD | NEW |