1 #![warn(rust_2018_idioms)]
2 #![cfg(feature = "full")]
3 
4 use tokio::io::AsyncWriteExt;
5 
6 #[tokio::test]
sink_poll_write_is_cooperative()7 async fn sink_poll_write_is_cooperative() {
8     tokio::select! {
9         biased;
10         _ = async {
11             loop {
12                 let buf = vec![1, 2, 3];
13                 tokio::io::sink().write_all(&buf).await.unwrap();
14             }
15         } => {},
16         _ = tokio::task::yield_now() => {}
17     }
18 }
19 
20 #[tokio::test]
sink_poll_flush_is_cooperative()21 async fn sink_poll_flush_is_cooperative() {
22     tokio::select! {
23         biased;
24         _ = async {
25             loop {
26                 tokio::io::sink().flush().await.unwrap();
27             }
28         } => {},
29         _ = tokio::task::yield_now() => {}
30     }
31 }
32 
33 #[tokio::test]
sink_poll_shutdown_is_cooperative()34 async fn sink_poll_shutdown_is_cooperative() {
35     tokio::select! {
36         biased;
37         _ = async {
38             loop {
39                 tokio::io::sink().shutdown().await.unwrap();
40             }
41         } => {},
42         _ = tokio::task::yield_now() => {}
43     }
44 }
45