diff --git a/docs/versionhistory.rst b/docs/versionhistory.rst
index c813367..f07c289 100644
--- a/docs/versionhistory.rst
+++ b/docs/versionhistory.rst
@@ -9,6 +9,8 @@ This library adheres to `Semantic Versioning 2.0 <http://semver.org/>`_.
   ``KeyError``
 - Fixed the asyncio backend not respecting the ``PYTHONASYNCIODEBUG`` environment
   variable when setting the ``debug`` flag in ``anyio.run()``
+- Fixed ``SocketStream.receive()`` not detecting EOF on asyncio if there is also data in
+  the read buffer (`#701 <https://github.com/agronholm/anyio/issues/701>`_)
 
 **4.3.0**
 
diff --git a/src/anyio/_backends/_asyncio.py b/src/anyio/_backends/_asyncio.py
index dcf48cc..d64e553 100644
--- a/src/anyio/_backends/_asyncio.py
+++ b/src/anyio/_backends/_asyncio.py
@@ -1047,6 +1047,7 @@ class StreamProtocol(asyncio.Protocol):
     read_event: asyncio.Event
     write_event: asyncio.Event
     exception: Exception | None = None
+    is_at_eof: bool = False
 
     def connection_made(self, transport: asyncio.BaseTransport) -> None:
         self.read_queue = deque()
@@ -1068,6 +1069,7 @@ class StreamProtocol(asyncio.Protocol):
         self.read_event.set()
 
     def eof_received(self) -> bool | None:
+        self.is_at_eof = True
         self.read_event.set()
         return True
 
@@ -1123,15 +1125,16 @@ class SocketStream(abc.SocketStream):
 
     async def receive(self, max_bytes: int = 65536) -> bytes:
         with self._receive_guard:
-            await AsyncIOBackend.checkpoint()
-
             if (
                 not self._protocol.read_event.is_set()
                 and not self._transport.is_closing()
+                and not self._protocol.is_at_eof
             ):
                 self._transport.resume_reading()
                 await self._protocol.read_event.wait()
                 self._transport.pause_reading()
+            else:
+                await AsyncIOBackend.checkpoint()
 
             try:
                 chunk = self._protocol.read_queue.popleft()

