From 1f47ed3dcc4b582315cdbfb195495d7d4c76d3f3 Mon Sep 17 00:00:00 2001 From: Carl Lerche Date: Wed, 26 Jun 2019 17:06:56 -0700 Subject: tokio: rewrite io_read.rs test to use async/await (#1207) This simplifies the test --- tokio/tests/io_read.rs | 35 ++++++++++++++++------------------- 1 file changed, 16 insertions(+), 19 deletions(-) (limited to 'tokio/tests/io_read.rs') diff --git a/tokio/tests/io_read.rs b/tokio/tests/io_read.rs index 8544a6c6..b1fc42c4 100644 --- a/tokio/tests/io_read.rs +++ b/tokio/tests/io_read.rs @@ -1,41 +1,38 @@ #![deny(warnings, rust_2018_idioms)] +#![feature(async_await)] use tokio::io::{AsyncRead, AsyncReadExt}; -use tokio_test::assert_ready_ok; -use tokio_test::task::MockTask; +use tokio_test::assert_ok; -use pin_utils::pin_mut; -use std::future::Future; use std::io; use std::pin::Pin; use std::task::{Context, Poll}; -#[test] -fn read() { - struct Rd; +#[tokio::test] +async fn read() { + #[derive(Default)] + struct Rd { + poll_cnt: usize, + } impl AsyncRead for Rd { fn poll_read( - self: Pin<&mut Self>, + mut self: Pin<&mut Self>, _cx: &mut Context<'_>, buf: &mut [u8], ) -> Poll> { + assert_eq!(0, self.poll_cnt); + self.poll_cnt +=1 ; + buf[0..11].copy_from_slice(b"hello world"); Poll::Ready(Ok(11)) } } let mut buf = Box::new([0; 11]); - let mut task = MockTask::new(); - - task.enter(|cx| { - let mut rd = Rd; - - let read = rd.read(&mut buf[..]); - pin_mut!(read); + let mut rd = Rd::default(); - let n = assert_ready_ok!(read.poll(cx)); - assert_eq!(n, 11); - assert_eq!(buf[..], b"hello world"[..]); - }); + let n = assert_ok!(rd.read(&mut buf[..]).await); + assert_eq!(n, 11); + assert_eq!(buf[..], b"hello world"[..]); } -- cgit v1.2.3