@@ -14,4 +14,82 @@ public function createLoop()
1414
1515 return new ExtUvLoop ();
1616 }
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+ }
1795}
0 commit comments