summaryrefslogtreecommitdiff
path: root/tests/extmod/usocket_tcp_basic.py
diff options
context:
space:
mode:
authorDamien George <damien@micropython.org>2020-08-30 13:20:51 +1000
committerDamien George <damien@micropython.org>2020-08-30 13:20:51 +1000
commitd1995e50ebda074f8151609bb4c95d4c31072513 (patch)
tree31ccbfbb14315087bd23563ef095992db75f645d /tests/extmod/usocket_tcp_basic.py
parent06659077a81b85882254cf0953c33b27614e018e (diff)
extmod/modlwip: Fix error return for TCP recv when not connected.
This commit fixes the cases when a TCP socket is in STATE_NEW, STATE_LISTENING or STATE_CONNECTING and recv() is called on it. It now raises ENOTCONN instead of a random error code due to it previously indexing beyond the start of error_lookup_table[]. Signed-off-by: Damien George <damien@micropython.org>
Diffstat (limited to 'tests/extmod/usocket_tcp_basic.py')
-rw-r--r--tests/extmod/usocket_tcp_basic.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/extmod/usocket_tcp_basic.py b/tests/extmod/usocket_tcp_basic.py
new file mode 100644
index 000000000..368dfe3c9
--- /dev/null
+++ b/tests/extmod/usocket_tcp_basic.py
@@ -0,0 +1,17 @@
+# Test basic, stand-alone TCP socket functionality
+
+try:
+ import usocket as socket, uerrno as errno
+except ImportError:
+ try:
+ import socket, errno
+ except ImportError:
+ print("SKIP")
+ raise SystemExit
+
+# recv() on a fresh socket should raise ENOTCONN
+s = socket.socket()
+try:
+ s.recv(1)
+except OSError as er:
+ print("ENOTCONN:", er.args[0] == errno.ENOTCONN)