@@ -14,4 +14,82 @@ public function createLoop()
14
14
15
15
return new ExtUvLoop ();
16
16
}
17
+
18
+ /** @dataProvider intervalProvider */
19
+ public function testTimerInterval ($ interval , $ expectedExceptionMessage )
20
+ {
21
+ $ this ->expectException ('InvalidArgumentException ' );
22
+ $ this ->expectExceptionMessage ($ expectedExceptionMessage );
23
+
24
+ $ this ->loop
25
+ ->addTimer (
26
+ $ interval ,
27
+ function () {
28
+ return 0 ;
29
+ }
30
+ );
31
+ }
32
+
33
+ public function intervalProvider ()
34
+ {
35
+ $ oversizeInterval = PHP_INT_MAX / 1000 ;
36
+ $ maxValue = (int ) (PHP_INT_MAX / 1000 );
37
+ $ oneMaxValue = $ maxValue + 1 ;
38
+ $ tenMaxValue = $ maxValue + 10 ;
39
+ $ tenMillionsMaxValue = $ maxValue + 10000000 ;
40
+ $ intMax = PHP_INT_MAX ;
41
+ $ oneIntMax = PHP_INT_MAX + 1 ;
42
+ $ tenIntMax = PHP_INT_MAX + 10 ;
43
+ $ oneHundredIntMax = PHP_INT_MAX + 100 ;
44
+ $ oneThousandIntMax = PHP_INT_MAX + 1000 ;
45
+ $ tenMillionsIntMax = PHP_INT_MAX + 10000000 ;
46
+ $ tenThousandsTimesIntMax = PHP_INT_MAX * 1000 ;
47
+
48
+ return array (
49
+ array (
50
+ $ oversizeInterval ,
51
+ "Interval overflow, value must be lower than ' {$ maxValue }', but ' {$ oversizeInterval }' passed. "
52
+ ),
53
+ array (
54
+ $ oneMaxValue ,
55
+ "Interval overflow, value must be lower than ' {$ maxValue }', but ' {$ oneMaxValue }' passed. " ,
56
+ ),
57
+ array (
58
+ $ tenMaxValue ,
59
+ "Interval overflow, value must be lower than ' {$ maxValue }', but ' {$ tenMaxValue }' passed. " ,
60
+ ),
61
+ array (
62
+ $ tenMillionsMaxValue ,
63
+ "Interval overflow, value must be lower than ' {$ maxValue }', but ' {$ tenMillionsMaxValue }' passed. " ,
64
+ ),
65
+ array (
66
+ $ intMax ,
67
+ "Interval overflow, value must be lower than ' {$ maxValue }', but ' {$ intMax }' passed. " ,
68
+ ),
69
+ array (
70
+ $ oneIntMax ,
71
+ "Interval overflow, value must be lower than ' {$ maxValue }', but ' {$ oneIntMax }' passed. " ,
72
+ ),
73
+ array (
74
+ $ tenIntMax ,
75
+ "Interval overflow, value must be lower than ' {$ maxValue }', but ' {$ tenIntMax }' passed. " ,
76
+ ),
77
+ array (
78
+ $ oneHundredIntMax ,
79
+ "Interval overflow, value must be lower than ' {$ maxValue }', but ' {$ oneHundredIntMax }' passed. " ,
80
+ ),
81
+ array (
82
+ $ oneThousandIntMax ,
83
+ "Interval overflow, value must be lower than ' {$ maxValue }', but ' {$ oneThousandIntMax }' passed. " ,
84
+ ),
85
+ array (
86
+ $ tenMillionsIntMax ,
87
+ "Interval overflow, value must be lower than ' {$ maxValue }', but ' {$ tenMillionsIntMax }' passed. " ,
88
+ ),
89
+ array (
90
+ $ tenThousandsTimesIntMax ,
91
+ "Interval overflow, value must be lower than ' {$ maxValue }', but ' {$ tenThousandsTimesIntMax }' passed. " ,
92
+ ),
93
+ );
94
+ }
17
95
}
0 commit comments