summaryrefslogtreecommitdiffhomepage
path: root/test/t/integer.rb
diff options
context:
space:
mode:
authorcremno <[email protected]>2014-05-05 00:06:17 +0200
committercremno <[email protected]>2014-05-05 00:19:08 +0200
commit964ce6e3272f18325bda7756420409600120a99e (patch)
tree972387bec7c82729f4ba96ebb8ce1a70bcf45ed2 /test/t/integer.rb
parent7a8a97cceeb98ced03b79306a41d5a35185ea92b (diff)
downloadmruby-964ce6e3272f18325bda7756420409600120a99e.tar.gz
mruby-964ce6e3272f18325bda7756420409600120a99e.zip
test fixnum overflow for add, sub and mul
Diffstat (limited to 'test/t/integer.rb')
-rw-r--r--test/t/integer.rb24
1 files changed, 24 insertions, 0 deletions
diff --git a/test/t/integer.rb b/test/t/integer.rb
index 66dd61c0b..58a102943 100644
--- a/test/t/integer.rb
+++ b/test/t/integer.rb
@@ -18,6 +18,14 @@ assert('Integer#+', '15.2.8.3.1') do
assert_raise(TypeError){ 0+nil }
assert_raise(TypeError){ 1+nil }
+
+ c = Mrbtest::FIXNUM_MAX + 1
+ d = Mrbtest::FIXNUM_MAX.__send__(:+, 1)
+ e = Mrbtest::FIXNUM_MAX + 1.0
+ assert_equal Float, c.class
+ assert_equal Float, d.class
+ assert_float e, c
+ assert_float e, d
end
assert('Integer#-', '15.2.8.3.2') do
@@ -26,6 +34,14 @@ assert('Integer#-', '15.2.8.3.2') do
assert_equal 1, a
assert_equal 1.0, b
+
+ c = Mrbtest::FIXNUM_MIN - 1
+ d = Mrbtest::FIXNUM_MIN.__send__(:-, 1)
+ e = Mrbtest::FIXNUM_MIN - 1.0
+ assert_equal Float, c.class
+ assert_equal Float, d.class
+ assert_float e, c
+ assert_float e, d
end
assert('Integer#*', '15.2.8.3.3') do
@@ -37,6 +53,14 @@ assert('Integer#*', '15.2.8.3.3') do
assert_raise(TypeError){ 0*nil }
assert_raise(TypeError){ 1*nil }
+
+ c = Mrbtest::FIXNUM_MAX * 2
+ d = Mrbtest::FIXNUM_MAX.__send__(:*, 2)
+ e = Mrbtest::FIXNUM_MAX * 2.0
+ assert_equal Float, c.class
+ assert_equal Float, d.class
+ assert_float e, c
+ assert_float e, d
end
assert('Integer#/', '15.2.8.3.4') do