summaryrefslogtreecommitdiff
path: root/test/ruby
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-04-20 00:10:46 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-04-20 00:10:46 +0000
commitad5a6aa790068a323f9129e92b383c9685700b51 (patch)
treed9c1790847a962c18b30502bd7d1305566573f1c /test/ruby
parent5a5c9a706c2578a17b95b4afb3c1baaa9e862166 (diff)
range.c: fix fixnum loop condition
* range.c (range_step): FIXABLE + FIXABLE never overflow, but may not be FIXABLE. [Feature #12912] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63207 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/ruby')
-rw-r--r--test/ruby/test_range.rb6
1 files changed, 6 insertions, 0 deletions
diff --git a/test/ruby/test_range.rb b/test/ruby/test_range.rb
index 84319d7d42..dbfe495f29 100644
--- a/test/ruby/test_range.rb
+++ b/test/ruby/test_range.rb
@@ -3,6 +3,7 @@ require 'test/unit'
require 'delegate'
require 'timeout'
require 'bigdecimal'
+require 'rbconfig/sizeof'
class TestRange < Test::Unit::TestCase
def test_new
@@ -244,6 +245,11 @@ class TestRange < Test::Unit::TestCase
(2**32-1 .. ).step(2) {|x| a << x; break if a.size == 2 }
assert_equal([4294967295, 4294967297], a)
+ a = []
+ max = RbConfig::LIMITS["FIXNUM_MAX"]
+ (max..).step {|x| a << x; break if a.size == 2 }
+ assert_equal([max, max+1], a)
+
o1 = Object.new
o2 = Object.new
def o1.<=>(x); -1; end