xref: /PHP-8.0/ext/standard/tests/array/bug41121.phpt (revision d7a3edd4)
1--TEST--
2Bug #41121 (range() overflow handling for large numbers on 32bit machines)
3--INI--
4precision=14
5--SKIPIF--
6<?php if (PHP_INT_SIZE != 4) die("skip this test is for 32bit platform only"); ?>
7--FILE--
8<?php
9
10// posotive steps
11var_dump(range(2147483400, 2147483600, 100));
12var_dump( range(2147483646, 2147483648, 1 ) );
13var_dump( range(2147483646, 2147483657, 1 ) );
14var_dump( range(2147483630, 2147483646, 5 ) );
15
16// negative steps
17var_dump( range(-2147483645, -2147483648, 1 ) );
18var_dump( range(-2147483645, -2147483649, 1 ) );
19var_dump( range(-2147483630, -2147483646, 5 ) );
20
21// low > high
22var_dump(range(2147483647, 2147483645, 1 ));
23var_dump(range(2147483648, 2147483645, 1 ));
24
25?>
26--EXPECT--
27array(3) {
28  [0]=>
29  int(2147483400)
30  [1]=>
31  int(2147483500)
32  [2]=>
33  int(2147483600)
34}
35array(3) {
36  [0]=>
37  float(2147483646)
38  [1]=>
39  float(2147483647)
40  [2]=>
41  float(2147483648)
42}
43array(12) {
44  [0]=>
45  float(2147483646)
46  [1]=>
47  float(2147483647)
48  [2]=>
49  float(2147483648)
50  [3]=>
51  float(2147483649)
52  [4]=>
53  float(2147483650)
54  [5]=>
55  float(2147483651)
56  [6]=>
57  float(2147483652)
58  [7]=>
59  float(2147483653)
60  [8]=>
61  float(2147483654)
62  [9]=>
63  float(2147483655)
64  [10]=>
65  float(2147483656)
66  [11]=>
67  float(2147483657)
68}
69array(4) {
70  [0]=>
71  int(2147483630)
72  [1]=>
73  int(2147483635)
74  [2]=>
75  int(2147483640)
76  [3]=>
77  int(2147483645)
78}
79array(4) {
80  [0]=>
81  float(-2147483645)
82  [1]=>
83  float(-2147483646)
84  [2]=>
85  float(-2147483647)
86  [3]=>
87  float(-2147483648)
88}
89array(5) {
90  [0]=>
91  float(-2147483645)
92  [1]=>
93  float(-2147483646)
94  [2]=>
95  float(-2147483647)
96  [3]=>
97  float(-2147483648)
98  [4]=>
99  float(-2147483649)
100}
101array(4) {
102  [0]=>
103  int(-2147483630)
104  [1]=>
105  int(-2147483635)
106  [2]=>
107  int(-2147483640)
108  [3]=>
109  int(-2147483645)
110}
111array(3) {
112  [0]=>
113  int(2147483647)
114  [1]=>
115  int(2147483646)
116  [2]=>
117  int(2147483645)
118}
119array(4) {
120  [0]=>
121  float(2147483648)
122  [1]=>
123  float(2147483647)
124  [2]=>
125  float(2147483646)
126  [3]=>
127  float(2147483645)
128}
129