I'm pretty sure these are wrong somewhere, but since I can't run `make test-all` I have nothing to compare against. Regardless, the design changes help. Switching to lazy accessors instead of creating these servers at file load time will help. Can I commit? I'd rather just get this in and clean up any breakage as reports come in. Index: test/drb/test_drbssl.rb =================================================================== --- test/drb/test_drbssl.rb (revision 27215) +++ test/drb/test_drbssl.rb (working copy) @@ -30,7 +30,11 @@ end uri = ARGV.shift if $0 == __FILE__ - @server = DRb::DRbServer.new(uri || 'drbssl://:0', self.manager, config) + + @server = nil + def self.server + @server = DRb::DRbServer.new(uri || 'drbssl://:0', self.manager, config) + end end class TestDRbSSLCore < Test::Unit::TestCase Index: test/drb/drbtest.rb =================================================================== --- test/drb/drbtest.rb (revision 27215) +++ test/drb/drbtest.rb (working copy) @@ -9,22 +9,27 @@ @@manager = DRb::ExtServManager.new @@ruby = Shellwords.escape(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_eval.rb).each do |nm| + %w(ut_drb.rb ut_array.rb ut_port.rb ut_large.rb ut_safe1.rb + ut_eval.rb).each do |nm| add_service_command(nm) end - @server = @@server = DRb::DRbServer.new('druby://localhost:0', @@manager, {}) - @@manager.uri = @@server.uri + def self.manager + @@manager.uri ||= server.uri @@manager end + def self.server - @server || @@server + @server ||= DRb::DRbServer.new('druby://localhost:0', @@manager, {}) + @server end + def self.ext_service(name) timeout(100, RuntimeError) do manager.service(name) Index: test/drb/test_drbunix.rb =================================================================== --- test/drb/test_drbunix.rb (revision 27215) +++ test/drb/test_drbunix.rb (working copy) @@ -13,8 +13,12 @@ add_service_command(nm) end - uri = ARGV.shift if $0 == __FILE__ - @server = DRb::DRbServer.new(uri || 'drbunix:', self.manager, {}) + URI = ARGV.shift if $0 == __FILE__ + + @server = nil + def self.server + @server ||= DRb::DRbServer.new(URI || 'drbunix:', self.manager, {}) + end end class TestDRbUNIXCore < Test::Unit::TestCase