diff options
Diffstat (limited to 'tokio/src/task/tests/task.rs')
-rw-r--r-- | tokio/src/task/tests/task.rs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/tokio/src/task/tests/task.rs b/tokio/src/task/tests/task.rs index 8f5fec1b..0cff4295 100644 --- a/tokio/src/task/tests/task.rs +++ b/tokio/src/task/tests/task.rs @@ -641,3 +641,21 @@ fn shutdown_from_task_after_notified() { assert_ready_err!(handle.poll()); } + +#[test] +fn waker_ref_will_wake_clone() { + use std::task::Poll::Ready; + + let (task, handle) = task::joinable(poll_fn(|cx| { + let waker = cx.waker().clone(); + assert!(cx.waker().will_wake(&waker)); + Ready(()) + })); + let mut handle = spawn(handle); + + let mock = mock().bind(&task).release_local(); + let mock = &mut || Some(From::from(&mock)); + + assert_none!(task.run(mock)); + assert_ready_ok!(handle.poll()); +} |