rust/library/alloc/tests/task.rs
David Tolnay 793b45f53a
Add Waker::will_wake tests
Currently fails:

    ---- task::test_waker_will_wake_clone stdout ----
    thread 'task::test_waker_will_wake_clone' panicked at library/alloc/tests/task.rs:17:5:
    assertion failed: waker.will_wake(&clone)
2024-02-25 20:55:12 -08:00

35 lines
726 B
Rust

use alloc::rc::Rc;
use alloc::sync::Arc;
use alloc::task::{LocalWake, Wake};
use core::task::{LocalWaker, Waker};
#[test]
fn test_waker_will_wake_clone() {
struct NoopWaker;
impl Wake for NoopWaker {
fn wake(self: Arc<Self>) {}
}
let waker = Waker::from(Arc::new(NoopWaker));
let clone = waker.clone();
assert!(waker.will_wake(&clone));
assert!(clone.will_wake(&waker));
}
#[test]
fn test_local_waker_will_wake_clone() {
struct NoopWaker;
impl LocalWake for NoopWaker {
fn wake(self: Rc<Self>) {}
}
let waker = LocalWaker::from(Rc::new(NoopWaker));
let clone = waker.clone();
assert!(waker.will_wake(&clone));
assert!(clone.will_wake(&waker));
}