summaryrefslogtreecommitdiff
path: root/test/soap
diff options
context:
space:
mode:
authornahi <nahi@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-10-31 16:50:27 +0000
committernahi <nahi@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-10-31 16:50:27 +0000
commit3f4d04564b979ddc74bcc6dc8c09491f3c96a4e6 (patch)
tree88bda0497bd74d7d865a52900124e46d8d40d7d6 /test/soap
parente6775cc1933ffcfa07235a1c030aad4ed88fa1bf (diff)
* lib/soap/mapping/factory.rb: mark marshalled basetype objects when
@allow_original_mapping is true. multi-referencing basetype node is prohibited in SOAP/1.1 encoding but soap4r's original ruby object mapping requires basetype to be marked to detect self referencing loop. e.g. o = 1; o.instance_eval { @iv = o } soap4r's original mapping is only used through soap/marshal API. * test/soap/marshal/test_marshal.rb: add tests for self referencing immutable objects. * test/soap/calc/test_calc_cgi.rb: fix test name. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4881 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/soap')
-rw-r--r--test/soap/calc/test_calc_cgi.rb2
-rw-r--r--test/soap/marshal/test_marshal.rb23
2 files changed, 23 insertions, 2 deletions
diff --git a/test/soap/calc/test_calc_cgi.rb b/test/soap/calc/test_calc_cgi.rb
index d1c85fe042..523379f302 100644
--- a/test/soap/calc/test_calc_cgi.rb
+++ b/test/soap/calc/test_calc_cgi.rb
@@ -57,7 +57,7 @@ class TestCalcCGI < Test::Unit::TestCase
@calc.reset_stream
end
- def test_calc
+ def test_calc_cgi
assert_equal(3, @calc.add(1, 2))
assert_equal(-1.1, @calc.sub(1.1, 2.2))
assert_equal(2.42, @calc.multi(1.1, 2.2))
diff --git a/test/soap/marshal/test_marshal.rb b/test/soap/marshal/test_marshal.rb
index cfdab39ab2..2763fa8bcf 100644
--- a/test/soap/marshal/test_marshal.rb
+++ b/test/soap/marshal/test_marshal.rb
@@ -20,7 +20,6 @@ module MarshalTestLib
end
def marshaltest(o1)
- #o1.instance_eval { remove_instance_variable '@v' if defined? @v }
str = encode(o1)
print str, "\n" if $DEBUG
o2 = decode(str)
@@ -174,6 +173,22 @@ module MarshalTestLib
marshal_equal(0x3fff_ffff)
end
+ def test_fixnum_ivar
+ o1 = 1
+ o1.instance_eval { @iv = 2 }
+ marshal_equal(o1) {|o| o.instance_eval { @iv }}
+ ensure
+ 1.instance_eval { remove_instance_variable("@iv") }
+ end
+
+ def test_fixnum_ivar_self
+ o1 = 1
+ o1.instance_eval { @iv = 1 }
+ marshal_equal(o1) {|o| o.instance_eval { @iv }}
+ ensure
+ 1.instance_eval { remove_instance_variable("@iv") }
+ end
+
def test_float
marshal_equal(-1.0)
marshal_equal(0.0)
@@ -193,6 +208,12 @@ module MarshalTestLib
marshal_equal(o1) {|o| o.instance_eval { @iv }}
end
+ def test_float_ivar_self
+ o1 = 5.5
+ o1.instance_eval { @iv = o1 }
+ marshal_equal(o1) {|o| o.instance_eval { @iv }}
+ end
+
def test_float_extend
o1 = 0.0/0.0
o1.extend(Mod1)