[patch] remove Ruby bindings tests dependency on win32utils
From: Joe Swatosh <joe.swatosh_at_gmail.com>
Date: 2007-03-16 07:32:58 CET
Hi kou,
The patch is as the subject line.
Your fixes to fs are working here.
[[[
-- Joe Index: subversion/bindings/swig/ruby/test/windows_util.rb =================================================================== --- subversion/bindings/swig/ruby/test/windows_util.rb (revision 23864) +++ subversion/bindings/swig/ruby/test/windows_util.rb (working copy) @@ -3,52 +3,48 @@ module SvnTestUtil module Windows module Svnserve - begin - require 'win32/service' + SERVICE_NAME = 'test-svn-server' + + def first_pass? + @@first_pass = defined? @@first_pass + end - SERVICE_NAME = 'test-svn-server' + def service_control command, args={} + arg = args.inject( ''){|a,p| a << "#{p[0]}= \"#{p[1]}\" " } + the_command = "sc #{command} #{SERVICE_NAME} #{arg}" + `#{the_command}` + end - def setup_svnserve - @svnserve_port = @svnserve_ports.first - @repos_svnserve_uri = "svn://#{@svnserve_host}:#{@svnserve_port}" + def setup_svnserve + @svnserve_port = @svnserve_ports.first + @repos_svnserve_uri = "svn://#{@svnserve_host}:#{@svnserve_port}" - unless Win32::Service.exists?(SERVICE_NAME) - # Here we assume that svnserve is going available on the path when - # the service starts. So use "svnserve" unqualified. This isn't - # normally how I'd recommend installing a windows service, but for - # running these tests it is a significantly simplifying assumption. - # We can't even test for svnserve being on the path here because - # when the service starts, it'll be running as LocalSystem and the - # new process may actually have a different path than we have here. - - Win32::Service.new.create_service do |s| - s.service_name = SERVICE_NAME - root = @full_repos_path.tr('/','\\') - s.binary_path_name = "svnserve" - s.binary_path_name << " --service" - s.binary_path_name << " --root \"#{root}\"" - s.binary_path_name << " --listen-host #{@svnserve_host}" - s.binary_path_name << " --listen-port #{@svnserve_port}" - end.close - at_exit{Win32::Service.delete(SERVICE_NAME)} + if first_pass? + # Here we assume that svnserve is going available on the path when + # the service starts. So use "svnserve" unqualified. This isn't + # normally how I'd recommend installing a windows service, but for + # running these tests it is a significantly simplifying assumption. + # We can't even test for svnserve being on the path here because + # when the service starts, it'll be running as LocalSystem and the + # new process may actually have a different path than we have here. + # + # Start the service and just let it run to try to save some time. + root = @full_repos_path.tr('/','\\') + binary_path_name = "svnserve" + binary_path_name << " --service" + binary_path_name << " --root \"#{root}\"" + binary_path_name << " --listen-host #{@svnserve_host}" + binary_path_name << " --listen-port #{@svnserve_port}" + service_control 'create', 'binPath' => binary_path_name, 'DisplayName' => SERVICE_NAME + service_control 'start' + at_exit do + service_control 'stop' + service_control 'delete' end - - Win32::Service.start(SERVICE_NAME) end + end - def teardown_svnserve - Win32::Service.stop(SERVICE_NAME) rescue Win32::ServiceError - end - rescue LoadError - puts "Testing with file:// instead of svn://." - puts "Install win32-service to enable testing with svnserve." - - def setup_svnserve - @repos_svnserve_uri = @repos_uri - end - - def teardown_svnserve - end + def teardown_svnserve end def add_pre_revprop_change_hook --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org For additional commands, e-mail: dev-help@subversion.tigris.orgReceived on Fri Mar 16 07:33:12 2007 |
This is an archived mail posted to the Subversion Dev mailing list.
This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.