aboutsummaryrefslogtreecommitdiff
path: root/tests/net_hosted
diff options
context:
space:
mode:
authorPaul Sokolovsky2017-06-23 21:12:32 +0300
committerPaul Sokolovsky2017-06-23 21:12:32 +0300
commit3f9d59c87a6797857a074737034bcd58d0726b2e (patch)
tree44c13021472821755dc42781f548acdbf80c6848 /tests/net_hosted
parent0fe825b89e9c6a2a0e379ca61156f8b47f56b333 (diff)
tests/net_inet: Move tests which don't require full Internet to net_hosted.
The idea is that these tests can be run with just a test server running on a test host, with device under test connecting to it, instead of requiring Internet connection for testing. Such setup is however WIP, and some tests in net_hosted/ are so far written to connect to Internet, as there're not test server written yet. This is expected to evolve over time.
Diffstat (limited to 'tests/net_hosted')
-rw-r--r--tests/net_hosted/README11
-rw-r--r--tests/net_hosted/accept_nonblock.py16
-rw-r--r--tests/net_hosted/accept_nonblock.py.exp1
-rw-r--r--tests/net_hosted/accept_timeout.py22
-rw-r--r--tests/net_hosted/accept_timeout.py.exp1
-rw-r--r--tests/net_hosted/connect_nonblock.py14
-rw-r--r--tests/net_hosted/connect_nonblock.py.exp1
7 files changed, 66 insertions, 0 deletions
diff --git a/tests/net_hosted/README b/tests/net_hosted/README
new file mode 100644
index 000000000..724dd6158
--- /dev/null
+++ b/tests/net_hosted/README
@@ -0,0 +1,11 @@
+This directory contains network tests which require just "peer to peer"
+network connection between test host and device under test, instead of
+full Internet connection.
+
+Note that setup for these tests and tests themselves are WIP, and may
+not yet fully correspond to the functional specification above.
+
+So far, these tests are not run as part of the main testsuite and need
+to be run seperately (from the main test/ directory):
+
+ ./run-tests net_hosted/*.py
diff --git a/tests/net_hosted/accept_nonblock.py b/tests/net_hosted/accept_nonblock.py
new file mode 100644
index 000000000..56f3288e2
--- /dev/null
+++ b/tests/net_hosted/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_hosted/accept_nonblock.py.exp b/tests/net_hosted/accept_nonblock.py.exp
new file mode 100644
index 000000000..0ca95142b
--- /dev/null
+++ b/tests/net_hosted/accept_nonblock.py.exp
@@ -0,0 +1 @@
+True
diff --git a/tests/net_hosted/accept_timeout.py b/tests/net_hosted/accept_timeout.py
new file mode 100644
index 000000000..44b3b8c7c
--- /dev/null
+++ b/tests/net_hosted/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_hosted/accept_timeout.py.exp b/tests/net_hosted/accept_timeout.py.exp
new file mode 100644
index 000000000..0ca95142b
--- /dev/null
+++ b/tests/net_hosted/accept_timeout.py.exp
@@ -0,0 +1 @@
+True
diff --git a/tests/net_hosted/connect_nonblock.py b/tests/net_hosted/connect_nonblock.py
new file mode 100644
index 000000000..e99d7d624
--- /dev/null
+++ b/tests/net_hosted/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_hosted/connect_nonblock.py.exp b/tests/net_hosted/connect_nonblock.py.exp
new file mode 100644
index 000000000..0ca95142b
--- /dev/null
+++ b/tests/net_hosted/connect_nonblock.py.exp
@@ -0,0 +1 @@
+True