summaryrefslogtreecommitdiffstatshomepage
path: root/tests/multi_net/asyncio_tcp_readinto.py
diff options
context:
space:
mode:
authorJim Mussared <jim.mussared@gmail.com>2023-06-08 16:01:38 +1000
committerDamien George <damien@micropython.org>2023-06-19 17:33:03 +1000
commit6027c41c8f5b8f1a9e7b85b2bb93b3e6f2718e54 (patch)
tree08f41a4d0cd48fa5c0bc49519832ac2faba6923a /tests/multi_net/asyncio_tcp_readinto.py
parent2fbc08c462e247e7f78460783c9a07c76c5b762e (diff)
downloadmicropython-6027c41c8f5b8f1a9e7b85b2bb93b3e6f2718e54.tar.gz
micropython-6027c41c8f5b8f1a9e7b85b2bb93b3e6f2718e54.zip
tests: Rename uasyncio to asyncio.
This work was funded through GitHub Sponsors. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
Diffstat (limited to 'tests/multi_net/asyncio_tcp_readinto.py')
-rw-r--r--tests/multi_net/asyncio_tcp_readinto.py74
1 files changed, 74 insertions, 0 deletions
diff --git a/tests/multi_net/asyncio_tcp_readinto.py b/tests/multi_net/asyncio_tcp_readinto.py
new file mode 100644
index 0000000000..563b640e13
--- /dev/null
+++ b/tests/multi_net/asyncio_tcp_readinto.py
@@ -0,0 +1,74 @@
+# Test asyncio stream readinto() method using TCP server/client
+
+try:
+ import asyncio
+except ImportError:
+ print("SKIP")
+ raise SystemExit
+
+try:
+ import array
+except ImportError:
+ print("SKIP")
+ raise SystemExit
+
+PORT = 8000
+
+
+async def handle_connection(reader, writer):
+ writer.write(b"ab")
+ await writer.drain()
+
+ writer.write(b"c")
+ await writer.drain()
+
+ print("close")
+ writer.close()
+ await writer.wait_closed()
+
+ print("done")
+ ev.set()
+
+
+async def tcp_server():
+ global ev
+ ev = asyncio.Event()
+ server = await asyncio.start_server(handle_connection, "0.0.0.0", PORT)
+ print("server running")
+ multitest.next()
+ async with server:
+ await asyncio.wait_for(ev.wait(), 10)
+
+
+async def tcp_client():
+ reader, writer = await asyncio.open_connection(IP, PORT)
+
+ ba = bytearray(2)
+ n = await reader.readinto(ba)
+ print(n)
+ print(ba[:n])
+
+ a = array.array("b", [0, 0])
+ n = await reader.readinto(a)
+ print(n)
+ print(a[:n])
+
+ try:
+ n = await reader.readinto(5)
+ except TypeError as er:
+ print("TypeError")
+
+ try:
+ n = await reader.readinto()
+ except TypeError as er:
+ print("TypeError")
+
+
+def instance0():
+ multitest.globals(IP=multitest.get_network_ip())
+ asyncio.run(tcp_server())
+
+
+def instance1():
+ multitest.next()
+ asyncio.run(tcp_client())