diff options
author | Jim Mussared <jim.mussared@gmail.com> | 2023-06-08 16:01:38 +1000 |
---|---|---|
committer | Damien George <damien@micropython.org> | 2023-06-19 17:33:03 +1000 |
commit | 6027c41c8f5b8f1a9e7b85b2bb93b3e6f2718e54 (patch) | |
tree | 08f41a4d0cd48fa5c0bc49519832ac2faba6923a /tests/multi_net/asyncio_tcp_server_client.py | |
parent | 2fbc08c462e247e7f78460783c9a07c76c5b762e (diff) | |
download | micropython-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_server_client.py')
-rw-r--r-- | tests/multi_net/asyncio_tcp_server_client.py | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/tests/multi_net/asyncio_tcp_server_client.py b/tests/multi_net/asyncio_tcp_server_client.py new file mode 100644 index 0000000000..6c4aaf2b7e --- /dev/null +++ b/tests/multi_net/asyncio_tcp_server_client.py @@ -0,0 +1,55 @@ +# Test asyncio TCP server and client using start_server() and open_connection() + +try: + import asyncio +except ImportError: + print("SKIP") + raise SystemExit + +PORT = 8000 + + +async def handle_connection(reader, writer): + # Test that peername exists (but don't check its value, it changes) + writer.get_extra_info("peername") + + data = await reader.read(100) + print("echo:", data) + writer.write(data) + 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(message): + reader, writer = await asyncio.open_connection(IP, PORT) + print("write:", message) + writer.write(message) + await writer.drain() + data = await reader.read(100) + print("read:", data) + + +def instance0(): + multitest.globals(IP=multitest.get_network_ip()) + asyncio.run(tcp_server()) + + +def instance1(): + multitest.next() + asyncio.run(tcp_client(b"client data")) |