
23 Jul
2004
23 Jul
'04
1:38 p.m.
Wait, wait, that causes *hangs*? That seems like a bad thing. It doesn't look like an obviously wrong thing to do to me. Do you know *why* it's hanging?
James
On Jul 23, 2004, at 2:06 AM, Andrew Bennetts wrote:
warner and I agree that this test wasn't testing any useful behaviours that anything could actually depend upon, and it causes far too many intermittent test failures (and even hangs!)
-class PausingProcessProtocol(protocol.ProcessProtocol):
- data = ""
- elapsed = None
- def connectionMade(self):
self.transport.pauseProducing()
self.transport.write("a")
reactor.callLater(2, self.transport.resumeProducing)
- def outReceived(self, d):
self.data += d
- def processEnded(self, reason):
self.data = self.data.lstrip("a")
if len(self.data) != 5:
self.elapsed = ValueError # XXX!
else:
self.elapsed = float(self.data)
[...]
- def testPausing(self):
exe = sys.executable
scriptPath = util.sibpath(__file__, "process_pausing.py")
p = PausingProcessProtocol()
reactor.spawnProcess(p, exe, [exe, "-u", scriptPath],
env=None)
while p.elapsed == None:
reactor.iterate(0.01)
self.failIfEqual(p.elapsed, ValueError, 'Child process wrote
garbage')
self.assert_(2.1 > p.elapsed > 1.5) # assert how long process
was paused