diff options
author | Lucio Franco <luciofranco14@gmail.com> | 2019-08-02 15:23:44 -0400 |
---|---|---|
committer | Carl Lerche <me@carllerche.com> | 2019-08-02 12:23:44 -0700 |
commit | ff41108834ab8fdf92e5c337b46637ba696d89c7 (patch) | |
tree | b11dd84a9443281b03432a68a016be813f58017a /tokio/tests/io_copy.rs | |
parent | 6b202722ea78548b941b3aa6e92ff281a7ce42c5 (diff) |
io: move io helpers back into `tokio-io` (#1377)
Utilities are made optional with a feature flag.
Diffstat (limited to 'tokio/tests/io_copy.rs')
-rw-r--r-- | tokio/tests/io_copy.rs | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/tokio/tests/io_copy.rs b/tokio/tests/io_copy.rs deleted file mode 100644 index 2fac7e85..00000000 --- a/tokio/tests/io_copy.rs +++ /dev/null @@ -1,61 +0,0 @@ -#![deny(warnings, rust_2018_idioms)] -#![feature(async_await)] - -use tokio::io::{AsyncRead, AsyncReadExt, AsyncWrite}; -use tokio_test::assert_ok; - -use bytes::BytesMut; -use std::io; -use std::pin::Pin; -use std::task::{Context, Poll}; - -#[tokio::test] -async fn copy() { - struct Rd(bool); - - impl AsyncRead for Rd { - fn poll_read( - mut self: Pin<&mut Self>, - _cx: &mut Context<'_>, - buf: &mut [u8], - ) -> Poll<io::Result<usize>> { - if self.0 { - buf[0..11].copy_from_slice(b"hello world"); - self.0 = false; - Poll::Ready(Ok(11)) - } else { - Poll::Ready(Ok(0)) - } - } - } - - struct Wr(BytesMut); - - impl Unpin for Wr {} - impl AsyncWrite for Wr { - fn poll_write( - mut self: Pin<&mut Self>, - _cx: &mut Context<'_>, - buf: &[u8], - ) -> Poll<io::Result<usize>> { - self.0.extend(buf); - Ok(buf.len()).into() - } - - fn poll_flush(self: Pin<&mut Self>, _cx: &mut Context<'_>) -> Poll<io::Result<()>> { - Ok(()).into() - } - - fn poll_shutdown(self: Pin<&mut Self>, _cx: &mut Context<'_>) -> Poll<io::Result<()>> { - Ok(()).into() - } - } - - let buf = BytesMut::with_capacity(64); - let mut rd = Rd(true); - let mut wr = Wr(buf); - - let n = assert_ok!(rd.copy(&mut wr).await); - assert_eq!(n, 11); - assert_eq!(wr.0[..], b"hello world"[..]); -} |