diff --git a/tests/test_sockets.py b/tests/test_sockets.py
index a35b500..43c7058 100644
--- a/tests/test_sockets.py
+++ b/tests/test_sockets.py
@@ -28,6 +28,7 @@ from anyio import (
     BrokenResourceError,
     BusyResourceError,
     ClosedResourceError,
+    EndOfStream,
     Event,
     TypedAttributeLookupError,
     connect_tcp,
@@ -681,6 +682,29 @@ class TestTCPListener:
 
             tg.cancel_scope.cancel()
 
+    async def test_eof_after_send(self, family: AnyIPAddressFamily) -> None:
+        """Regression test for #701."""
+        received_bytes = b""
+
+        async def handle(stream: SocketStream) -> None:
+            nonlocal received_bytes
+            async with stream:
+                received_bytes = await stream.receive()
+                with pytest.raises(EndOfStream), fail_after(1):
+                    await stream.receive()
+
+            tg.cancel_scope.cancel()
+
+        multi = await create_tcp_listener(family=family, local_host="localhost")
+        async with multi, create_task_group() as tg:
+            with socket.socket(family) as client:
+                client.connect(multi.extra(SocketAttribute.local_address))
+                client.send(b"Hello")
+                client.shutdown(socket.SHUT_WR)
+                await multi.serve(handle)
+
+        assert received_bytes == b"Hello"
+
     @skip_ipv6_mark
     @pytest.mark.skipif(
         sys.platform == "win32",

TCP listener handler does not disconnect on EOF (netcat -N)
### Things to check first

- [X] I have searched the existing issues and didn't find my bug already reported there

- [X] I have checked that my bug is still present in the latest release


### AnyIO version

4.3.0

### Python version

3.11.8

### What happened?

While trying to implement a Python TCP receiver for a line based protocol using anyio, I have issues closing the stream with an EOF on the client side with netcat. This works with a pure Python synchronous implementation. The code uses the anyio backend. 

### How can we reproduce the bug?

```python
import anyio
from anyio.streams.text import TextReceiveStream

async def read_lines(port: int):
    """Read lines from TCP socket and output."""
    
    # FIXME: GNU netcat does not deterministically shutdown after sending EOF (-N option), one has to use -w 0 to close on idle
    async def handle(client):
        async with client:
            receive_stream = TextReceiveStream(client)
            async for chunk in receive_stream:
                for line in chunk.splitlines():
                    print(f"Line: {line.rstrip()}")
    
    listener = await anyio.create_tcp_listener(local_port=port)
    await listener.serve(handle)


anyio.run(read_lines, 1234)
```

Now, the following command hangs on most, but not all executions (it might have to do with buffering):
`echo 'hello world' | netcat -N localhost 1234`

The following works, but uses an idle workaround
`echo 'hello world' | netcat -N -w 0 localhost 1234`
tests/test_sockets.py::TestTCPListener::test_eof_after_send[asyncio-ipv4] tests/test_sockets.py::TestTCPListener::test_eof_after_send[asyncio-ipv6]
tests/test_sockets.py::TestTCPStream::test_extra_attributes[asyncio-ipv4] tests/test_sockets.py::TestTCPStream::test_extra_attributes[asyncio-ipv6] tests/test_sockets.py::TestTCPStream::test_extra_attributes[asyncio+uvloop-ipv4] tests/test_sockets.py::TestTCPStream::test_extra_attributes[asyncio+uvloop-ipv6] tests/test_sockets.py::TestTCPStream::test_extra_attributes[trio-ipv4] tests/test_sockets.py::TestTCPStream::test_extra_attributes[trio-ipv6] tests/test_sockets.py::TestTCPStream::test_send_receive[asyncio-ipv4] tests/test_sockets.py::TestTCPStream::test_send_receive[asyncio-ipv6] tests/test_sockets.py::TestTCPStream::test_send_receive[asyncio+uvloop-ipv4] tests/test_sockets.py::TestTCPStream::test_send_receive[asyncio+uvloop-ipv6] tests/test_sockets.py::TestTCPStream::test_send_receive[trio-ipv4] tests/test_sockets.py::TestTCPStream::test_send_receive[trio-ipv6] tests/test_sockets.py::TestTCPStream::test_send_large_buffer[asyncio-ipv4] tests/test_sockets.py::TestTCPStream::test_send_large_buffer[asyncio-ipv6] tests/test_sockets.py::TestTCPStream::test_send_large_buffer[asyncio+uvloop-ipv4] tests/test_sockets.py::TestTCPStream::test_send_large_buffer[asyncio+uvloop-ipv6] tests/test_sockets.py::TestTCPStream::test_send_large_buffer[trio-ipv4] tests/test_sockets.py::TestTCPStream::test_send_large_buffer[trio-ipv6] tests/test_sockets.py::TestTCPStream::test_send_eof[asyncio-ipv4] tests/test_sockets.py::TestTCPStream::test_send_eof[asyncio-ipv6] tests/test_sockets.py::TestTCPStream::test_send_eof[asyncio+uvloop-ipv4] tests/test_sockets.py::TestTCPStream::test_send_eof[asyncio+uvloop-ipv6] tests/test_sockets.py::TestTCPStream::test_send_eof[trio-ipv4] tests/test_sockets.py::TestTCPStream::test_send_eof[trio-ipv6] tests/test_sockets.py::TestTCPStream::test_iterate[asyncio-ipv4] tests/test_sockets.py::TestTCPStream::test_iterate[asyncio-ipv6] tests/test_sockets.py::TestTCPStream::test_iterate[asyncio+uvloop-ipv4] tests/test_sockets.py::TestTCPStream::test_iterate[asyncio+uvloop-ipv6] tests/test_sockets.py::TestTCPStream::test_iterate[trio-ipv4] tests/test_sockets.py::TestTCPStream::test_iterate[trio-ipv6] tests/test_sockets.py::TestTCPStream::test_socket_options[asyncio-ipv4] tests/test_sockets.py::TestTCPStream::test_socket_options[asyncio-ipv6] tests/test_sockets.py::TestTCPStream::test_socket_options[asyncio+uvloop-ipv4] tests/test_sockets.py::TestTCPStream::test_socket_options[asyncio+uvloop-ipv6] tests/test_sockets.py::TestTCPStream::test_socket_options[trio-ipv4] tests/test_sockets.py::TestTCPStream::test_socket_options[trio-ipv6] tests/test_sockets.py::TestTCPStream::test_happy_eyeballs[asyncio-dualstack] tests/test_sockets.py::TestTCPStream::test_happy_eyeballs[asyncio-ipv4] tests/test_sockets.py::TestTCPStream::test_happy_eyeballs[asyncio-ipv6] tests/test_sockets.py::TestTCPStream::test_happy_eyeballs[asyncio+uvloop-dualstack] tests/test_sockets.py::TestTCPStream::test_happy_eyeballs[asyncio+uvloop-ipv4] tests/test_sockets.py::TestTCPStream::test_happy_eyeballs[asyncio+uvloop-ipv6] tests/test_sockets.py::TestTCPStream::test_happy_eyeballs[trio-dualstack] tests/test_sockets.py::TestTCPStream::test_happy_eyeballs[trio-ipv4] tests/test_sockets.py::TestTCPStream::test_happy_eyeballs[trio-ipv6] tests/test_sockets.py::TestTCPStream::test_connection_refused[asyncio-multi] tests/test_sockets.py::TestTCPStream::test_connection_refused[asyncio-single] tests/test_sockets.py::TestTCPStream::test_connection_refused[asyncio+uvloop-multi] tests/test_sockets.py::TestTCPStream::test_connection_refused[asyncio+uvloop-single] tests/test_sockets.py::TestTCPStream::test_connection_refused[trio-multi] tests/test_sockets.py::TestTCPStream::test_connection_refused[trio-single] tests/test_sockets.py::TestTCPStream::test_receive_timeout[asyncio-ipv4] tests/test_sockets.py::TestTCPStream::test_receive_timeout[asyncio-ipv6] tests/test_sockets.py::TestTCPStream::test_receive_timeout[asyncio+uvloop-ipv4] tests/test_sockets.py::TestTCPStream::test_receive_timeout[asyncio+uvloop-ipv6] tests/test_sockets.py::TestTCPStream::test_receive_timeout[trio-ipv4] tests/test_sockets.py::TestTCPStream::test_receive_timeout[trio-ipv6] tests/test_sockets.py::TestTCPStream::test_concurrent_send[asyncio-ipv4] tests/test_sockets.py::TestTCPStream::test_concurrent_send[asyncio-ipv6] tests/test_sockets.py::TestTCPStream::test_concurrent_send[asyncio+uvloop-ipv4] tests/test_sockets.py::TestTCPStream::test_concurrent_send[asyncio+uvloop-ipv6] tests/test_sockets.py::TestTCPStream::test_concurrent_send[trio-ipv4] tests/test_sockets.py::TestTCPStream::test_concurrent_send[trio-ipv6] tests/test_sockets.py::TestTCPStream::test_concurrent_receive[asyncio-ipv4] tests/test_sockets.py::TestTCPStream::test_concurrent_receive[asyncio-ipv6] tests/test_sockets.py::TestTCPStream::test_concurrent_receive[asyncio+uvloop-ipv4] tests/test_sockets.py::TestTCPStream::test_concurrent_receive[asyncio+uvloop-ipv6] tests/test_sockets.py::TestTCPStream::test_concurrent_receive[trio-ipv4] tests/test_sockets.py::TestTCPStream::test_concurrent_receive[trio-ipv6] tests/test_sockets.py::TestTCPStream::test_close_during_receive[asyncio-ipv4] tests/test_sockets.py::TestTCPStream::test_close_during_receive[asyncio-ipv6] tests/test_sockets.py::TestTCPStream::test_close_during_receive[asyncio+uvloop-ipv4] tests/test_sockets.py::TestTCPStream::test_close_during_receive[asyncio+uvloop-ipv6] tests/test_sockets.py::TestTCPStream::test_close_during_receive[trio-ipv4] tests/test_sockets.py::TestTCPStream::test_close_during_receive[trio-ipv6] tests/test_sockets.py::TestTCPStream::test_receive_after_close[asyncio-ipv4] tests/test_sockets.py::TestTCPStream::test_receive_after_close[asyncio-ipv6] tests/test_sockets.py::TestTCPStream::test_receive_after_close[asyncio+uvloop-ipv4] tests/test_sockets.py::TestTCPStream::test_receive_after_close[asyncio+uvloop-ipv6] tests/test_sockets.py::TestTCPStream::test_receive_after_close[trio-ipv4] tests/test_sockets.py::TestTCPStream::test_receive_after_close[trio-ipv6] tests/test_sockets.py::TestTCPStream::test_send_after_close[asyncio-ipv4] tests/test_sockets.py::TestTCPStream::test_send_after_close[asyncio-ipv6] tests/test_sockets.py::TestTCPStream::test_send_after_close[asyncio+uvloop-ipv4] tests/test_sockets.py::TestTCPStream::test_send_after_close[asyncio+uvloop-ipv6] tests/test_sockets.py::TestTCPStream::test_send_after_close[trio-ipv4] tests/test_sockets.py::TestTCPStream::test_send_after_close[trio-ipv6] tests/test_sockets.py::TestTCPStream::test_send_after_peer_closed[asyncio-ipv4] tests/test_sockets.py::TestTCPStream::test_send_after_peer_closed[asyncio-ipv6] tests/test_sockets.py::TestTCPStream::test_send_after_peer_closed[asyncio+uvloop-ipv4] tests/test_sockets.py::TestTCPStream::test_send_after_peer_closed[asyncio+uvloop-ipv6] tests/test_sockets.py::TestTCPStream::test_send_after_peer_closed[trio-ipv4] tests/test_sockets.py::TestTCPStream::test_send_after_peer_closed[trio-ipv6] tests/test_sockets.py::TestTCPStream::test_connect_tcp_with_tls[asyncio-ipv4] tests/test_sockets.py::TestTCPStream::test_connect_tcp_with_tls[asyncio-ipv6] tests/test_sockets.py::TestTCPStream::test_connect_tcp_with_tls[asyncio+uvloop-ipv4] tests/test_sockets.py::TestTCPStream::test_connect_tcp_with_tls[asyncio+uvloop-ipv6] tests/test_sockets.py::TestTCPStream::test_connect_tcp_with_tls[trio-ipv4] tests/test_sockets.py::TestTCPStream::test_connect_tcp_with_tls[trio-ipv6] tests/test_sockets.py::TestTCPStream::test_connect_tcp_with_tls_cert_check_fail[asyncio-ipv4] tests/test_sockets.py::TestTCPStream::test_connect_tcp_with_tls_cert_check_fail[asyncio-ipv6] tests/test_sockets.py::TestTCPStream::test_connect_tcp_with_tls_cert_check_fail[asyncio+uvloop-ipv4] tests/test_sockets.py::TestTCPStream::test_connect_tcp_with_tls_cert_check_fail[asyncio+uvloop-ipv6] tests/test_sockets.py::TestTCPStream::test_connect_tcp_with_tls_cert_check_fail[trio-ipv4] tests/test_sockets.py::TestTCPStream::test_connect_tcp_with_tls_cert_check_fail[trio-ipv6] tests/test_sockets.py::TestTCPStream::test_unretrieved_future_exception_server_crash[ipv4-asyncio] tests/test_sockets.py::TestTCPStream::test_unretrieved_future_exception_server_crash[ipv6-asyncio] tests/test_sockets.py::TestTCPListener::test_extra_attributes[asyncio-ipv4] tests/test_sockets.py::TestTCPListener::test_extra_attributes[asyncio-ipv6] tests/test_sockets.py::TestTCPListener::test_extra_attributes[asyncio+uvloop-ipv4] tests/test_sockets.py::TestTCPListener::test_extra_attributes[asyncio+uvloop-ipv6] tests/test_sockets.py::TestTCPListener::test_extra_attributes[trio-ipv4] tests/test_sockets.py::TestTCPListener::test_extra_attributes[trio-ipv6] tests/test_sockets.py::TestTCPListener::test_accept[asyncio-ipv4] tests/test_sockets.py::TestTCPListener::test_accept[asyncio-ipv6] tests/test_sockets.py::TestTCPListener::test_accept[asyncio-both] tests/test_sockets.py::TestTCPListener::test_accept[asyncio+uvloop-ipv4] tests/test_sockets.py::TestTCPListener::test_accept[asyncio+uvloop-ipv6] tests/test_sockets.py::TestTCPListener::test_accept[asyncio+uvloop-both] tests/test_sockets.py::TestTCPListener::test_accept[trio-ipv4] tests/test_sockets.py::TestTCPListener::test_accept[trio-ipv6] tests/test_sockets.py::TestTCPListener::test_accept[trio-both] tests/test_sockets.py::TestTCPListener::test_accept_after_close[asyncio-ipv4] tests/test_sockets.py::TestTCPListener::test_accept_after_close[asyncio-ipv6] tests/test_sockets.py::TestTCPListener::test_accept_after_close[asyncio+uvloop-ipv4] tests/test_sockets.py::TestTCPListener::test_accept_after_close[asyncio+uvloop-ipv6] tests/test_sockets.py::TestTCPListener::test_accept_after_close[trio-ipv4] tests/test_sockets.py::TestTCPListener::test_accept_after_close[trio-ipv6] tests/test_sockets.py::TestTCPListener::test_socket_options[asyncio-ipv4] tests/test_sockets.py::TestTCPListener::test_socket_options[asyncio-ipv6] tests/test_sockets.py::TestTCPListener::test_socket_options[asyncio+uvloop-ipv4] tests/test_sockets.py::TestTCPListener::test_socket_options[asyncio+uvloop-ipv6] tests/test_sockets.py::TestTCPListener::test_socket_options[trio-ipv4] tests/test_sockets.py::TestTCPListener::test_socket_options[trio-ipv6] tests/test_sockets.py::TestTCPListener::test_reuse_port[asyncio-ipv4] tests/test_sockets.py::TestTCPListener::test_reuse_port[asyncio-ipv6] tests/test_sockets.py::TestTCPListener::test_reuse_port[asyncio+uvloop-ipv4] tests/test_sockets.py::TestTCPListener::test_reuse_port[asyncio+uvloop-ipv6] tests/test_sockets.py::TestTCPListener::test_reuse_port[trio-ipv4] tests/test_sockets.py::TestTCPListener::test_reuse_port[trio-ipv6] tests/test_sockets.py::TestTCPListener::test_close_from_other_task[asyncio-ipv4] tests/test_sockets.py::TestTCPListener::test_close_from_other_task[asyncio-ipv6] tests/test_sockets.py::TestTCPListener::test_close_from_other_task[asyncio+uvloop-ipv4] tests/test_sockets.py::TestTCPListener::test_close_from_other_task[asyncio+uvloop-ipv6] tests/test_sockets.py::TestTCPListener::test_close_from_other_task[trio-ipv4] tests/test_sockets.py::TestTCPListener::test_close_from_other_task[trio-ipv6] tests/test_sockets.py::TestTCPListener::test_send_after_eof[asyncio-ipv4] tests/test_sockets.py::TestTCPListener::test_send_after_eof[asyncio-ipv6] tests/test_sockets.py::TestTCPListener::test_send_after_eof[asyncio+uvloop-ipv4] tests/test_sockets.py::TestTCPListener::test_send_after_eof[asyncio+uvloop-ipv6] tests/test_sockets.py::TestTCPListener::test_send_after_eof[trio-ipv4] tests/test_sockets.py::TestTCPListener::test_send_after_eof[trio-ipv6] tests/test_sockets.py::TestTCPListener::test_eof_after_send[asyncio+uvloop-ipv4] tests/test_sockets.py::TestTCPListener::test_eof_after_send[asyncio+uvloop-ipv6] tests/test_sockets.py::TestTCPListener::test_eof_after_send[trio-ipv4] tests/test_sockets.py::TestTCPListener::test_eof_after_send[trio-ipv6] tests/test_sockets.py::TestTCPListener::test_bind_link_local[asyncio] tests/test_sockets.py::TestTCPListener::test_bind_link_local[asyncio+uvloop] tests/test_sockets.py::TestTCPListener::test_bind_link_local[trio] tests/test_sockets.py::TestUNIXStream::test_extra_attributes[asyncio] tests/test_sockets.py::TestUNIXStream::test_extra_attributes[asyncio+uvloop] tests/test_sockets.py::TestUNIXStream::test_extra_attributes[trio] tests/test_sockets.py::TestUNIXStream::test_send_receive[asyncio-str] tests/test_sockets.py::TestUNIXStream::test_send_receive[asyncio-path] tests/test_sockets.py::TestUNIXStream::test_send_receive[asyncio+uvloop-str] tests/test_sockets.py::TestUNIXStream::test_send_receive[asyncio+uvloop-path] tests/test_sockets.py::TestUNIXStream::test_send_receive[trio-str] tests/test_sockets.py::TestUNIXStream::test_send_receive[trio-path] tests/test_sockets.py::TestUNIXStream::test_receive_large_buffer[asyncio] tests/test_sockets.py::TestUNIXStream::test_receive_large_buffer[asyncio+uvloop] tests/test_sockets.py::TestUNIXStream::test_receive_large_buffer[trio] tests/test_sockets.py::TestUNIXStream::test_send_large_buffer[asyncio] tests/test_sockets.py::TestUNIXStream::test_send_large_buffer[asyncio+uvloop] tests/test_sockets.py::TestUNIXStream::test_send_large_buffer[trio] tests/test_sockets.py::TestUNIXStream::test_receive_fds[asyncio] tests/test_sockets.py::TestUNIXStream::test_receive_fds[asyncio+uvloop] tests/test_sockets.py::TestUNIXStream::test_receive_fds[trio] tests/test_sockets.py::TestUNIXStream::test_receive_fds_bad_args[asyncio] tests/test_sockets.py::TestUNIXStream::test_receive_fds_bad_args[asyncio+uvloop] tests/test_sockets.py::TestUNIXStream::test_receive_fds_bad_args[trio] tests/test_sockets.py::TestUNIXStream::test_send_fds[asyncio] tests/test_sockets.py::TestUNIXStream::test_send_fds[asyncio+uvloop] tests/test_sockets.py::TestUNIXStream::test_send_fds[trio] tests/test_sockets.py::TestUNIXStream::test_send_eof[asyncio] tests/test_sockets.py::TestUNIXStream::test_send_eof[asyncio+uvloop] tests/test_sockets.py::TestUNIXStream::test_send_eof[trio] tests/test_sockets.py::TestUNIXStream::test_iterate[asyncio] tests/test_sockets.py::TestUNIXStream::test_iterate[asyncio+uvloop] tests/test_sockets.py::TestUNIXStream::test_iterate[trio] tests/test_sockets.py::TestUNIXStream::test_send_fds_bad_args[asyncio] tests/test_sockets.py::TestUNIXStream::test_send_fds_bad_args[asyncio+uvloop] tests/test_sockets.py::TestUNIXStream::test_send_fds_bad_args[trio] tests/test_sockets.py::TestUNIXStream::test_concurrent_send[asyncio] tests/test_sockets.py::TestUNIXStream::test_concurrent_send[asyncio+uvloop] tests/test_sockets.py::TestUNIXStream::test_concurrent_send[trio] tests/test_sockets.py::TestUNIXStream::test_concurrent_receive[asyncio] tests/test_sockets.py::TestUNIXStream::test_concurrent_receive[asyncio+uvloop] tests/test_sockets.py::TestUNIXStream::test_concurrent_receive[trio] tests/test_sockets.py::TestUNIXStream::test_close_during_receive[asyncio] tests/test_sockets.py::TestUNIXStream::test_close_during_receive[asyncio+uvloop] tests/test_sockets.py::TestUNIXStream::test_close_during_receive[trio] tests/test_sockets.py::TestUNIXStream::test_receive_after_close[asyncio] tests/test_sockets.py::TestUNIXStream::test_receive_after_close[asyncio+uvloop] tests/test_sockets.py::TestUNIXStream::test_receive_after_close[trio] tests/test_sockets.py::TestUNIXStream::test_send_after_close[asyncio] tests/test_sockets.py::TestUNIXStream::test_send_after_close[asyncio+uvloop] tests/test_sockets.py::TestUNIXStream::test_send_after_close[trio] tests/test_sockets.py::TestUNIXStream::test_cannot_connect[asyncio] tests/test_sockets.py::TestUNIXStream::test_cannot_connect[asyncio+uvloop] tests/test_sockets.py::TestUNIXStream::test_cannot_connect[trio] tests/test_sockets.py::TestUNIXStream::test_connecting_using_bytes[asyncio] tests/test_sockets.py::TestUNIXStream::test_connecting_using_bytes[asyncio+uvloop] tests/test_sockets.py::TestUNIXStream::test_connecting_using_bytes[trio] tests/test_sockets.py::TestUNIXStream::test_connecting_with_non_utf8[asyncio] tests/test_sockets.py::TestUNIXStream::test_connecting_with_non_utf8[asyncio+uvloop] tests/test_sockets.py::TestUNIXStream::test_connecting_with_non_utf8[trio] tests/test_sockets.py::TestUNIXListener::test_extra_attributes[asyncio] tests/test_sockets.py::TestUNIXListener::test_extra_attributes[asyncio+uvloop] tests/test_sockets.py::TestUNIXListener::test_extra_attributes[trio] tests/test_sockets.py::TestUNIXListener::test_accept[asyncio-str] tests/test_sockets.py::TestUNIXListener::test_accept[asyncio-path] tests/test_sockets.py::TestUNIXListener::test_accept[asyncio+uvloop-str] tests/test_sockets.py::TestUNIXListener::test_accept[asyncio+uvloop-path] tests/test_sockets.py::TestUNIXListener::test_accept[trio-str] tests/test_sockets.py::TestUNIXListener::test_accept[trio-path] tests/test_sockets.py::TestUNIXListener::test_socket_options[asyncio] tests/test_sockets.py::TestUNIXListener::test_socket_options[asyncio+uvloop] tests/test_sockets.py::TestUNIXListener::test_socket_options[trio] tests/test_sockets.py::TestUNIXListener::test_send_after_eof[asyncio] tests/test_sockets.py::TestUNIXListener::test_send_after_eof[asyncio+uvloop] tests/test_sockets.py::TestUNIXListener::test_send_after_eof[trio] tests/test_sockets.py::TestUNIXListener::test_bind_twice[asyncio] tests/test_sockets.py::TestUNIXListener::test_bind_twice[asyncio+uvloop] tests/test_sockets.py::TestUNIXListener::test_bind_twice[trio] tests/test_sockets.py::TestUNIXListener::test_listening_bytes_path[asyncio] tests/test_sockets.py::TestUNIXListener::test_listening_bytes_path[asyncio+uvloop] tests/test_sockets.py::TestUNIXListener::test_listening_bytes_path[trio] tests/test_sockets.py::TestUNIXListener::test_listening_invalid_ascii[asyncio] tests/test_sockets.py::TestUNIXListener::test_listening_invalid_ascii[asyncio+uvloop] tests/test_sockets.py::TestUNIXListener::test_listening_invalid_ascii[trio] tests/test_sockets.py::test_multi_listener[asyncio] tests/test_sockets.py::test_multi_listener[asyncio+uvloop] tests/test_sockets.py::test_multi_listener[trio] tests/test_sockets.py::TestUDPSocket::test_extra_attributes[asyncio-ipv4] tests/test_sockets.py::TestUDPSocket::test_extra_attributes[asyncio-ipv6] tests/test_sockets.py::TestUDPSocket::test_extra_attributes[asyncio+uvloop-ipv4] tests/test_sockets.py::TestUDPSocket::test_extra_attributes[asyncio+uvloop-ipv6] tests/test_sockets.py::TestUDPSocket::test_extra_attributes[trio-ipv4] tests/test_sockets.py::TestUDPSocket::test_extra_attributes[trio-ipv6] tests/test_sockets.py::TestUDPSocket::test_send_receive[asyncio-ipv4] tests/test_sockets.py::TestUDPSocket::test_send_receive[asyncio-ipv6] tests/test_sockets.py::TestUDPSocket::test_send_receive[asyncio+uvloop-ipv4] tests/test_sockets.py::TestUDPSocket::test_send_receive[asyncio+uvloop-ipv6] tests/test_sockets.py::TestUDPSocket::test_send_receive[trio-ipv4] tests/test_sockets.py::TestUDPSocket::test_send_receive[trio-ipv6] tests/test_sockets.py::TestUDPSocket::test_iterate[asyncio-ipv4] tests/test_sockets.py::TestUDPSocket::test_iterate[asyncio-ipv6] tests/test_sockets.py::TestUDPSocket::test_iterate[asyncio+uvloop-ipv4] tests/test_sockets.py::TestUDPSocket::test_iterate[asyncio+uvloop-ipv6] tests/test_sockets.py::TestUDPSocket::test_iterate[trio-ipv4] tests/test_sockets.py::TestUDPSocket::test_iterate[trio-ipv6] tests/test_sockets.py::TestUDPSocket::test_reuse_port[asyncio-ipv4] tests/test_sockets.py::TestUDPSocket::test_reuse_port[asyncio-ipv6] tests/test_sockets.py::TestUDPSocket::test_reuse_port[asyncio+uvloop-ipv4] tests/test_sockets.py::TestUDPSocket::test_reuse_port[asyncio+uvloop-ipv6] tests/test_sockets.py::TestUDPSocket::test_reuse_port[trio-ipv4] tests/test_sockets.py::TestUDPSocket::test_reuse_port[trio-ipv6] tests/test_sockets.py::TestUDPSocket::test_concurrent_receive[asyncio-ipv4] tests/test_sockets.py::TestUDPSocket::test_concurrent_receive[asyncio-ipv6] tests/test_sockets.py::TestUDPSocket::test_concurrent_receive[asyncio+uvloop-ipv4] tests/test_sockets.py::TestUDPSocket::test_concurrent_receive[asyncio+uvloop-ipv6] tests/test_sockets.py::TestUDPSocket::test_concurrent_receive[trio-ipv4] tests/test_sockets.py::TestUDPSocket::test_concurrent_receive[trio-ipv6] tests/test_sockets.py::TestUDPSocket::test_close_during_receive[asyncio-ipv4] tests/test_sockets.py::TestUDPSocket::test_close_during_receive[asyncio-ipv6] tests/test_sockets.py::TestUDPSocket::test_close_during_receive[asyncio+uvloop-ipv4] tests/test_sockets.py::TestUDPSocket::test_close_during_receive[asyncio+uvloop-ipv6] tests/test_sockets.py::TestUDPSocket::test_close_during_receive[trio-ipv4] tests/test_sockets.py::TestUDPSocket::test_close_during_receive[trio-ipv6] tests/test_sockets.py::TestUDPSocket::test_receive_after_close[asyncio-ipv4] tests/test_sockets.py::TestUDPSocket::test_receive_after_close[asyncio-ipv6] tests/test_sockets.py::TestUDPSocket::test_receive_after_close[asyncio+uvloop-ipv4] tests/test_sockets.py::TestUDPSocket::test_receive_after_close[asyncio+uvloop-ipv6] tests/test_sockets.py::TestUDPSocket::test_receive_after_close[trio-ipv4] tests/test_sockets.py::TestUDPSocket::test_receive_after_close[trio-ipv6] tests/test_sockets.py::TestUDPSocket::test_send_after_close[asyncio-ipv4] tests/test_sockets.py::TestUDPSocket::test_send_after_close[asyncio-ipv6] tests/test_sockets.py::TestUDPSocket::test_send_after_close[asyncio+uvloop-ipv4] tests/test_sockets.py::TestUDPSocket::test_send_after_close[asyncio+uvloop-ipv6] tests/test_sockets.py::TestUDPSocket::test_send_after_close[trio-ipv4] tests/test_sockets.py::TestUDPSocket::test_send_after_close[trio-ipv6] tests/test_sockets.py::TestUDPSocket::test_create_unbound_socket[asyncio-ipv4] tests/test_sockets.py::TestUDPSocket::test_create_unbound_socket[asyncio-ipv6] tests/test_sockets.py::TestUDPSocket::test_create_unbound_socket[asyncio+uvloop-ipv4] tests/test_sockets.py::TestUDPSocket::test_create_unbound_socket[asyncio+uvloop-ipv6] tests/test_sockets.py::TestUDPSocket::test_create_unbound_socket[trio-ipv4] tests/test_sockets.py::TestUDPSocket::test_create_unbound_socket[trio-ipv6] tests/test_sockets.py::TestConnectedUDPSocket::test_extra_attributes[asyncio-ipv4] tests/test_sockets.py::TestConnectedUDPSocket::test_extra_attributes[asyncio-ipv6] tests/test_sockets.py::TestConnectedUDPSocket::test_extra_attributes[asyncio+uvloop-ipv4] tests/test_sockets.py::TestConnectedUDPSocket::test_extra_attributes[asyncio+uvloop-ipv6] tests/test_sockets.py::TestConnectedUDPSocket::test_extra_attributes[trio-ipv4] tests/test_sockets.py::TestConnectedUDPSocket::test_extra_attributes[trio-ipv6] tests/test_sockets.py::TestConnectedUDPSocket::test_send_receive[asyncio-ipv4] tests/test_sockets.py::TestConnectedUDPSocket::test_send_receive[asyncio-ipv6] tests/test_sockets.py::TestConnectedUDPSocket::test_send_receive[asyncio+uvloop-ipv4] tests/test_sockets.py::TestConnectedUDPSocket::test_send_receive[asyncio+uvloop-ipv6] tests/test_sockets.py::TestConnectedUDPSocket::test_send_receive[trio-ipv4] tests/test_sockets.py::TestConnectedUDPSocket::test_send_receive[trio-ipv6] tests/test_sockets.py::TestConnectedUDPSocket::test_iterate[asyncio-ipv4] tests/test_sockets.py::TestConnectedUDPSocket::test_iterate[asyncio-ipv6] tests/test_sockets.py::TestConnectedUDPSocket::test_iterate[asyncio+uvloop-ipv4] tests/test_sockets.py::TestConnectedUDPSocket::test_iterate[asyncio+uvloop-ipv6] tests/test_sockets.py::TestConnectedUDPSocket::test_iterate[trio-ipv4] tests/test_sockets.py::TestConnectedUDPSocket::test_iterate[trio-ipv6] tests/test_sockets.py::TestConnectedUDPSocket::test_reuse_port[asyncio-ipv4] tests/test_sockets.py::TestConnectedUDPSocket::test_reuse_port[asyncio-ipv6] tests/test_sockets.py::TestConnectedUDPSocket::test_reuse_port[asyncio+uvloop-ipv4] tests/test_sockets.py::TestConnectedUDPSocket::test_reuse_port[asyncio+uvloop-ipv6] tests/test_sockets.py::TestConnectedUDPSocket::test_reuse_port[trio-ipv4] tests/test_sockets.py::TestConnectedUDPSocket::test_reuse_port[trio-ipv6] tests/test_sockets.py::TestConnectedUDPSocket::test_concurrent_receive[asyncio-ipv4] tests/test_sockets.py::TestConnectedUDPSocket::test_concurrent_receive[asyncio-ipv6] tests/test_sockets.py::TestConnectedUDPSocket::test_concurrent_receive[asyncio+uvloop-ipv4] tests/test_sockets.py::TestConnectedUDPSocket::test_concurrent_receive[asyncio+uvloop-ipv6] tests/test_sockets.py::TestConnectedUDPSocket::test_concurrent_receive[trio-ipv4] tests/test_sockets.py::TestConnectedUDPSocket::test_concurrent_receive[trio-ipv6] tests/test_sockets.py::TestConnectedUDPSocket::test_close_during_receive[asyncio-ipv4] tests/test_sockets.py::TestConnectedUDPSocket::test_close_during_receive[asyncio-ipv6] tests/test_sockets.py::TestConnectedUDPSocket::test_close_during_receive[asyncio+uvloop-ipv4] tests/test_sockets.py::TestConnectedUDPSocket::test_close_during_receive[asyncio+uvloop-ipv6] tests/test_sockets.py::TestConnectedUDPSocket::test_close_during_receive[trio-ipv4] tests/test_sockets.py::TestConnectedUDPSocket::test_close_during_receive[trio-ipv6] tests/test_sockets.py::TestConnectedUDPSocket::test_receive_after_close[asyncio-ipv4] tests/test_sockets.py::TestConnectedUDPSocket::test_receive_after_close[asyncio-ipv6] tests/test_sockets.py::TestConnectedUDPSocket::test_receive_after_close[asyncio+uvloop-ipv4] tests/test_sockets.py::TestConnectedUDPSocket::test_receive_after_close[asyncio+uvloop-ipv6] tests/test_sockets.py::TestConnectedUDPSocket::test_receive_after_close[trio-ipv4] tests/test_sockets.py::TestConnectedUDPSocket::test_receive_after_close[trio-ipv6] tests/test_sockets.py::TestConnectedUDPSocket::test_send_after_close[asyncio-ipv4] tests/test_sockets.py::TestConnectedUDPSocket::test_send_after_close[asyncio-ipv6] tests/test_sockets.py::TestConnectedUDPSocket::test_send_after_close[asyncio+uvloop-ipv4] tests/test_sockets.py::TestConnectedUDPSocket::test_send_after_close[asyncio+uvloop-ipv6] tests/test_sockets.py::TestConnectedUDPSocket::test_send_after_close[trio-ipv4] tests/test_sockets.py::TestConnectedUDPSocket::test_send_after_close[trio-ipv6] tests/test_sockets.py::TestUNIXDatagramSocket::test_extra_attributes[asyncio] tests/test_sockets.py::TestUNIXDatagramSocket::test_extra_attributes[asyncio+uvloop] tests/test_sockets.py::TestUNIXDatagramSocket::test_extra_attributes[trio] tests/test_sockets.py::TestUNIXDatagramSocket::test_send_receive[asyncio-str] tests/test_sockets.py::TestUNIXDatagramSocket::test_send_receive[asyncio-path] tests/test_sockets.py::TestUNIXDatagramSocket::test_send_receive[asyncio+uvloop-str] tests/test_sockets.py::TestUNIXDatagramSocket::test_send_receive[asyncio+uvloop-path] tests/test_sockets.py::TestUNIXDatagramSocket::test_send_receive[trio-str] tests/test_sockets.py::TestUNIXDatagramSocket::test_send_receive[trio-path] tests/test_sockets.py::TestUNIXDatagramSocket::test_iterate[asyncio] tests/test_sockets.py::TestUNIXDatagramSocket::test_iterate[asyncio+uvloop] tests/test_sockets.py::TestUNIXDatagramSocket::test_iterate[trio] tests/test_sockets.py::TestUNIXDatagramSocket::test_concurrent_receive[asyncio] tests/test_sockets.py::TestUNIXDatagramSocket::test_concurrent_receive[asyncio+uvloop] tests/test_sockets.py::TestUNIXDatagramSocket::test_concurrent_receive[trio] tests/test_sockets.py::TestUNIXDatagramSocket::test_close_during_receive[asyncio] tests/test_sockets.py::TestUNIXDatagramSocket::test_close_during_receive[asyncio+uvloop] tests/test_sockets.py::TestUNIXDatagramSocket::test_close_during_receive[trio] tests/test_sockets.py::TestUNIXDatagramSocket::test_receive_after_close[asyncio] tests/test_sockets.py::TestUNIXDatagramSocket::test_receive_after_close[asyncio+uvloop] tests/test_sockets.py::TestUNIXDatagramSocket::test_receive_after_close[trio] tests/test_sockets.py::TestUNIXDatagramSocket::test_send_after_close[asyncio] tests/test_sockets.py::TestUNIXDatagramSocket::test_send_after_close[asyncio+uvloop] tests/test_sockets.py::TestUNIXDatagramSocket::test_send_after_close[trio] tests/test_sockets.py::TestUNIXDatagramSocket::test_local_path_bytes[asyncio] tests/test_sockets.py::TestUNIXDatagramSocket::test_local_path_bytes[asyncio+uvloop] tests/test_sockets.py::TestUNIXDatagramSocket::test_local_path_bytes[trio] tests/test_sockets.py::TestUNIXDatagramSocket::test_local_path_invalid_ascii[asyncio] tests/test_sockets.py::TestUNIXDatagramSocket::test_local_path_invalid_ascii[asyncio+uvloop] tests/test_sockets.py::TestUNIXDatagramSocket::test_local_path_invalid_ascii[trio] tests/test_sockets.py::TestConnectedUNIXDatagramSocket::test_extra_attributes[asyncio] tests/test_sockets.py::TestConnectedUNIXDatagramSocket::test_extra_attributes[asyncio+uvloop] tests/test_sockets.py::TestConnectedUNIXDatagramSocket::test_extra_attributes[trio] tests/test_sockets.py::TestConnectedUNIXDatagramSocket::test_send_receive[asyncio-str-peer_str] tests/test_sockets.py::TestConnectedUNIXDatagramSocket::test_send_receive[asyncio-str-peer_path] tests/test_sockets.py::TestConnectedUNIXDatagramSocket::test_send_receive[asyncio-path-peer_str] tests/test_sockets.py::TestConnectedUNIXDatagramSocket::test_send_receive[asyncio-path-peer_path] tests/test_sockets.py::TestConnectedUNIXDatagramSocket::test_send_receive[asyncio+uvloop-str-peer_str] tests/test_sockets.py::TestConnectedUNIXDatagramSocket::test_send_receive[asyncio+uvloop-str-peer_path] tests/test_sockets.py::TestConnectedUNIXDatagramSocket::test_send_receive[asyncio+uvloop-path-peer_str] tests/test_sockets.py::TestConnectedUNIXDatagramSocket::test_send_receive[asyncio+uvloop-path-peer_path] tests/test_sockets.py::TestConnectedUNIXDatagramSocket::test_send_receive[trio-str-peer_str] tests/test_sockets.py::TestConnectedUNIXDatagramSocket::test_send_receive[trio-str-peer_path] tests/test_sockets.py::TestConnectedUNIXDatagramSocket::test_send_receive[trio-path-peer_str] tests/test_sockets.py::TestConnectedUNIXDatagramSocket::test_send_receive[trio-path-peer_path] tests/test_sockets.py::TestConnectedUNIXDatagramSocket::test_iterate[asyncio] tests/test_sockets.py::TestConnectedUNIXDatagramSocket::test_iterate[asyncio+uvloop] tests/test_sockets.py::TestConnectedUNIXDatagramSocket::test_iterate[trio] tests/test_sockets.py::TestConnectedUNIXDatagramSocket::test_concurrent_receive[asyncio] tests/test_sockets.py::TestConnectedUNIXDatagramSocket::test_concurrent_receive[asyncio+uvloop] tests/test_sockets.py::TestConnectedUNIXDatagramSocket::test_concurrent_receive[trio] tests/test_sockets.py::TestConnectedUNIXDatagramSocket::test_close_during_receive[asyncio-peer_str] tests/test_sockets.py::TestConnectedUNIXDatagramSocket::test_close_during_receive[asyncio-peer_path] tests/test_sockets.py::TestConnectedUNIXDatagramSocket::test_close_during_receive[asyncio+uvloop-peer_str] tests/test_sockets.py::TestConnectedUNIXDatagramSocket::test_close_during_receive[asyncio+uvloop-peer_path] tests/test_sockets.py::TestConnectedUNIXDatagramSocket::test_close_during_receive[trio-peer_str] tests/test_sockets.py::TestConnectedUNIXDatagramSocket::test_close_during_receive[trio-peer_path] tests/test_sockets.py::TestConnectedUNIXDatagramSocket::test_receive_after_close[asyncio-peer_str] tests/test_sockets.py::TestConnectedUNIXDatagramSocket::test_receive_after_close[asyncio-peer_path] tests/test_sockets.py::TestConnectedUNIXDatagramSocket::test_receive_after_close[asyncio+uvloop-peer_str] tests/test_sockets.py::TestConnectedUNIXDatagramSocket::test_receive_after_close[asyncio+uvloop-peer_path] tests/test_sockets.py::TestConnectedUNIXDatagramSocket::test_receive_after_close[trio-peer_str] tests/test_sockets.py::TestConnectedUNIXDatagramSocket::test_receive_after_close[trio-peer_path] tests/test_sockets.py::TestConnectedUNIXDatagramSocket::test_send_after_close[asyncio-peer_str] tests/test_sockets.py::TestConnectedUNIXDatagramSocket::test_send_after_close[asyncio-peer_path] tests/test_sockets.py::TestConnectedUNIXDatagramSocket::test_send_after_close[asyncio+uvloop-peer_str] tests/test_sockets.py::TestConnectedUNIXDatagramSocket::test_send_after_close[asyncio+uvloop-peer_path] tests/test_sockets.py::TestConnectedUNIXDatagramSocket::test_send_after_close[trio-peer_str] tests/test_sockets.py::TestConnectedUNIXDatagramSocket::test_send_after_close[trio-peer_path] tests/test_sockets.py::test_getaddrinfo[asyncio] tests/test_sockets.py::test_getaddrinfo[asyncio+uvloop] tests/test_sockets.py::test_getaddrinfo[trio] tests/test_sockets.py::test_getaddrinfo_ipv6addr[asyncio-SocketKind.SOCK_STREAM0] tests/test_sockets.py::test_getaddrinfo_ipv6addr[asyncio-SocketKind.SOCK_STREAM1] tests/test_sockets.py::test_getaddrinfo_ipv6addr[asyncio+uvloop-SocketKind.SOCK_STREAM0] tests/test_sockets.py::test_getaddrinfo_ipv6addr[asyncio+uvloop-SocketKind.SOCK_STREAM1] tests/test_sockets.py::test_getaddrinfo_ipv6addr[trio-SocketKind.SOCK_STREAM0] tests/test_sockets.py::test_getaddrinfo_ipv6addr[trio-SocketKind.SOCK_STREAM1] tests/test_sockets.py::test_getnameinfo[asyncio] tests/test_sockets.py::test_getnameinfo[asyncio+uvloop] tests/test_sockets.py::test_getnameinfo[trio]