diff options
author | Damien George <damien.p.george@gmail.com> | 2017-06-21 12:25:10 +1000 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2017-06-21 12:25:10 +1000 |
commit | 458cbacb8f62ad0f33024360af61fb797530c65b (patch) | |
tree | 2d1442f0e87b9497f9ffda1504d103963e03a8b7 | |
parent | 4caa27ae0ec92af59ddacf57dd7fd43fcdd64c69 (diff) | |
download | micropython-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.py | 16 | ||||
-rw-r--r-- | tests/net_inet/accept_nonblock.py.exp | 1 | ||||
-rw-r--r-- | tests/net_inet/accept_timeout.py | 22 | ||||
-rw-r--r-- | tests/net_inet/accept_timeout.py.exp | 1 | ||||
-rw-r--r-- | tests/net_inet/connect_nonblock.py | 14 | ||||
-rw-r--r-- | tests/net_inet/connect_nonblock.py.exp | 1 |
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 |