From df078e82136de80a6ff2d30db97a7411c45d4085 Mon Sep 17 00:00:00 2001
From: Damien George <damien.p.george@gmail.com>
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 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
-- 
GitLab