Author: ivan
Date: Fri May 17 12:06:21 2013
New Revision: 1483756
URL: http://svn.apache.org/r1483756
Log:
* win-tests.py
(Svnserve, Httpd): Popen.kill to stop daemon processes.
Modified:
subversion/trunk/win-tests.py
Modified: subversion/trunk/win-tests.py
URL:
http://svn.apache.org/viewvc/subversion/trunk/win-tests.py?rev=1483756&r1=1483755&r2=1483756&view=diff
==============================================================================
--- subversion/trunk/win-tests.py (original)
+++ subversion/trunk/win-tests.py Fri May 17 12:06:21 2013
@@ -396,7 +396,7 @@ class Svnserve:
self.path = os.path.join(abs_objdir,
'subversion', 'svnserve', self.name)
self.root = os.path.join(abs_builddir, CMDLINE_TEST_SCRIPT_NATIVE_PATH)
- self.proc_handle = None
+ self.proc = None
def __del__(self):
"Stop svnserve when the object is deleted"
@@ -414,26 +414,18 @@ class Svnserve:
else:
args = [self.name] + self.args
print('Starting %s %s' % (self.kind, self.name))
- try:
- import win32process
- import win32con
- args = ' '.join([self._quote(x) for x in args])
- self.proc_handle = (
- win32process.CreateProcess(self._quote(self.path), args,
- None, None, 0,
- win32con.CREATE_NEW_CONSOLE,
- None, None, win32process.STARTUPINFO()))[0]
- except ImportError:
- os.spawnv(os.P_NOWAIT, self.path, args)
+
+ self.proc = subprocess.Popen([self.path] + args[1:])
def stop(self):
- if self.proc_handle is not None:
+ if self.proc is not None:
try:
- import win32process
print('Stopping %s' % self.name)
- win32process.TerminateProcess(self.proc_handle, 0)
+ self.proc.poll();
+ if self.proc.returncode is None:
+ self.proc.kill();
return
- except ImportError:
+ except AttributeError:
pass
print('Svnserve.stop not implemented')
@@ -456,7 +448,7 @@ class Httpd:
self.bulkupdates_option = 'off'
self.service = service
- self.proc_handle = None
+ self.proc = None
self.path = os.path.join(self.httpd_dir, 'bin', self.name)
if short_circuit:
@@ -674,27 +666,18 @@ class Httpd:
"Start HTTPD as daemon"
print('Starting httpd as daemon')
print(self.httpd_args)
- try:
- import win32process
- import win32con
- args = ' '.join([self._quote(x) for x in self.httpd_args])
- self.proc_handle = (
- win32process.CreateProcess(self._quote(self.path), args,
- None, None, 0,
- win32con.CREATE_NEW_CONSOLE,
- None, None, win32process.STARTUPINFO()))[0]
- except ImportError:
- os.spawnv(os.P_NOWAIT, self.path, self.httpd_args)
+ self.proc = subprocess.Popen([self.path] + self.httpd_args[1:])
def _stop_daemon(self):
"Stop the HTTPD daemon"
- if self.proc_handle is not None:
+ if self.proc is not None:
try:
- import win32process
print('Stopping %s' % self.name)
- win32process.TerminateProcess(self.proc_handle, 0)
+ self.proc.poll();
+ if self.proc.returncode is None:
+ self.proc.kill();
return
- except ImportError:
+ except AttributeError:
pass
print('Httpd.stop_daemon not implemented')