diff options
author | mrkn <mrkn@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-12-06 12:54:19 +0000 |
---|---|---|
committer | mrkn <mrkn@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-12-06 12:54:19 +0000 |
commit | 1886b28752208ca3bd05091fa451edb5a3df8536 (patch) | |
tree | bda1273ecb8310f6f6f42023bf9384ac507c85a5 | |
parent | 6db52efa714b54646a7ebb9849a4822d6f833d0f (diff) | |
download | ruby-1886b28752208ca3bd05091fa451edb5a3df8536.tar.gz |
numeric.c: fix exception message for nil rounding
* numeric.c (rb_num_get_rounding_option): fix exception message
for the case of nil rounding mode.
* test_float.rb: add an assertion for the above change.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57000 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | numeric.c | 5 | ||||
-rw-r--r-- | test/ruby/test_float.rb | 3 |
2 files changed, 7 insertions, 1 deletions
@@ -243,7 +243,10 @@ rb_num_get_rounding_option(VALUE opts) break; } invalid: - rb_raise(rb_eArgError, "invalid rounding mode: % "PRIsVALUE, rounding); + if (NIL_P(rounding)) + rb_raise(rb_eArgError, "invalid rounding mode: nil"); + else + rb_raise(rb_eArgError, "invalid rounding mode: % "PRIsVALUE, rounding); } noopt: return RUBY_NUM_ROUND_DEFAULT; diff --git a/test/ruby/test_float.rb b/test/ruby/test_float.rb index aed387029e..eccc86740a 100644 --- a/test/ruby/test_float.rb +++ b/test/ruby/test_float.rb @@ -723,6 +723,9 @@ class TestFloat < Test::Unit::TestCase end def test_round_half_invalid + assert_raise_with_message(ArgumentError, /nil/) { + 1.0.round(half: nil) + } assert_raise_with_message(ArgumentError, /xxx/) { 1.0.round(half: "\0xxx") } |