diff options
author | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-04-22 02:50:45 +0000 |
---|---|---|
committer | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-04-22 02:50:45 +0000 |
commit | c853e2d86e4d074e773cf06b2d9ee6519fc95c15 (patch) | |
tree | 24e61c4e0903cdc7cc8d39196b2cbc77a387309d /test/xmlrpc/test_marshal.rb | |
parent | 33883ded8b9d9578c26bd3706acc185df8c1abc1 (diff) | |
download | ruby-c853e2d86e4d074e773cf06b2d9ee6519fc95c15.tar.gz |
* lib/xmlrpc/create.rb (XMLRPC::Create#conv2value):
XML-RPC's int is 32bit int, and Fixnum also may be beyond 32bit.
* lib/xmlrpc/create.rb (XMLRPC::Create#conv2value):
XML-RPC doesn't allow Infinity and NaN.
http://www.xmlrpc.com/spec
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31319 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/xmlrpc/test_marshal.rb')
-rw-r--r-- | test/xmlrpc/test_marshal.rb | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/test/xmlrpc/test_marshal.rb b/test/xmlrpc/test_marshal.rb index 267b43e2e2..ca029d3b06 100644 --- a/test/xmlrpc/test_marshal.rb +++ b/test/xmlrpc/test_marshal.rb @@ -43,7 +43,7 @@ class Test_Marshal < Test::Unit::TestCase def test_parser_values v1 = [ - 1, -7778, # integers + 1, -7778, -(2**31), 2**31-1, # integers 1.0, 0.0, -333.0, 2343434343.0, # floats false, true, true, false, # booleans "Hallo", "with < and >", "" # strings @@ -81,6 +81,21 @@ class Test_Marshal < Test::Unit::TestCase # Struct end + def test_parser_invalid_values + values = [ + -1-(2**31), 2**31, + Float::INFINITY, -Float::INFINITY, Float::NAN + ] + XMLRPC::XMLParser.each_installed_parser do |parser| + m = XMLRPC::Marshal.new(parser) + + values.each do |v| + assert_raise(RuntimeError, "#{v} shouldn't be dumped, but dumped") \ + { m.dump_response(v) } + end + end + end + def test_no_params_tag # bug found by Idan Sofer |