summaryrefslogtreecommitdiff
path: root/test/xmlrpc/test_marshal.rb
diff options
context:
space:
mode:
authornaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-04-22 02:50:45 +0000
committernaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-04-22 02:50:45 +0000
commitc853e2d86e4d074e773cf06b2d9ee6519fc95c15 (patch)
tree24e61c4e0903cdc7cc8d39196b2cbc77a387309d /test/xmlrpc/test_marshal.rb
parent33883ded8b9d9578c26bd3706acc185df8c1abc1 (diff)
* 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.rb17
1 files changed, 16 insertions, 1 deletions
diff --git a/test/xmlrpc/test_marshal.rb b/test/xmlrpc/test_marshal.rb
index 267b43e2e22..ca029d3b066 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