summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2017-06-21 12:25:10 +1000
committerDamien George <damien.p.george@gmail.com>2017-06-21 12:25:10 +1000
commit458cbacb8f62ad0f33024360af61fb797530c65b (patch)
tree2d1442f0e87b9497f9ffda1504d103963e03a8b7
parent4caa27ae0ec92af59ddacf57dd7fd43fcdd64c69 (diff)
downloadmicropython-458cbacb8f62ad0f33024360af61fb797530c65b.tar.gz
micropython-458cbacb8f62ad0f33024360af61fb797530c65b.zip
tests/net_inet: Add tests for accept and connect in nonblocking mode.
Some of these tests don't require an Internet connection, but here is a good place to put them for now.
-rw-r--r--tests/net_inet/accept_nonblock.py16
-rw-r--r--tests/net_inet/accept_nonblock.py.exp1
-rw-r--r--tests/net_inet/accept_timeout.py22
-rw-r--r--tests/net_inet/accept_timeout.py.exp1
-rw-r--r--tests/net_inet/connect_nonblock.py14
-rw-r--r--tests/net_inet/connect_nonblock.py.exp1
6 files changed, 55 insertions, 0 deletions
diff --git a/tests/net_inet/accept_nonblock.py b/tests/net_inet/accept_nonblock.py
new file mode 100644
index 0000000000..56f3288e28
--- /dev/null
+++ b/tests/net_inet/accept_nonblock.py
@@ -0,0 +1,16 @@
+# test that socket.accept() on a non-blocking socket raises EAGAIN
+
+try:
+ import usocket as socket
+except:
+ import socket
+
+s = socket.socket()
+s.bind(socket.getaddrinfo('127.0.0.1', 8123)[0][-1])
+s.setblocking(False)
+s.listen(1)
+try:
+ s.accept()
+except OSError as er:
+ print(er.args[0] == 11) # 11 is EAGAIN
+s.close()
diff --git a/tests/net_inet/accept_nonblock.py.exp b/tests/net_inet/accept_nonblock.py.exp
new file mode 100644
index 0000000000..0ca95142bb
--- /dev/null
+++ b/tests/net_inet/accept_nonblock.py.exp
@@ -0,0 +1 @@
+True
diff --git a/tests/net_inet/accept_timeout.py b/tests/net_inet/accept_timeout.py
new file mode 100644
index 0000000000..44b3b8c7cd
--- /dev/null
+++ b/tests/net_inet/accept_timeout.py
@@ -0,0 +1,22 @@
+# test that socket.accept() on a socket with timeout raises ETIMEDOUT
+
+try:
+ import usocket as socket
+except:
+ import socket
+
+try:
+ socket.socket.settimeout
+except AttributeError:
+ print('SKIP')
+ raise SystemExit
+
+s = socket.socket()
+s.bind(socket.getaddrinfo('127.0.0.1', 8123)[0][-1])
+s.settimeout(1)
+s.listen(1)
+try:
+ s.accept()
+except OSError as er:
+ print(er.args[0] in (110, 'timed out')) # 110 is ETIMEDOUT; CPython uses a string
+s.close()
diff --git a/tests/net_inet/accept_timeout.py.exp b/tests/net_inet/accept_timeout.py.exp
new file mode 100644
index 0000000000..0ca95142bb
--- /dev/null
+++ b/tests/net_inet/accept_timeout.py.exp
@@ -0,0 +1 @@
+True
diff --git a/tests/net_inet/connect_nonblock.py b/tests/net_inet/connect_nonblock.py
new file mode 100644
index 0000000000..e99d7d6244
--- /dev/null
+++ b/tests/net_inet/connect_nonblock.py
@@ -0,0 +1,14 @@
+# test that socket.connect() on a non-blocking socket raises EINPROGRESS
+
+try:
+ import usocket as socket
+except:
+ import socket
+
+s = socket.socket()
+s.setblocking(False)
+try:
+ s.connect(socket.getaddrinfo('micropython.org', 80)[0][-1])
+except OSError as er:
+ print(er.args[0] == 115) # 115 is EINPROGRESS
+s.close()
diff --git a/tests/net_inet/connect_nonblock.py.exp b/tests/net_inet/connect_nonblock.py.exp
new file mode 100644
index 0000000000..0ca95142bb
--- /dev/null
+++ b/tests/net_inet/connect_nonblock.py.exp
@@ -0,0 +1 @@
+True