use futures_cputask::async_task; use futures::task::{FutureObj, Spawn}; #[async_task] fn long_running_task() -> i64 { (0..100_000_000).fold(0i64, |a, b| a.wrapping_add(b)) } async fn test_long_running_task() { assert_eq!(long_running_task().await, 4_999_999_950_000_000); } #[test] fn test_main() { let mut pool = futures::executor::LocalPool::new(); pool.run_until(test_long_running_task()); }