diff options
Diffstat (limited to 'tests/net_hosted')
| -rw-r--r-- | tests/net_hosted/README | 11 | ||||
| -rw-r--r-- | tests/net_hosted/accept_nonblock.py | 16 | ||||
| -rw-r--r-- | tests/net_hosted/accept_nonblock.py.exp | 1 | ||||
| -rw-r--r-- | tests/net_hosted/accept_timeout.py | 22 | ||||
| -rw-r--r-- | tests/net_hosted/accept_timeout.py.exp | 1 | ||||
| -rw-r--r-- | tests/net_hosted/connect_nonblock.py | 20 | ||||
| -rw-r--r-- | tests/net_hosted/connect_nonblock.py.exp | 1 | ||||
| -rw-r--r-- | tests/net_hosted/ssl_getpeercert.py | 21 | ||||
| -rw-r--r-- | tests/net_hosted/ssl_getpeercert.py.exp | 1 |
9 files changed, 94 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..6479978be --- /dev/null +++ b/tests/net_hosted/connect_nonblock.py @@ -0,0 +1,20 @@ +# test that socket.connect() on a non-blocking socket raises EINPROGRESS + +try: + import usocket as socket +except: + import socket + + +def test(peer_addr): + s = socket.socket() + s.setblocking(False) + try: + s.connect(peer_addr) + except OSError as er: + print(er.args[0] == 115) # 115 is EINPROGRESS + s.close() + + +if __name__ == "__main__": + test(socket.getaddrinfo('micropython.org', 80)[0][-1]) 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 diff --git a/tests/net_hosted/ssl_getpeercert.py b/tests/net_hosted/ssl_getpeercert.py new file mode 100644 index 000000000..e265c830d --- /dev/null +++ b/tests/net_hosted/ssl_getpeercert.py @@ -0,0 +1,21 @@ +# test ssl.getpeercert() method + +try: + import usocket as socket + import ussl as ssl +except: + import socket + import ssl + + +def test(peer_addr): + s = socket.socket() + s.connect(peer_addr) + s = ssl.wrap_socket(s) + cert = s.getpeercert(True) + print(type(cert), len(cert) > 100) + s.close() + + +if __name__ == "__main__": + test(socket.getaddrinfo('micropython.org', 443)[0][-1]) diff --git a/tests/net_hosted/ssl_getpeercert.py.exp b/tests/net_hosted/ssl_getpeercert.py.exp new file mode 100644 index 000000000..ff7ef5adf --- /dev/null +++ b/tests/net_hosted/ssl_getpeercert.py.exp @@ -0,0 +1 @@ +<class 'bytes'> True |
