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. It can happen that | 15 // The stopwatch is more precise than the Timer. |
16 // the TIMEOUT triggers *slightly* too early on the VM. So we add a millisecond | |
17 // as safetymargin. | |
18 // Some browsers (Firefox and IE so far) can trigger too early. So we add more | 16 // Some browsers (Firefox and IE so far) can trigger too early. So we add more |
19 // margin. We use identical(1, 1.0) as an easy way to know if the test is | 17 // margin. We use identical(1, 1.0) as an easy way to know if the test is |
20 // compiled by dart2js. | 18 // compiled by dart2js. |
21 int get safetyMargin => identical(1, 1.0) ? 100 : 1; | 19 int get safetyMargin => identical(1, 1.0) ? 100 : 0; |
22 | 20 |
23 main() { | 21 main() { |
24 test("multiple timer test", () { | 22 test("multiple timer test", () { |
25 Stopwatch _stopwatch1 = new Stopwatch(); | 23 Stopwatch _stopwatch1 = new Stopwatch(); |
26 Stopwatch _stopwatch2 = new Stopwatch(); | 24 Stopwatch _stopwatch2 = new Stopwatch(); |
27 Stopwatch _stopwatch3 = new Stopwatch(); | 25 Stopwatch _stopwatch3 = new Stopwatch(); |
28 Stopwatch _stopwatch4 = new Stopwatch(); | 26 Stopwatch _stopwatch4 = new Stopwatch(); |
29 List<int> _order; | 27 List<int> _order; |
30 int _message; | 28 int _message; |
31 | 29 |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
67 _stopwatch1.start(); | 65 _stopwatch1.start(); |
68 new Timer(TIMEOUT1, expectAsync0(timeoutHandler1)); | 66 new Timer(TIMEOUT1, expectAsync0(timeoutHandler1)); |
69 _stopwatch2.start(); | 67 _stopwatch2.start(); |
70 new Timer(TIMEOUT2, expectAsync0(timeoutHandler2)); | 68 new Timer(TIMEOUT2, expectAsync0(timeoutHandler2)); |
71 _stopwatch3.start(); | 69 _stopwatch3.start(); |
72 new Timer(TIMEOUT3, expectAsync0(timeoutHandler3)); | 70 new Timer(TIMEOUT3, expectAsync0(timeoutHandler3)); |
73 _stopwatch4.start(); | 71 _stopwatch4.start(); |
74 new Timer(TIMEOUT4, expectAsync0(timeoutHandler4)); | 72 new Timer(TIMEOUT4, expectAsync0(timeoutHandler4)); |
75 }); | 73 }); |
76 } | 74 } |
OLD | NEW |