diff options
Diffstat (limited to 'test/drb')
-rw-r--r-- | test/drb/drbtest.rb | 34 | ||||
-rw-r--r-- | test/drb/test_drb.rb | 3 | ||||
-rw-r--r-- | test/drb/test_drbssl.rb | 6 | ||||
-rw-r--r-- | test/drb/test_drbunix.rb | 6 |
4 files changed, 39 insertions, 10 deletions
diff --git a/test/drb/drbtest.rb b/test/drb/drbtest.rb index fe39a6e..b9285b5 100644 --- a/test/drb/drbtest.rb +++ b/test/drb/drbtest.rb @@ -11,7 +11,7 @@ class DRbService @@ruby += " -d" if $DEBUG def self.add_service_command(nm) dir = File.dirname(File.expand_path(__FILE__)) - DRb::ExtServManager.command[nm] = "#{@@ruby} \"#{dir}/#{nm}\"" + 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 ut_eq.rb).each do |nm| @@ -65,12 +65,24 @@ end module DRbCore def setup - @ext = DRbService.ext_service('ut_drb.rb') + @service_name = 'ut_drb.rb' + @ext = DRbService.ext_service(@service_name) @there = @ext.front end def teardown - @ext.stop_service if @ext + @ext.stop_service if defined?(@ext) && @ext + DRbService.manager.unregist(@service_name) + signal = /mswin|mingw/ =~ RUBY_PLATFORM ? :INT : :TERM + Thread.list.each {|th| + if th.respond_to?(:pid) && th[:drb_service] == @service_name + begin + Process.kill signal, th.pid + rescue Errno::ESRCH + end + th.join + end + } end def test_00_DRbObject @@ -271,12 +283,24 @@ end module DRbAry def setup - @ext = DRbService.ext_service('ut_array.rb') + @service_name = 'ut_array.rb' + @ext = DRbService.ext_service(@service_name) @there = @ext.front end def teardown - @ext.stop_service if @ext + @ext.stop_service if defined?(@ext) && @ext + DRbService.manager.unregist(@service_name) + signal = /mswin|mingw/ =~ RUBY_PLATFORM ? :INT : :TERM + Thread.list.each {|th| + if th.respond_to?(:pid) && th[:drb_service] == @service_name + begin + Process.kill signal, th.pid + rescue Errno::ESRCH + end + th.join + end + } end def test_01 diff --git a/test/drb/test_drb.rb b/test/drb/test_drb.rb index 8ab00ec..dc9a47d 100644 --- a/test/drb/test_drb.rb +++ b/test/drb/test_drb.rb @@ -202,7 +202,8 @@ end class TestDRbSafe1 < TestDRbAry def setup - @ext = DRbService.ext_service('ut_safe1.rb') + @service_name = 'ut_safe1.rb' + @ext = DRbService.ext_service(@service_name) @there = @ext.front end end diff --git a/test/drb/test_drbssl.rb b/test/drb/test_drbssl.rb index 8f6c4f2..6322434 100644 --- a/test/drb/test_drbssl.rb +++ b/test/drb/test_drbssl.rb @@ -36,7 +36,8 @@ end class TestDRbSSLCore < Test::Unit::TestCase include DRbCore def setup - @ext = DRbSSLService.ext_service('ut_drb_drbssl.rb') + @service_name = 'ut_drb_drbssl.rb' + @ext = DRbSSLService.ext_service(@service_name) @there = @ext.front end @@ -53,7 +54,8 @@ end class TestDRbSSLAry < Test::Unit::TestCase include DRbAry def setup - @ext = DRbSSLService.ext_service('ut_array_drbssl.rb') + @service_name = 'ut_array_drbssl.rb' + @ext = DRbSSLService.ext_service(@service_name) @there = @ext.front end end diff --git a/test/drb/test_drbunix.rb b/test/drb/test_drbunix.rb index 5b93f52..1fba033 100644 --- a/test/drb/test_drbunix.rb +++ b/test/drb/test_drbunix.rb @@ -20,7 +20,8 @@ end class TestDRbUNIXCore < Test::Unit::TestCase include DRbCore def setup - @ext = DRbUNIXService.ext_service('ut_drb_drbunix.rb') + @service_name = 'ut_drb_drbunix.rb' + @ext = DRbUNIXService.ext_service(@service_name) @there = @ext.front end @@ -37,7 +38,8 @@ end class TestDRbUNIXAry < Test::Unit::TestCase include DRbAry def setup - @ext = DRbUNIXService.ext_service('ut_array_drbunix.rb') + @service_name = 'ut_array_drbunix.rb' + @ext = DRbUNIXService.ext_service(@service_name) @there = @ext.front end end |