summaryrefslogtreecommitdiff
path: root/test/drb
diff options
context:
space:
mode:
Diffstat (limited to 'test/drb')
-rw-r--r--test/drb/drbtest.rb394
-rw-r--r--test/drb/ignore_test_drb.rb14
-rw-r--r--test/drb/test_acl.rb207
-rw-r--r--test/drb/test_drb.rb370
-rw-r--r--test/drb/test_drbobject.rb69
-rw-r--r--test/drb/test_drbssl.rb72
-rw-r--r--test/drb/test_drbunix.rb60
-rw-r--r--test/drb/ut_array.rb17
-rw-r--r--test/drb/ut_array_drbssl.rb39
-rw-r--r--test/drb/ut_array_drbunix.rb17
-rw-r--r--test/drb/ut_drb.rb189
-rw-r--r--test/drb/ut_drb_drbssl.rb40
-rw-r--r--test/drb/ut_drb_drbunix.rb18
-rw-r--r--test/drb/ut_eq.rb37
-rw-r--r--test/drb/ut_large.rb62
-rw-r--r--test/drb/ut_port.rb16
-rw-r--r--test/drb/ut_safe1.rb17
-rw-r--r--test/drb/ut_timerholder.rb74
18 files changed, 0 insertions, 1712 deletions
diff --git a/test/drb/drbtest.rb b/test/drb/drbtest.rb
deleted file mode 100644
index 3c33aedb6f..0000000000
--- a/test/drb/drbtest.rb
+++ /dev/null
@@ -1,394 +0,0 @@
-# frozen_string_literal: false
-require 'test/unit'
-require 'envutil'
-require 'drb/drb'
-require 'drb/extservm'
-require 'timeout'
-
-module DRbTests
-
-class DRbService
- @@ruby = [EnvUtil.rubybin]
- @@ruby << "-d" if $DEBUG
- def self.add_service_command(nm)
- dir = File.dirname(File.expand_path(__FILE__))
- DRb::ExtServManager.command[nm] = @@ruby + ["#{dir}/#{nm}"]
- end
-
- %w(ut_drb.rb ut_array.rb ut_port.rb ut_large.rb ut_safe1.rb ut_eq.rb).each do |nm|
- add_service_command(nm)
- end
-
- def initialize
- @manager = DRb::ExtServManager.new
- start
- @manager.uri = server.uri
- end
-
- def start
- @server = DRb::DRbServer.new('druby://localhost:0', manager, {})
- end
-
- attr_reader :manager
- attr_reader :server
-
- def ext_service(name)
- EnvUtil.timeout(100, RuntimeError) do
- manager.service(name)
- end
- end
-
- def finish
- server.instance_variable_get(:@grp).list.each {|th| th.join }
- server.stop_service
- manager.instance_variable_get(:@queue)&.push(nil)
- manager.instance_variable_get(:@thread)&.join
- DRb::DRbConn.stop_pool
- end
-end
-
-class Onecky
- include DRbUndumped
- def initialize(n)
- @num = n
- end
-
- def to_i
- @num.to_i
- end
-
- def sleep(n)
- Kernel.sleep(n)
- to_i
- end
-end
-
-class FailOnecky < Onecky
- class OneckyError < RuntimeError; end
- def to_i
- raise(OneckyError, @num.to_s)
- end
-end
-
-class XArray < Array
- def initialize(ary)
- ary.each do |x|
- self.push(x)
- end
- end
-end
-
-module DRbBase
- def setup
- @drb_service ||= DRbService.new
- end
-
- def setup_service(service_name)
- @service_name = service_name
- @ext = @drb_service.ext_service(@service_name)
- @there = @ext.front
- end
-
- def teardown
- @ext.stop_service if defined?(@ext) && @ext
- if defined?(@service_name) && @service_name
- @drb_service.manager.unregist(@service_name)
- while (@there&&@there.to_s rescue nil)
- # nop
- end
- signal = /mswin|mingw/ =~ RUBY_PLATFORM ? :KILL : :TERM
- Thread.list.each {|th|
- if th.respond_to?(:pid) && th[:drb_service] == @service_name
- 10.times do
- begin
- Process.kill signal, th.pid
- break
- rescue Errno::ESRCH
- break
- rescue Errno::EPERM # on Windows
- sleep 0.1
- retry
- end
- end
- th.join
- end
- }
- end
- @drb_service.finish
- DRb::DRbConn.stop_pool
- end
-end
-
-module DRbCore
- include DRbBase
-
- def test_00_DRbObject
- ro = DRbObject.new(nil, 'druby://localhost:12345')
- assert_equal('druby://localhost:12345', ro.__drburi)
- assert_equal(nil, ro.__drbref)
-
- ro = DRbObject.new_with_uri('druby://localhost:12345')
- assert_equal('druby://localhost:12345', ro.__drburi)
- assert_equal(nil, ro.__drbref)
-
- ro = DRbObject.new_with_uri('druby://localhost:12345?foobar')
- assert_equal('druby://localhost:12345', ro.__drburi)
- assert_equal(DRb::DRbURIOption.new('foobar'), ro.__drbref)
- end
-
- def test_01
- assert_equal("hello", @there.hello)
- onecky = Onecky.new('3')
- assert_equal(6, @there.sample(onecky, 1, 2))
- ary = @there.to_a
- assert_kind_of(DRb::DRbObject, ary)
-
- assert_respond_to(@there, [:to_a, true])
- assert_respond_to(@there, [:eval, true])
- assert_not_respond_to(@there, [:eval, false])
- assert_not_respond_to(@there, :eval)
- end
-
- def test_01_02_loop
- onecky = Onecky.new('3')
- 50.times do
- assert_equal(6, @there.sample(onecky, 1, 2))
- ary = @there.to_a
- assert_kind_of(DRb::DRbObject, ary)
- end
- end
-
- def test_02_basic_object
- obj = @there.basic_object
- assert_kind_of(DRb::DRbObject, obj)
- assert_equal(1, obj.foo)
- assert_raise(NoMethodError){obj.prot}
- assert_raise(NoMethodError){obj.priv}
- end
-
- def test_02_unknown
- obj = @there.unknown_class
- assert_kind_of(DRb::DRbUnknown, obj)
- assert_equal('DRbTests::Unknown2', obj.name)
-
- obj = @there.unknown_module
- assert_kind_of(DRb::DRbUnknown, obj)
- assert_equal('DRbTests::DRbEx::', obj.name)
-
- assert_raise(DRb::DRbUnknownError) do
- @there.unknown_error
- end
-
- onecky = FailOnecky.new('3')
-
- assert_raise(FailOnecky::OneckyError) do
- @there.sample(onecky, 1, 2)
- end
- end
-
- def test_03
- assert_equal(8, @there.sum(1, 1, 1, 1, 1, 1, 1, 1))
- assert_raise(DRb::DRbConnError) do
- @there.sum(1, 1, 1, 1, 1, 1, 1, 1, 1)
- end
- assert_raise(DRb::DRbConnError) do
- @there.sum('1' * 4096)
- end
- end
-
- def test_04
- assert_respond_to(@there, 'sum')
- assert_not_respond_to(@there, "foobar")
- end
-
- def test_05_eq
- a = @there.to_a[0]
- b = @there.to_a[0]
- assert_not_same(a, b)
- assert_equal(a, b)
- assert_equal(a, @there)
- assert_equal(a.hash, b.hash)
- assert_equal(a.hash, @there.hash)
- assert_operator(a, :eql?, b)
- assert_operator(a, :eql?, @there)
- end
-
- def test_06_timeout
- omit if RUBY_PLATFORM.include?("armv7l-linux")
- omit if RUBY_PLATFORM.include?("sparc-solaris2.10")
- omit if defined?(RubyVM::MJIT) && RubyVM::MJIT.enabled? # expecting a certain delay is difficult for --jit-wait CI
- Timeout.timeout(60) do
- ten = Onecky.new(10)
- assert_raise(Timeout::Error) do
- @there.do_timeout(ten)
- end
- assert_raise(Timeout::Error) do
- @there.do_timeout(ten)
- end
- end
- end
-
- def test_07_private_missing
- e = assert_raise(NoMethodError) {
- @there.method_missing(:eval, 'nil')
- }
- assert_match(/^private method \`eval\'/, e.message)
-
- e = assert_raise(NoMethodError) {
- @there.call_private_method
- }
- assert_match(/^private method \`call_private_method\'/, e.message)
- end
-
- def test_07_protected_missing
- e = assert_raise(NoMethodError) {
- @there.call_protected_method
- }
- assert_match(/^protected method \`call_protected_method\'/, e.message)
- end
-
- def test_07_public_missing
- e = assert_raise(NoMethodError) {
- @there.method_missing(:undefined_method_test)
- }
- assert_match(/^undefined method \`undefined_method_test\'/, e.message)
- end
-
- def test_07_send_missing
- assert_raise(DRb::DRbConnError) do
- @there.method_missing(:__send__, :to_s)
- end
- assert_equal(true, @there.missing)
- end
-
- def test_08_here
- ro = DRbObject.new(nil, DRb.uri)
- assert_kind_of(String, ro.to_s)
-
- ro = DRbObject.new_with_uri(DRb.uri)
- assert_kind_of(String, ro.to_s)
- end
-
- def uri_concat_option(uri, opt)
- "#{uri}?#{opt}"
- end
-
- def test_09_option
- uri = uri_concat_option(@there.__drburi, "foo")
- ro = DRbObject.new_with_uri(uri)
- assert_equal(ro.__drburi, @there.__drburi)
- assert_equal(3, ro.size)
-
- uri = uri_concat_option(@there.__drburi, "")
- ro = DRbObject.new_with_uri(uri)
- assert_equal(ro.__drburi, @there.__drburi)
- assert_equal(DRb::DRbURIOption.new(''), ro.__drbref)
-
- uri = uri_concat_option(@there.__drburi, "hello?world")
- ro = DRbObject.new_with_uri(uri)
- assert_equal(DRb::DRbURIOption.new('hello?world'), ro.__drbref)
-
- uri = uri_concat_option(@there.__drburi, "?hello?world")
- ro = DRbObject.new_with_uri(uri)
- assert_equal(DRb::DRbURIOption.new('?hello?world'), ro.__drbref)
- end
-
- def test_10_yield
- @there.simple_hash.each do |k, v|
- assert_kind_of(String, k)
- assert_kind_of(Symbol, v)
- end
- end
-
- def test_10_yield_undumped
- @there.xarray2_hash.each do |k, v|
- assert_kind_of(String, k)
- assert_kind_of(DRbObject, v)
- end
- end
-
- def test_11_remote_no_method_error
- assert_raise(DRb::DRbRemoteError) do
- @there.remote_no_method_error
- end
- begin
- @there.remote_no_method_error
- rescue
- error = $!
- assert_match(/^undefined method .*\(NoMethodError\)/, error.message)
- assert_equal('NoMethodError', error.reason)
- end
- end
-end
-
-module DRbAry
- include DRbBase
-
- def test_01
- assert_kind_of(DRb::DRbObject, @there)
- end
-
- def test_02_collect
- ary = @there.collect do |x| x + x end
- assert_kind_of(Array, ary)
- assert_equal([2, 4, 'IIIIII', 8, 'fivefive', 12], ary)
- end
-
- def test_03_redo
- ary = []
- count = 0
- @there.each do |x|
- count += 1
- ary.push x
- redo if count == 3
- end
- assert_equal([1, 2, 'III', 'III', 4, 'five', 6], ary)
- end
-
- # retry in block is not supported on ruby 1.9
- #def test_04_retry
- # retried = false
- # ary = []
- # @there.each do |x|
- # ary.push x
- # if x == 4 && !retried
- # retried = true
- # retry
- # end
- # end
- # assert_equal([1, 2, 'III', 4, 1, 2, 'III', 4, 'five', 6], ary)
- #end
-
- def test_05_break
- ary = []
- @there.each do |x|
- ary.push x
- break if x == 4
- end
- assert_equal([1, 2, 'III', 4], ary)
- end
-
- def test_06_next
- ary = []
- @there.each do |x|
- next if String === x
- ary.push x
- end
- assert_equal([1, 2, 4, 6], ary)
- end
-
- class_eval <<EOS
- def test_07_break_18
- ary = []
- result = @there.each do |x|
- ary.push x
- break(:done) if x == 4
- end
- assert_equal([1, 2, 'III', 4], ary)
- assert_equal(:done, result)
- end
-EOS
-
-end
-
-end
diff --git a/test/drb/ignore_test_drb.rb b/test/drb/ignore_test_drb.rb
deleted file mode 100644
index 996a554c0f..0000000000
--- a/test/drb/ignore_test_drb.rb
+++ /dev/null
@@ -1,14 +0,0 @@
-# frozen_string_literal: false
-require 'drbtest'
-
-module DRbTests
-
-class TestDRbReusePort < Test::Unit::TestCase
- include DRbAry
-
- def setup
- setup_service 'ut_port.rb'
- end
-end
-
-end
diff --git a/test/drb/test_acl.rb b/test/drb/test_acl.rb
deleted file mode 100644
index ea7b32e76f..0000000000
--- a/test/drb/test_acl.rb
+++ /dev/null
@@ -1,207 +0,0 @@
-# frozen_string_literal: false
-# acltest.rb - ACL unit test
-# Copyright (c) 2000 Masatoshi SEKI
-#
-# acltest.rb is copyrighted free software by Masatoshi SEKI.
-# You can redistribute it and/or modify it under the same terms as Ruby.
-
-require 'test/unit'
-require 'drb/acl'
-
-module DRbTests
-
-class SampleHosts
- def initialize
- list = %w(127.0.0.1 localhost
- 192.168.1.1 x68k.linux.or.jp
- 192.168.1.2 lc630.macos.or.jp
- 192.168.1.3 lib30.win32.or.jp
- 192.168.1.4 ns00.linux.or.jp
- 192.168.1.5 yum.macos.or.jp
- ::ffff:192.168.1.5 ipv6.macos.or.jp
- ::192.168.1.5 too.yumipv6.macos.or.jp
- 192.168.1.254 comstarz.foo.or.jp)
-
- @hostlist = Array.new(list.size / 2)
- @hostlist.each_index do |idx|
- @hostlist[idx] = ["AF_INET", 10000, list[idx * 2 + 1], list[idx * 2]]
- end
-
- @hosts = Hash.new
- @hostlist.each do |h|
- @hosts[h[2].split('.')[0]] = h
- end
- end
- attr_reader(:hostlist, :hosts)
-end
-
-
-class ACLEntryTest < Test::Unit::TestCase
- HOSTS = SampleHosts.new
-
- def setup
- @hostlist = HOSTS.hostlist
- @hosts = HOSTS.hosts
- end
-
- def test_all
- a = ACL::ACLEntry.new("*")
- b = ACL::ACLEntry.new("all")
- @hostlist.each do |h|
- assert_operator(a, :match, h)
- assert_operator(b, :match, h)
- end
- end
-
- def test_ip_v6
- a = ACL::ACLEntry.new('::ffff:192.0.0.0/104')
- assert_not_operator(a, :match, @hosts['localhost'])
- assert_operator(a, :match, @hosts['yum'])
- assert_operator(a, :match, @hosts['ipv6'])
- assert_not_operator(a, :match, @hosts['too'])
- end
-
- def test_ip
- a = ACL::ACLEntry.new('192.0.0.0/8')
- assert_not_operator(a, :match, @hosts['localhost'])
- assert_operator(a, :match, @hosts['yum'])
-
- a = ACL::ACLEntry.new('192.168.1.0/255.255.255.0')
- assert_not_operator(a, :match, @hosts['localhost'])
- assert_operator(a, :match, @hosts['yum'])
- assert_operator(a, :match, @hosts['x68k'])
-
- a = ACL::ACLEntry.new('192.168.1.0/24')
- assert_not_operator(a, :match, @hosts['localhost'])
- assert_operator(a, :match, @hosts['yum'])
- assert_operator(a, :match, @hosts['x68k'])
-
- a = ACL::ACLEntry.new('92.0.0.0/8')
- assert_not_operator(a, :match, @hosts['localhost'])
- assert_not_operator(a, :match, @hosts['yum'])
- assert_not_operator(a, :match, @hosts['x68k'])
-
- a = ACL::ACLEntry.new('127.0.0.0/255.0.0.0')
- assert_operator(a, :match, @hosts['localhost'])
- assert_not_operator(a, :match, @hosts['yum'])
- assert_not_operator(a, :match, @hosts['x68k'])
-
- assert_raise(IPAddr::InvalidPrefixError) {
- ACL::ACLEntry.new('192.168.0.0/33')
- }
- assert_raise(IPAddr::InvalidPrefixError) {
- ACL::ACLEntry.new('192.168.0.0/255.255.0.255')
- }
- end
-
- def test_name
- a = ACL::ACLEntry.new('*.jp')
- assert_not_operator(a, :match, @hosts['localhost'])
- assert_operator(a, :match, @hosts['yum'])
-
- a = ACL::ACLEntry.new('yum.*.jp')
- assert_operator(a, :match, @hosts['yum'])
- assert_not_operator(a, :match, @hosts['lc630'])
-
- a = ACL::ACLEntry.new('*.macos.or.jp')
- assert_operator(a, :match, @hosts['yum'])
- assert_operator(a, :match, @hosts['lc630'])
- assert_not_operator(a, :match, @hosts['lib30'])
- end
-end
-
-class ACLListTest < Test::Unit::TestCase
- HOSTS = SampleHosts.new
-
- def setup
- @hostlist = HOSTS.hostlist
- @hosts = HOSTS.hosts
- end
-
- private
- def build(list)
- acl= ACL::ACLList.new
- list.each do |s|
- acl.add s
- end
- acl
- end
-
- public
- def test_all_1
- a = build(%w(all))
- @hostlist.each do |h|
- assert_operator(a, :match, h)
- end
- end
-
- def test_all_2
- a = build(%w(localhost 127.0.0.0/8 yum.* *))
- @hostlist.each do |h|
- assert_operator(a, :match, h)
- end
- end
-
- def test_1
- a = build(%w(192.168.1.0/255.255.255.252 yum.*.jp))
- assert_operator(a, :match, @hosts['x68k'])
- assert_operator(a, :match, @hosts['lc630'])
- assert_operator(a, :match, @hosts['lib30'])
- assert_not_operator(a, :match, @hosts['ns00'])
- assert_operator(a, :match, @hosts['yum'])
- end
-
- def test_2
- a = build(%w(*.linux.or.jp))
- assert_not_operator(a, :match, @hosts['yum'])
- assert_operator(a, :match, @hosts['x68k'])
- assert_not_operator(a, :match, @hosts['lc630'])
- end
-end
-
-class ACLTest < Test::Unit::TestCase
- HOSTS = SampleHosts.new
-
- def setup
- @hostlist = HOSTS.hostlist
- @hosts = HOSTS.hosts
- end
-
- def test_0
- a = ACL.new
- @hostlist.each do |h|
- assert_operator(a, :allow_addr?, h)
- end
- end
-
- def test_not_0
- a = ACL.new([], ACL::ALLOW_DENY)
- @hostlist.each do |h|
- assert_not_operator(a, :allow_addr?, h)
- end
- end
-
- def test_1
- data = %w(deny all
- allow localhost
- allow x68k.*)
-
- a = ACL.new(data)
- assert_operator(a, :allow_addr?, @hosts['x68k'])
- assert_operator(a, :allow_addr?, @hosts['localhost'])
- assert_not_operator(a, :allow_addr?, @hosts['lc630'])
- end
-
- def test_not_1
- data = %w(deny 192.0.0.0/8
- allow localhost
- allow x68k.*)
-
- a = ACL.new(data, ACL::ALLOW_DENY)
- assert_not_operator(a, :allow_addr?, @hosts['x68k'])
- assert_operator(a, :allow_addr?, @hosts['localhost'])
- assert_not_operator(a, :allow_addr?, @hosts['lc630'])
- end
-end
-
-end
diff --git a/test/drb/test_drb.rb b/test/drb/test_drb.rb
deleted file mode 100644
index 1ee1b265d0..0000000000
--- a/test/drb/test_drb.rb
+++ /dev/null
@@ -1,370 +0,0 @@
-# frozen_string_literal: false
-require_relative 'drbtest'
-
-module DRbTests
-
-class TestDRbCore < Test::Unit::TestCase
- include DRbCore
-
- def setup
- super
- setup_service 'ut_drb.rb'
- end
-end
-
-module DRbYield
- include DRbBase
-
- def test_01_one
- @there.echo_yield_1([]) {|one|
- assert_equal([], one)
- }
-
- @there.echo_yield_1(1) {|one|
- assert_equal(1, one)
- }
-
- @there.echo_yield_1(nil) {|one|
- assert_equal(nil, one)
- }
- end
-
- def test_02_two
- @there.echo_yield_2([], []) {|one, two|
- assert_equal([], one)
- assert_equal([], two)
- }
-
- @there.echo_yield_2(1, 2) {|one, two|
- assert_equal(1, one)
- assert_equal(2, two)
- }
-
- @there.echo_yield_2(3, nil) {|one, two|
- assert_equal(3, one)
- assert_equal(nil, two)
- }
-
- @there.echo_yield_1([:key, :value]) {|one, two|
- assert_equal(:key, one)
- assert_equal(:value, two)
- }
- end
-
- def test_03_many
- @there.echo_yield_0 {|*s|
- assert_equal([], s)
- }
- @there.echo_yield(nil) {|*s|
- assert_equal([nil], s)
- }
- @there.echo_yield(1) {|*s|
- assert_equal([1], s)
- }
- @there.echo_yield(1, 2) {|*s|
- assert_equal([1, 2], s)
- }
- @there.echo_yield(1, 2, 3) {|*s|
- assert_equal([1, 2, 3], s)
- }
- @there.echo_yield([], []) {|*s|
- assert_equal([[], []], s)
- }
- @there.echo_yield([]) {|*s|
- assert_equal([[]], s) # !
- }
- end
-
- def test_04_many_to_one
- @there.echo_yield_0 {|*s|
- assert_equal([], s)
- }
- @there.echo_yield(nil) {|*s|
- assert_equal([nil], s)
- }
- @there.echo_yield(1) {|*s|
- assert_equal([1], s)
- }
- @there.echo_yield(1, 2) {|*s|
- assert_equal([1, 2], s)
- }
- @there.echo_yield(1, 2, 3) {|*s|
- assert_equal([1, 2, 3], s)
- }
- @there.echo_yield([], []) {|*s|
- assert_equal([[], []], s)
- }
- @there.echo_yield([]) {|*s|
- assert_equal([[]], s)
- }
- end
-
- def test_05_array_subclass
- @there.xarray_each {|x| assert_kind_of(XArray, x)}
- @there.xarray_each {|*x| assert_kind_of(XArray, x[0])}
- end
-end
-
-class TestDRbYield < Test::Unit::TestCase
- include DRbYield
-
- def setup
- super
- setup_service 'ut_drb.rb'
- end
-end
-
-class TestDRbRubyYield < Test::Unit::TestCase
- include DRbYield
-
- def setup
- @there = self
- super
- end
-
- def echo_yield(*arg)
- yield(*arg)
- end
-
- def echo_yield_0
- yield
- end
-
- def echo_yield_1(a)
- yield(a)
- end
-
- def echo_yield_2(a, b)
- yield(a, b)
- end
-
- def xarray_each
- xary = [XArray.new([0])]
- xary.each do |x|
- yield(x)
- end
- end
-
-end
-
-class TestDRbRuby18Yield < Test::Unit::TestCase
- include DRbYield
-
- class YieldTest18
- def echo_yield(*arg, &proc)
- proc.call(*arg)
- end
-
- def echo_yield_0(&proc)
- proc.call
- end
-
- def echo_yield_1(a, &proc)
- proc.call(a)
- end
-
- def echo_yield_2(a, b, &proc)
- proc.call(a, b)
- end
-
- def xarray_each(&proc)
- xary = [XArray.new([0])]
- xary.each(&proc)
- end
-
- end
-
- def setup
- @there = YieldTest18.new
- super
- end
-end
-
-class TestDRbAry < Test::Unit::TestCase
- include DRbAry
-
- def setup
- super
- setup_service 'ut_array.rb'
- end
-end
-
-class TestDRbMServer < Test::Unit::TestCase
- include DRbBase
-
- def setup
- super
- setup_service 'ut_drb.rb'
- @server = (1..3).collect do |n|
- DRb::DRbServer.new("druby://localhost:0", Onecky.new(n.to_s))
- end
- end
-
- def teardown
- @server.each do |s|
- s.stop_service
- end
- super
- end
-
- def test_01
- assert_equal(6, @there.sample(@server[0].front, @server[1].front, @server[2].front))
- end
-end
-
-class TestDRbSafe1 < Test::Unit::TestCase
- include DRbAry
- def setup
- super
- setup_service 'ut_safe1.rb'
- end
-end
-
-class TestDRbLarge < Test::Unit::TestCase
- include DRbBase
-
- def setup
- super
- setup_service 'ut_large.rb'
- end
-
- def test_01_large_ary
- ary = [2] * 10240
- assert_equal(10240, @there.size(ary))
- assert_equal(20480, @there.sum(ary))
- assert_equal(2 ** 10240, @there.multiply(ary))
- assert_equal(2, @there.avg(ary))
- assert_equal(2, @there.median(ary))
- end
-
- def test_02_large_ary
- ary = ["Hello, World"] * 10240
- assert_equal(10240, @there.size(ary))
- assert_equal(ary[0..ary.length].inject(:+), @there.sum(ary))
- assert_raise(TypeError) {@there.multiply(ary)}
- assert_raise(TypeError) {@there.avg(ary)}
- assert_raise(TypeError) {@there.median(ary)}
- end
-
- def test_03_large_ary
- ary = [Thread.current] * 10240
- assert_equal(10240, @there.size(ary))
- end
-
- def test_04_many_arg
- assert_raise(DRb::DRbConnError) {
- @there.arg_test(1, 2, 3, 4, 5, 6, 7, 8, 9, 0)
- }
- end
-
- def test_05_too_large_ary
- ary = ["Hello, World"] * 102400
- exception = nil
- begin
- @there.size(ary)
- rescue StandardError
- exception = $!
- end
- assert_kind_of(StandardError, exception)
- end
-
- def test_06_array_operations
- ary = [1,50,3,844,7,45,23]
- assert_equal(7, @there.size(ary))
- assert_equal(973, @there.sum(ary))
- assert_equal(917217000, @there.multiply(ary))
- assert_equal(139.0, @there.avg(ary))
- assert_equal(23.0, @there.median(ary))
-
- ary2 = [1,2,3,4]
- assert_equal(4, @there.size(ary2))
- assert_equal(10, @there.sum(ary2))
- assert_equal(24, @there.multiply(ary2))
- assert_equal(2.5, @there.avg(ary2))
- assert_equal(2.5, @there.median(ary2))
-
- end
-
- def test_07_one_element_array
- ary = [50]
- assert_equal(1, @there.size(ary))
- assert_equal(50, @there.sum(ary))
- assert_equal(50, @there.multiply(ary))
- assert_equal(50.0, @there.avg(ary))
- assert_equal(50.0, @there.median(ary))
- end
-
- def test_08_empty_array
- ary = []
- assert_equal(0, @there.size(ary))
- assert_equal(nil, @there.sum(ary))
- assert_equal(nil, @there.multiply(ary))
- assert_equal(nil, @there.avg(ary))
- assert_equal(nil, @there.median(ary))
- end
-end
-
-class TestBug4409 < Test::Unit::TestCase
- include DRbBase
-
- def setup
- super
- setup_service 'ut_eq.rb'
- end
-
- def test_bug4409
- foo = @there.foo
- assert_operator(@there, :foo?, foo)
- end
-end
-
-class TestDRbAnyToS < Test::Unit::TestCase
- class BO < BasicObject
- end
-
- def test_any_to_s
- server = DRb::DRbServer.new('druby://localhost: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
- DRb::DRbConn.stop_pool
- end
-end
-
-class TestDRbTCP < Test::Unit::TestCase
- def test_immediate_close
- server = DRb::DRbServer.new('druby://localhost:0')
- host, port, = DRb::DRbTCPSocket.send(:parse_uri, server.uri)
- socket = TCPSocket.open host, port
- socket.shutdown
- socket.close
- client = DRb::DRbTCPSocket.new(server.uri, socket)
- assert client
- ensure
- client&.close
- socket&.close
- server.stop_service
- server.thread.join
- DRb::DRbConn.stop_pool
- end
-end
-
-class TestBug16634 < Test::Unit::TestCase
- include DRbBase
-
- def setup
- super
- setup_service 'ut_drb.rb'
- end
-
- def test_bug16634
- assert_equal(42, @there.keyword_test1(a: 42))
- assert_equal("default", @there.keyword_test2)
- assert_equal(42, @there.keyword_test2(b: 42))
- assert_equal({:a=>42, :b=>42}, @there.keyword_test3(a: 42, b: 42))
- end
-end
-
-end
diff --git a/test/drb/test_drbobject.rb b/test/drb/test_drbobject.rb
deleted file mode 100644
index 2b0e2061ee..0000000000
--- a/test/drb/test_drbobject.rb
+++ /dev/null
@@ -1,69 +0,0 @@
-require 'test/unit'
-require 'drb'
-require 'drb/timeridconv'
-require 'drb/weakidconv'
-
-module DRbObjectTest
- class Foo
- def initialize
- @foo = 'foo'
- end
- end
-
- def teardown
- DRb.stop_service
- DRb::DRbConn.stop_pool
- end
-
- def drb_eq(obj)
- proxy = DRbObject.new(obj)
- assert_equal(obj, DRb.to_obj(proxy.__drbref))
- end
-
- def test_DRbObject_id_dereference
- drb_eq(Foo.new)
- drb_eq(Foo)
- drb_eq(File)
- drb_eq(Enumerable)
- drb_eq(nil)
- drb_eq(1)
- drb_eq($stdout)
- drb_eq([])
- end
-end
-
-class TestDRbObject < Test::Unit::TestCase
- include DRbObjectTest
-
- def setup
- DRb.start_service
- end
-end
-
-class TestDRbObjectTimerIdConv < Test::Unit::TestCase
- include DRbObjectTest
-
- def setup
- @idconv = DRb::TimerIdConv.new
- DRb.start_service(nil, nil, {:idconv => @idconv})
- end
-
- def teardown
- super
- # stop DRb::TimerIdConv::TimerHolder2#on_gc
- @idconv.instance_eval do
- @holder.instance_eval do
- @expires = nil
- end
- end
- GC.start
- end
-end
-
-class TestDRbObjectWeakIdConv < Test::Unit::TestCase
- include DRbObjectTest
-
- def setup
- DRb.start_service(nil, nil, {:idconv => DRb::WeakIdConv.new})
- end
-end
diff --git a/test/drb/test_drbssl.rb b/test/drb/test_drbssl.rb
deleted file mode 100644
index 0254c7ab50..0000000000
--- a/test/drb/test_drbssl.rb
+++ /dev/null
@@ -1,72 +0,0 @@
-# frozen_string_literal: false
-require_relative 'drbtest'
-
-begin
- require 'drb/ssl'
-rescue LoadError
-end
-
-module DRbTests
-
-if Object.const_defined?("OpenSSL")
-
-
-class DRbSSLService < DRbService
- %w(ut_drb_drbssl.rb ut_array_drbssl.rb).each do |nm|
- add_service_command(nm)
- end
-
- def start
- config = Hash.new
-
- config[:SSLVerifyMode] = OpenSSL::SSL::VERIFY_PEER
- config[:SSLVerifyCallback] = lambda{ |ok,x509_store|
- true
- }
- begin
- data = open("sample.key"){|io| io.read }
- config[:SSLPrivateKey] = OpenSSL::PKey::RSA.new(data)
- data = open("sample.crt"){|io| io.read }
- config[:SSLCertificate] = OpenSSL::X509::Certificate.new(data)
- rescue
- # $stderr.puts "Switching to use self-signed certificate"
- config[:SSLCertName] =
- [ ["C","JP"], ["O","Foo.DRuby.Org"], ["CN", "Sample"] ]
- end
-
- @server = DRb::DRbServer.new('drbssl://localhost:0', manager, config)
- end
-end
-
-class TestDRbSSLCore < Test::Unit::TestCase
- include DRbCore
- def setup
- @drb_service = DRbSSLService.new
- super
- setup_service 'ut_drb_drbssl.rb'
- end
-
- def test_02_unknown
- end
-
- def test_01_02_loop
- end
-
- def test_05_eq
- end
-end
-
-class TestDRbSSLAry < Test::Unit::TestCase
- include DRbAry
- def setup
- LeakChecker.skip if defined?(LeakChecker)
- @drb_service = DRbSSLService.new
- super
- setup_service 'ut_array_drbssl.rb'
- end
-end
-
-
-end
-
-end
diff --git a/test/drb/test_drbunix.rb b/test/drb/test_drbunix.rb
deleted file mode 100644
index 95b3c3ca91..0000000000
--- a/test/drb/test_drbunix.rb
+++ /dev/null
@@ -1,60 +0,0 @@
-# frozen_string_literal: false
-require_relative 'drbtest'
-
-begin
- require 'drb/unix'
-rescue LoadError
-end
-
-module DRbTests
-
-if Object.const_defined?("UNIXServer")
-
-
-class DRbUNIXService < DRbService
- %w(ut_drb_drbunix.rb ut_array_drbunix.rb).each do |nm|
- add_service_command(nm)
- end
-
- def start
- @server = DRb::DRbServer.new('drbunix:', manager, {})
- end
-end
-
-class TestDRbUNIXCore < Test::Unit::TestCase
- include DRbCore
- def setup
- @drb_service = DRbUNIXService.new
- super
- setup_service 'ut_drb_drbunix.rb'
- end
-
- def test_02_unknown
- end
-
- def test_01_02_loop
- end
-
- def test_05_eq
- end
-
- def test_bad_uri
- assert_raise(DRb::DRbBadURI) do
- DRb::DRbServer.new("badfile\n""drbunix:")
- end
- end
-end
-
-class TestDRbUNIXAry < Test::Unit::TestCase
- include DRbAry
- def setup
- @drb_service = DRbUNIXService.new
- super
- setup_service 'ut_array_drbunix.rb'
- end
-end
-
-
-end
-
-end
diff --git a/test/drb/ut_array.rb b/test/drb/ut_array.rb
deleted file mode 100644
index d13dda3d8e..0000000000
--- a/test/drb/ut_array.rb
+++ /dev/null
@@ -1,17 +0,0 @@
-# frozen_string_literal: false
-require 'drb/drb'
-require 'drb/extserv'
-
-if __FILE__ == $0
- def ARGV.shift
- it = super()
- raise "usage: #{$0} <uri> <name>" unless it
- it
- end
-
- DRb.start_service('druby://localhost:0', [1, 2, 'III', 4, "five", 6])
- es = DRb::ExtServ.new(ARGV.shift, ARGV.shift)
- DRb.thread.join
- es.stop_service if es.alive?
-end
-
diff --git a/test/drb/ut_array_drbssl.rb b/test/drb/ut_array_drbssl.rb
deleted file mode 100644
index 5938d9ff3d..0000000000
--- a/test/drb/ut_array_drbssl.rb
+++ /dev/null
@@ -1,39 +0,0 @@
-# frozen_string_literal: false
-require 'drb/drb'
-require 'drb/extserv'
-require 'drb/ssl'
-
-if __FILE__ == $0
- def ARGV.shift
- it = super()
- raise "usage: #{$0} <uri> <name>" unless it
- it
- end
-
- module DRbTests
-
- TEST_KEY_DH1024 = OpenSSL::PKey::DH.new <<-_end_of_pem_
------BEGIN DH PARAMETERS-----
-MIGHAoGBAKnKQ8MNK6nYZzLrrcuTsLxuiJGXoOO5gT+tljOTbHBuiktdMTITzIY0
-pFxIvjG05D7HoBZQfrR0c92NGWPkAiCkhQKB8JCbPVzwNLDy6DZ0pmofDKrEsYHG
-AQjjxMXhwULlmuR/K+WwlaZPiLIBYalLAZQ7ZbOPeVkJ8ePao0eLAgEC
------END DH PARAMETERS-----
- _end_of_pem_
-
- end
-
- config = Hash.new
- config[:SSLTmpDhCallback] = proc { DRbTests::TEST_KEY_DH1024 }
- config[:SSLVerifyMode] = OpenSSL::SSL::VERIFY_PEER
- config[:SSLVerifyCallback] = lambda{|ok,x509_store|
- true
- }
- config[:SSLCertName] =
- [ ["C","JP"], ["O","Foo.DRuby.Org"], ["CN", "Sample"] ]
-
- DRb.start_service('drbssl://localhost:0', [1, 2, 'III', 4, "five", 6], config)
- es = DRb::ExtServ.new(ARGV.shift, ARGV.shift)
- DRb.thread.join
- es.stop_service if es.alive?
-end
-
diff --git a/test/drb/ut_array_drbunix.rb b/test/drb/ut_array_drbunix.rb
deleted file mode 100644
index b656cdaddd..0000000000
--- a/test/drb/ut_array_drbunix.rb
+++ /dev/null
@@ -1,17 +0,0 @@
-# frozen_string_literal: false
-require 'drb/drb'
-require 'drb/extserv'
-
-if __FILE__ == $0
- def ARGV.shift
- it = super()
- raise "usage: #{$0} <uri> <name>" unless it
- it
- end
-
- DRb.start_service('drbunix:', [1, 2, 'III', 4, "five", 6])
- es = DRb::ExtServ.new(ARGV.shift, ARGV.shift)
- DRb.thread.join
- es.stop_service if es.alive?
-end
-
diff --git a/test/drb/ut_drb.rb b/test/drb/ut_drb.rb
deleted file mode 100644
index 7c0603b009..0000000000
--- a/test/drb/ut_drb.rb
+++ /dev/null
@@ -1,189 +0,0 @@
-# frozen_string_literal: false
-require 'drb/drb'
-require 'drb/extserv'
-require 'timeout'
-
-module DRbTests
-
-class XArray < Array
- def initialize(ary)
- ary.each do |x|
- self.push(x)
- end
- end
-end
-
-class XArray2 < XArray
- include DRbUndumped
-end
-
-class Unknown2
- def initialize
- @foo = 'unknown2'
- end
-end
-
-class DRbEx
- include DRbUndumped
-
- class FooBar
- def initialize
- @foo = 'bar'
- end
- end
-
- class UError < RuntimeError; end
-
- def initialize
- @xary2_hash = nil
- @hash = nil
- @hello = 'hello'
- end
- attr_reader :hello
-
- def sample(a, b, c)
- a.to_i + b.to_i + c.to_i
- end
-
- def sum(*a)
- s = 0
- a.each do |e|
- s += e.to_i
- end
- s
- end
-
- def do_timeout(n)
- Timeout.timeout(0.1) do
- n.sleep(2)
- end
- end
-
- def unknown_module
- FooBar.new
- end
-
- class BO < ::BasicObject
- def foo; 1 end
- protected def prot; 2; end
- private def priv; 3; end
- end
- def basic_object
- @basic_object = BO.new
- end
-
- def unknown_class
- Unknown2.new
- end
-
- def unknown_error
- raise UError
- end
-
- def remote_no_method_error
- invoke_no_method(self)
- end
-
- def test_yield
- yield
- yield([])
- yield(*[])
- end
-
- def echo_yield(*arg)
- yield(*arg)
- nil
- end
-
- def echo_yield_0
- yield
- nil
- end
-
- def echo_yield_1(one)
- yield(one)
- nil
- end
-
- def echo_yield_2(one, two)
- yield(one, two)
- nil
- end
-
- def xarray_each
- xary = [XArray.new([0])]
- xary.each do |x|
- yield(x)
- end
- nil
- end
-
- def xarray2_hash
- unless @xary2_hash
- @xary2_hash = { "a" => XArray2.new([0]), "b" => XArray2.new([1]) }
- end
- DRbObject.new(@xary2_hash)
- end
-
- def simple_hash
- unless @hash
- @hash = { 'a'=>:a, 'b'=>:b }
- end
- DRbObject.new(@hash)
- end
-
- def [](key)
- key.to_s
- end
-
- def to_a
- [self]
- end
-
- def method_missing(msg, *a, &b)
- if msg == :missing
- return true
- else
- super(msg, *a, &b)
- end
- end
-
- def keyword_test1(a:)
- a
- end
-
- def keyword_test2(b: "default")
- b
- end
-
- def keyword_test3(**opt)
- opt
- end
-
- private
- def call_private_method
- true
- end
-
- protected
- def call_protected_method
- true
- end
-end
-
-end
-
-if __FILE__ == $0
- def ARGV.shift
- it = super()
- raise "usage: #{$0} <manager-uri> <name>" unless it
- it
- end
-
- DRb::DRbServer.default_argc_limit(8)
- DRb::DRbServer.default_load_limit(4096)
- DRb.start_service('druby://localhost:0', DRbTests::DRbEx.new)
- es = DRb::ExtServ.new(ARGV.shift, ARGV.shift)
- DRb.thread.join
- es.stop_service if es.alive?
-end
diff --git a/test/drb/ut_drb_drbssl.rb b/test/drb/ut_drb_drbssl.rb
deleted file mode 100644
index c8251716d6..0000000000
--- a/test/drb/ut_drb_drbssl.rb
+++ /dev/null
@@ -1,40 +0,0 @@
-# frozen_string_literal: false
-require_relative "ut_drb"
-require 'drb/ssl'
-
-if __FILE__ == $0
- def ARGV.shift
- it = super()
- raise "usage: #{$0} <manager-uri> <name>" unless it
- it
- end
-
- module DRbTests
-
- TEST_KEY_DH1024 = OpenSSL::PKey::DH.new <<-_end_of_pem_
------BEGIN DH PARAMETERS-----
-MIGHAoGBAKnKQ8MNK6nYZzLrrcuTsLxuiJGXoOO5gT+tljOTbHBuiktdMTITzIY0
-pFxIvjG05D7HoBZQfrR0c92NGWPkAiCkhQKB8JCbPVzwNLDy6DZ0pmofDKrEsYHG
-AQjjxMXhwULlmuR/K+WwlaZPiLIBYalLAZQ7ZbOPeVkJ8ePao0eLAgEC
------END DH PARAMETERS-----
- _end_of_pem_
-
- end
-
- config = Hash.new
- config[:SSLTmpDhCallback] = proc { DRbTests::TEST_KEY_DH1024 }
- config[:SSLVerifyMode] = OpenSSL::SSL::VERIFY_PEER
- config[:SSLVerifyCallback] = lambda{|ok,x509_store|
- true
- }
- config[:SSLCertName] =
- [ ["C","JP"], ["O","Foo.DRuby.Org"], ["CN", "Sample"] ]
-
- DRb::DRbServer.default_argc_limit(8)
- DRb::DRbServer.default_load_limit(4096)
- DRb.start_service('drbssl://localhost:0', DRbTests::DRbEx.new, config)
- es = DRb::ExtServ.new(ARGV.shift, ARGV.shift)
- DRb.thread.join
- es.stop_service if es.alive?
-end
-
diff --git a/test/drb/ut_drb_drbunix.rb b/test/drb/ut_drb_drbunix.rb
deleted file mode 100644
index ecf0920451..0000000000
--- a/test/drb/ut_drb_drbunix.rb
+++ /dev/null
@@ -1,18 +0,0 @@
-# frozen_string_literal: false
-require "#{File.dirname(File.expand_path(__FILE__))}/ut_drb"
-
-if __FILE__ == $0
- def ARGV.shift
- it = super()
- raise "usage: #{$0} <manager-uri> <name>" unless it
- it
- end
-
- DRb::DRbServer.default_argc_limit(8)
- DRb::DRbServer.default_load_limit(4096)
- DRb.start_service('drbunix:', DRbTests::DRbEx.new)
- es = DRb::ExtServ.new(ARGV.shift, ARGV.shift)
- DRb.thread.join
- es.stop_service if es.alive?
-end
-
diff --git a/test/drb/ut_eq.rb b/test/drb/ut_eq.rb
deleted file mode 100644
index 56285a384f..0000000000
--- a/test/drb/ut_eq.rb
+++ /dev/null
@@ -1,37 +0,0 @@
-# frozen_string_literal: false
-require 'drb/drb'
-require 'drb/extserv'
-
-module DRbTests
-
-class Foo
- include DRbUndumped
-end
-
-class Bar
- include DRbUndumped
- def initialize
- @foo = Foo.new
- end
- attr_reader :foo
-
- def foo?(foo)
- @foo == foo
- end
-end
-
-end
-
-if __FILE__ == $0
- def ARGV.shift
- it = super()
- raise "usage: #{$0} <uri> <name>" unless it
- it
- end
-
- DRb.start_service('druby://localhost:0', DRbTests::Bar.new)
- es = DRb::ExtServ.new(ARGV.shift, ARGV.shift)
- DRb.thread.join
- es.stop_service if es.alive?
-end
-
diff --git a/test/drb/ut_large.rb b/test/drb/ut_large.rb
deleted file mode 100644
index 9376ff119d..0000000000
--- a/test/drb/ut_large.rb
+++ /dev/null
@@ -1,62 +0,0 @@
-# frozen_string_literal: false
-require 'drb/drb'
-require 'drb/extserv'
-require 'timeout'
-
-module DRbTests
-
-class DRbLarge
- include DRbUndumped
-
- def size(ary)
- ary.size
- end
-
- def sum(ary)
- ary.inject(:+)
- end
-
- def multiply(ary)
- ary.inject(:*)
- end
-
- def avg(ary)
- return if ary.empty?
- if ary.any? {|n| n.is_a? String}
- raise TypeError
- else
- sum(ary).to_f / ary.count
- end
- end
-
- def median(ary)
- return if ary.empty?
- if ary.any? {|n| n.is_a? String}
- raise TypeError
- else
- avg ary.sort[((ary.length - 1) / 2)..(ary.length / 2)]
- end
- end
-
- def arg_test(*arg)
- # nop
- end
-end
-
-end
-
-if __FILE__ == $0
- def ARGV.shift
- it = super()
- raise "usage: #{$0} <manager-uri> <name>" unless it
- it
- end
-
- DRb::DRbServer.default_argc_limit(3)
- DRb::DRbServer.default_load_limit(100000)
- DRb.start_service('druby://localhost:0', DRbTests::DRbLarge.new)
- es = DRb::ExtServ.new(ARGV.shift, ARGV.shift)
- DRb.thread.join
- es.stop_service if es.alive?
-end
-
diff --git a/test/drb/ut_port.rb b/test/drb/ut_port.rb
deleted file mode 100644
index d317a307cc..0000000000
--- a/test/drb/ut_port.rb
+++ /dev/null
@@ -1,16 +0,0 @@
-# frozen_string_literal: false
-require 'drb/drb'
-require 'drb/extserv'
-
-if __FILE__ == $0
- def ARGV.shift
- it = super()
- raise "usage: #{$0} <uri> <name>" unless it
- it
- end
-
- DRb.start_service('druby://:8473', [1, 2, 'III', 4, "five", 6])
- es = DRb::ExtServ.new(ARGV.shift, ARGV.shift)
- DRb.thread.join
- es.stop_service if es.alive?
-end
diff --git a/test/drb/ut_safe1.rb b/test/drb/ut_safe1.rb
deleted file mode 100644
index 4b16fa7d6d..0000000000
--- a/test/drb/ut_safe1.rb
+++ /dev/null
@@ -1,17 +0,0 @@
-# frozen_string_literal: false
-require 'drb/drb'
-require 'drb/extserv'
-
-if __FILE__ == $0
- def ARGV.shift
- it = super()
- raise "usage: #{$0} <uri> <name>" unless it
- it
- end
-
- DRb.start_service('druby://localhost:0', [1, 2, 'III', 4, "five", 6],
- {:safe_level => 1})
- es = DRb::ExtServ.new(ARGV.shift, ARGV.shift)
- DRb.thread.join
- es.stop_service if es.alive?
-end
diff --git a/test/drb/ut_timerholder.rb b/test/drb/ut_timerholder.rb
deleted file mode 100644
index 1753b30c74..0000000000
--- a/test/drb/ut_timerholder.rb
+++ /dev/null
@@ -1,74 +0,0 @@
-# frozen_string_literal: false
-require 'test/unit'
-require 'drb/timeridconv'
-
-module DRbTests
-
-class TimerIdConvTest < Test::Unit::TestCase
- def test_usecase_01
- keeping = 0.1
- idconv = DRb::TimerIdConv.new(keeping)
-
- key = idconv.to_id(self)
- assert_equal(key, self.__id__)
- sleep(keeping)
- assert_equal(idconv.to_id(false), false.__id__)
- assert_equal(idconv.to_obj(key), self)
- sleep(keeping)
-
- assert_equal(idconv.to_obj(key), self)
- sleep(keeping)
-
- assert_equal(idconv.to_id(true), true.__id__)
- sleep(keeping)
-
- assert_raise do
- assert_equal(idconv.to_obj(key), self)
- end
-
- assert_raise do
- assert_equal(idconv.to_obj(false.__id__), false)
- end
-
- key = idconv.to_id(self)
- assert_equal(key, self.__id__)
- assert_equal(idconv.to_id(true), true.__id__)
- sleep(keeping)
- GC.start
- sleep(keeping)
- GC.start
- assert_raise do
- assert_equal(idconv.to_obj(key), self)
- end
- end
-
- def test_usecase_02
- keeping = 0.1
- idconv = DRb::TimerIdConv.new(keeping)
-
- key = idconv.to_id(self)
- assert_equal(key, self.__id__)
- sleep(keeping)
- GC.start
- sleep(keeping)
- GC.start
- assert_raise do
- assert_equal(idconv.to_obj(key), self)
- end
- GC.start
-
- key = idconv.to_id(self)
- assert_equal(key, self.__id__)
- sleep(keeping)
- GC.start
- sleep(keeping)
- GC.start
- assert_raise do
- assert_equal(idconv.to_obj(key), self)
- end
- end
-end
-
-
-end
-