diff options
author | Carl Lerche <me@carllerche.com> | 2020-10-02 13:54:00 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-02 13:54:00 -0700 |
commit | 1e585ccb516c8dc7c13cbc3d50f8ca49260b9617 (patch) | |
tree | 00959b4ac82e4972314baa043cdbca2f2ebf5848 /tokio/tests | |
parent | 7ec6d88b21ea3e5531176f526a51dae0a4513025 (diff) |
io: update to Mio 0.7 (#2893)
This also makes Mio an implementation detail, removing it from the
public API.
This is based on #1767.
Diffstat (limited to 'tokio/tests')
-rw-r--r-- | tokio/tests/uds_datagram.rs | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/tokio/tests/uds_datagram.rs b/tokio/tests/uds_datagram.rs index bd47f19e..18dfcca0 100644 --- a/tokio/tests/uds_datagram.rs +++ b/tokio/tests/uds_datagram.rs @@ -44,6 +44,33 @@ async fn echo() -> io::Result<()> { Ok(()) } +#[tokio::test] +async fn echo_from() -> io::Result<()> { + let dir = tempfile::tempdir().unwrap(); + let server_path = dir.path().join("server.sock"); + let client_path = dir.path().join("client.sock"); + + let server_socket = UnixDatagram::bind(server_path.clone())?; + + tokio::spawn(async move { + if let Err(e) = echo_server(server_socket).await { + eprintln!("Error in echo server: {}", e); + } + }); + + { + let socket = UnixDatagram::bind(&client_path).unwrap(); + socket.connect(&server_path)?; + socket.send(b"ECHO").await?; + let mut recv_buf = [0u8; 16]; + let (len, addr) = socket.recv_from(&mut recv_buf[..]).await?; + assert_eq!(&recv_buf[..len], b"ECHO"); + assert_eq!(addr.as_pathname(), Some(server_path.as_path())); + } + + Ok(()) +} + // Even though we use sync non-blocking io we still need a reactor. #[tokio::test] async fn try_send_recv_never_block() -> io::Result<()> { |