diff options
| author | Damien George | 2017-11-23 10:45:12 +1100 |
|---|---|---|
| committer | Damien George | 2017-11-23 10:45:12 +1100 |
| commit | df078e82136de80a6ff2d30db97a7411c45d4085 (patch) | |
| tree | d94326ff2524cecfef1258775a9dc593eea6d0e7 | |
| parent | d5cf5f70fdefa793d3e1fee9a26f03a1dd8c1d1e (diff) | |
tests/net_hosted: Add test for socket connect() and poll() behaviour.
| -rw-r--r-- | tests/net_hosted/connect_poll.py | 32 | ||||
| -rw-r--r-- | tests/net_hosted/connect_poll.py.exp | 3 |
2 files changed, 35 insertions, 0 deletions
diff --git a/tests/net_hosted/connect_poll.py b/tests/net_hosted/connect_poll.py new file mode 100644 index 000000000..ece6aa0da --- /dev/null +++ b/tests/net_hosted/connect_poll.py @@ -0,0 +1,32 @@ +# 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__": + test(socket.getaddrinfo('micropython.org', 80)[0][-1]) diff --git a/tests/net_hosted/connect_poll.py.exp b/tests/net_hosted/connect_poll.py.exp new file mode 100644 index 000000000..cdf520e09 --- /dev/null +++ b/tests/net_hosted/connect_poll.py.exp @@ -0,0 +1,3 @@ +1 4 +1 +1 4 |
