aboutsummaryrefslogtreecommitdiffstats
path: root/test/drb
diff options
context:
space:
mode:
authorJeremy Evans <code@jeremyevans.net>2019-10-14 09:00:42 -0700
committerJeremy Evans <code@jeremyevans.net>2019-10-16 12:51:13 -0700
commitd5744aff3a164c358f92ef9dc2cda5c7a7612d97 (patch)
tree1e8742a0dc5a9bc7113a8d854a1061dabd15b7e2 /test/drb
parent567e312d1f56c27ecb4fa20deac4311f05ee5507 (diff)
downloadruby-d5744aff3a164c358f92ef9dc2cda5c7a7612d97.tar.gz
Fix DRbServer#any_to_s
My previous fix in d0ed935d5bf8c3fce9800742a36e44fb7f63dda4 was not correct, as pointed out by cremno on GitHub. This simplifies things by just using Kernel#to_s. Also switch to bind_call(obj) instead of bind(obj).call for better performance.
Diffstat (limited to 'test/drb')
-rw-r--r--test/drb/test_drb.rb14
1 files changed, 14 insertions, 0 deletions
diff --git a/test/drb/test_drb.rb b/test/drb/test_drb.rb
index b4399573aa..15e40ac596 100644
--- a/test/drb/test_drb.rb
+++ b/test/drb/test_drb.rb
@@ -327,6 +327,20 @@ class TestBug4409 < Test::Unit::TestCase
end
end
+class TestDRbAnyToS < Test::Unit::TestCase
+ class BO < BasicObject
+ end
+
+ def test_any_to_s
+ server = DRb::DRbServer.new('druby://:0')
+ server.singleton_class.send(:public, :any_to_s)
+ assert_equal("foo:String", server.any_to_s("foo"))
+ assert_match(/\A#<DRbTests::TestDRbAnyToS::BO:0x[0-9a-f]+>\z/, server.any_to_s(BO.new))
+ server.stop_service
+ server.thread.join
+ end
+end
+
class TestDRbTCP < Test::Unit::TestCase
def test_immediate_close
server = DRb::DRbServer.new('druby://:0')