summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/net_hosted/connect_poll.py32
-rw-r--r--tests/net_hosted/connect_poll.py.exp3
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