[Zodb-checkins] SVN: zdaemon/trunk/ Merge changes made from a wrong
project:
Tim Peters
tim.one at comcast.net
Mon Jan 24 10:56:19 EST 2005
Log message for revision 28926:
Merge changes made from a wrong project:
r28912 | tim_one | 2005-01-21 17:22:52 -0500 (Fri, 21 Jan 2005) | 17 lines
Changed paths:
M /Zope/trunk/lib/python/zdaemon/tests/testzdrun.py
Try to repair testRunIgnoresParentSignals.
Instead of poke-and-hope guessing at how long to wait
for the child process to start running, use send_action()
in a loop to ask about that more directly -- but don't
wait longer than a minute.
The test should run faster on most boxes now, but
take up to a minute on boxes that are bogged down for
whatever reason.
Note that this checkin is being made from a wrong place!
zdaemon isn't part of the Zope tree, it's stitched in
from the zdaemon repository. So this checkin has no
effect on zdaemon. It will need to be sideported later
if it turns out to fix the overnight test failures.
Changed:
_U zdaemon/trunk/
_U zdaemon/trunk/tests/
U zdaemon/trunk/tests/testzdrun.py
-=-
Property changes on: zdaemon/trunk
___________________________________________________________________
Name: svn:ignore
+ *so
*.pyc
build
Property changes on: zdaemon/trunk/tests
___________________________________________________________________
Name: svn:ignore
+ *so
*.pyc
build
Modified: zdaemon/trunk/tests/testzdrun.py
===================================================================
--- zdaemon/trunk/tests/testzdrun.py 2005-01-24 15:52:51 UTC (rev 28925)
+++ zdaemon/trunk/tests/testzdrun.py 2005-01-24 15:56:19 UTC (rev 28926)
@@ -224,15 +224,24 @@
sys.executable,
[sys.executable, os.path.join(self.here, 'parent.py')]
)
- time.sleep(2) # race condition possible here
+ # Wait for it to start, but no longer than a minute.
+ deadline = time.time() + 60
+ is_started = False
+ while time.time() < deadline:
+ response = send_action('status\n', zdrun_socket)
+ if response is None:
+ time.sleep(0.05)
+ else:
+ is_started = True
+ break
+ self.assert_(is_started, "spawned process failed to start in a minute")
+ # Kill it, and wait a little to ensure it's dead.
os.kill(zdctlpid, signal.SIGINT)
- try:
- response = send_action('status\n', zdrun_socket) or ''
- except socket.error, msg:
- response = ''
- params = response.split('\n')
- self.assert_(len(params) > 1, repr(response))
- # kill the process
+ time.sleep(0.25)
+ # Make sure the child is still responsive.
+ response = send_action('status\n', zdrun_socket)
+ self.assert_(response is not None and '\n' in response)
+ # Kill the process.
send_action('exit\n', zdrun_socket)
def testUmask(self):
More information about the Zodb-checkins
mailing list