2017-11-22 18:45:12 -05:00
|
|
|
# test that socket.connect() has correct polling behaviour before, during and after
|
|
|
|
|
|
|
|
try:
|
|
|
|
import usocket as socket, uselect as select
|
|
|
|
except:
|
|
|
|
import socket, select
|
|
|
|
|
|
|
|
|
|
|
|
def test(peer_addr):
|
|
|
|
s = socket.socket()
|
|
|
|
poller = select.poll()
|
|
|
|
poller.register(s)
|
|
|
|
|
|
|
|
# test poll before connect
|
|
|
|
# note: CPython can return POLLHUP, so use the IN|OUT mask
|
|
|
|
p = poller.poll(0)
|
|
|
|
print(len(p), p[0][-1] & (select.POLLIN | select.POLLOUT))
|
|
|
|
|
|
|
|
s.connect(peer_addr)
|
|
|
|
|
|
|
|
# test poll during connection
|
|
|
|
print(len(poller.poll(0)))
|
|
|
|
|
|
|
|
# test poll after connection is established
|
|
|
|
p = poller.poll(1000)
|
|
|
|
print(len(p), p[0][-1])
|
|
|
|
|
|
|
|
s.close()
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
2021-03-15 09:57:36 -04:00
|
|
|
test(socket.getaddrinfo("micropython.org", 80)[0][-1])
|