| #![warn(rust_2018_idioms)] |
| #![cfg(feature = "full")] |
| |
| use tokio::io::AsyncWriteExt; |
| |
| #[tokio::test] |
| async fn sink_poll_write_is_cooperative() { |
| tokio::select! { |
| biased; |
| _ = async { |
| loop { |
| let buf = vec![1, 2, 3]; |
| tokio::io::sink().write_all(&buf).await.unwrap(); |
| } |
| } => {}, |
| _ = tokio::task::yield_now() => {} |
| } |
| } |
| |
| #[tokio::test] |
| async fn sink_poll_flush_is_cooperative() { |
| tokio::select! { |
| biased; |
| _ = async { |
| loop { |
| tokio::io::sink().flush().await.unwrap(); |
| } |
| } => {}, |
| _ = tokio::task::yield_now() => {} |
| } |
| } |
| |
| #[tokio::test] |
| async fn sink_poll_shutdown_is_cooperative() { |
| tokio::select! { |
| biased; |
| _ = async { |
| loop { |
| tokio::io::sink().shutdown().await.unwrap(); |
| } |
| } => {}, |
| _ = tokio::task::yield_now() => {} |
| } |
| } |