[pypy-dev] select/test_readable on Win32 blocks forever
Amaury Forgeot d'Arc
amauryfa at gmail.com
Thu Jul 5 15:28:21 CEST 2007
Hello Scott,
Scott Dial wrote:
> Greetings,
>
> I haven't figured this one out. As the subject says, test_readable for
> the select module gets stuck forever. If I trust the history of the bot,
> then it appeared somewhere after r44639 and before r44646. I've looked
> through the revisions and nothing jumped out at me.. happy hunting to
> someone more aware of the changes.
When I wrote these tests a few months ago, they passed on the two
windows machines where I ran them (Win2k + python2.5 behind a
firewall, and XP + python2.4 at home).
They still pass without problem (except for some network operations
forbidden by the firewall).
Is it possible that the bot runs in a restricted environment? What is
the configuration of this machine?
I suggest to run the following test function, either alone, or
somewhere in the test suite Could you put it near the top of
pypy/module/select/test/test_select.py ?
It has nothing to do with pypy, but repeats the same test at the python level.
# Sanity check of the standard Python interpreter
def test_CPython_select():
import thread, socket, select
sock = socket.socket()
try_ports = [1023] + range(20000, 30000, 437)
for port in try_ports:
print 'binding to port %d:' % (port,),
sockaddress = ('127.0.0.1', port)
try:
sock.bind(sockaddress)
print 'works'
break
except socket.error, e:
print e
else:
raise e
else:
assert False, "Could not create server"
sock.listen(1)
writeend = socket.socket()
thread.start_new_thread(writeend.connect, (sockaddress,))
readend, addr2 = sock.accept()
try:
iwtd, owtd, ewtd = select.select([readend], [], [], 0)
assert iwtd == owtd == ewtd == []
writeend.send('X')
iwtd, owtd, ewtd = select.select([readend], [], [])
assert iwtd == [readend]
assert owtd == ewtd == []
print "Test OK"
finally:
writeend.close()
readend.close()
--
Amaury Forgeot d'Arc
More information about the Pypy-dev
mailing list