summaryrefslogtreecommitdiff
path: root/test/drb
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-04-22 11:35:03 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-04-22 11:35:03 +0000
commite16e961bab2c4f8ae66c2b19f638c63a48f19ae4 (patch)
treed3f2b1afeb53f0d343020002b8de9da20c561d0f /test/drb
parentf46ffca1c766cdb20dabb27e9bbe60a124e28bcd (diff)
* lib/drb/extservm.rb (DRb::ExtServManager): don't use /bin/sh to
invoke service subprocess. mark detach threads for clean up. * test/drb/drbtest.rb: clean up the service subprocess in teardown. * test/drb/test_drb.rb: set @service_name for teardown. * test/drb/test_drbunix.rb: ditto. * test/drb/test_drbssl.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35424 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/drb')
-rw-r--r--test/drb/drbtest.rb26
-rw-r--r--test/drb/test_drb.rb3
-rw-r--r--test/drb/test_drbssl.rb6
-rw-r--r--test/drb/test_drbunix.rb6
4 files changed, 31 insertions, 10 deletions
diff --git a/test/drb/drbtest.rb b/test/drb/drbtest.rb
index fe39a6e5b8..83ae2f93f5 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,20 @@ 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)
+ Thread.list.each {|th|
+ if th.respond_to?(:pid) && th[:drb_service] == @service_name
+ Process.kill :TERM, th.pid
+ th.join
+ end
+ }
end
def test_00_DRbObject
@@ -271,12 +279,20 @@ 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)
+ Thread.list.each {|th|
+ if th.respond_to?(:pid) && th[:drb_service] == @service_name
+ Process.kill :TERM, th.pid
+ th.join
+ end
+ }
end
def test_01
diff --git a/test/drb/test_drb.rb b/test/drb/test_drb.rb
index 8ab00ec2a0..dc9a47d221 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 8f6c4f2341..6322434eaa 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 5b93f52d2c..1fba033aca 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