use futures::{future::join_all, stream::FuturesUnordered, StreamExt}; use shuttle::{ check_dfs, future::{block_on, spawn, JoinHandle}, }; fn empty_tasks() -> FuturesUnordered> { (0..2).map(|_| spawn(async move {})).collect() } #[test] fn collect_empty_tasks() { check_dfs( || { block_on(async { let tasks = empty_tasks(); let _ = tasks.collect::>().await; }) }, None, ); } #[test] fn next_empty_tasks() { check_dfs( || { block_on(async { let mut tasks = empty_tasks(); while let Some(result) = tasks.next().await { result.unwrap(); } }) }, None, ); } #[test] fn join_all_empty_tasks() { check_dfs( || { block_on(async { let tasks = empty_tasks(); join_all(tasks) .await .into_iter() .collect::, _>>() .unwrap(); }) }, None, ); }