bug41121.phpt 1.9 KB

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