From df078e82136de80a6ff2d30db97a7411c45d4085 Mon Sep 17 00:00:00 2001 From: Damien George Date: Thu, 23 Nov 2017 10:45:12 +1100 Subject: [PATCH] tests/net_hosted: Add test for socket connect() and poll() behaviour. --- tests/net_hosted/connect_poll.py | 32 ++++++++++++++++++++++++++++ tests/net_hosted/connect_poll.py.exp | 3 +++ 2 files changed, 35 insertions(+) create mode 100644 tests/net_hosted/connect_poll.py create mode 100644 tests/net_hosted/connect_poll.py.exp diff --git a/tests/net_hosted/connect_poll.py b/tests/net_hosted/connect_poll.py new file mode 100644 index 0000000000..ece6aa0da9 --- /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 0000000000..cdf520e090 --- /dev/null +++ b/tests/net_hosted/connect_poll.py.exp @@ -0,0 +1,3 @@ +1 4 +1 +1 4