diff options
Diffstat (limited to 'test/drb')
-rw-r--r-- | test/drb/drbtest.rb | 396 | ||||
-rw-r--r-- | test/drb/ignore_test_drb.rb | 14 | ||||
-rw-r--r-- | test/drb/test_acl.rb | 207 | ||||
-rw-r--r-- | test/drb/test_drb.rb | 371 | ||||
-rw-r--r-- | test/drb/test_drbobject.rb | 69 | ||||
-rw-r--r-- | test/drb/test_drbssl.rb | 84 | ||||
-rw-r--r-- | test/drb/test_drbunix.rb | 60 | ||||
-rw-r--r-- | test/drb/ut_array.rb | 17 | ||||
-rw-r--r-- | test/drb/ut_array_drbssl.rb | 43 | ||||
-rw-r--r-- | test/drb/ut_array_drbunix.rb | 17 | ||||
-rw-r--r-- | test/drb/ut_drb.rb | 189 | ||||
-rw-r--r-- | test/drb/ut_drb_drbssl.rb | 40 | ||||
-rw-r--r-- | test/drb/ut_drb_drbunix.rb | 18 | ||||
-rw-r--r-- | test/drb/ut_eq.rb | 37 | ||||
-rw-r--r-- | test/drb/ut_large.rb | 62 | ||||
-rw-r--r-- | test/drb/ut_port.rb | 16 | ||||
-rw-r--r-- | test/drb/ut_safe1.rb | 17 | ||||
-rw-r--r-- | test/drb/ut_timerholder.rb | 74 |
18 files changed, 0 insertions, 1731 deletions
diff --git a/test/drb/drbtest.rb b/test/drb/drbtest.rb deleted file mode 100644 index 72220f32ef..0000000000 --- a/test/drb/drbtest.rb +++ /dev/null @@ -1,396 +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 - return if @omitted - @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 RUBY_PLATFORM.include?("freebsd") - omit if defined?(RubyVM::RJIT) && RubyVM::RJIT.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 11e2219bad..0000000000 --- a/test/drb/test_drb.rb +++ /dev/null @@ -1,371 +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 - omit 'MinGW leaks a thread in this test' if /mingw/ =~ RUBY_PLATFORM - 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 f2d9a20271..0000000000 --- a/test/drb/test_drbssl.rb +++ /dev/null @@ -1,84 +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 - } - if RUBY_PLATFORM.match?(/openbsd/) - config[:SSLMinVersion] = OpenSSL::SSL::TLS1_2_VERSION - config[:SSLMaxVersion] = OpenSSL::SSL::TLS1_2_VERSION - end - 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 - if RUBY_PLATFORM.match?(/mswin|mingw/) - @omitted = true - omit 'This test seems to randomly hang on Windows' - end - @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 - if RUBY_PLATFORM.match?(/mswin|mingw/) - @omitted = true - omit 'This test seems to randomly hang on Windows' - end - 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 778021a0b5..0000000000 --- a/test/drb/ut_array_drbssl.rb +++ /dev/null @@ -1,43 +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 } - if RUBY_PLATFORM.match?(/openbsd/) - config[:SSLMinVersion] = OpenSSL::SSL::TLS1_2_VERSION - config[:SSLMaxVersion] = OpenSSL::SSL::TLS1_2_VERSION - end - 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 - |