1 // Copyright 2024 The ChromiumOS Authors 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #[cfg(test)] 6 mod tests { 7 use base::Event; 8 9 use crate::EventTokio; 10 11 #[tokio::test] already_signaled()12 async fn already_signaled() { 13 let event = Event::new().unwrap(); 14 let async_event = EventTokio::new(event.try_clone().unwrap()).unwrap(); 15 16 event.signal().unwrap(); 17 async_event.wait().await.unwrap(); 18 } 19 20 #[tokio::test] signaled_after_delay()21 async fn signaled_after_delay() { 22 let event = Event::new().unwrap(); 23 let async_event = EventTokio::new(event.try_clone().unwrap()).unwrap(); 24 25 tokio::spawn(async move { 26 tokio::time::sleep(std::time::Duration::from_millis(1)).await; 27 event.signal().unwrap(); 28 }); 29 async_event.wait().await.unwrap(); 30 } 31 } 32