xref: /aosp_15_r20/external/crosvm/base_tokio/src/event.rs (revision bb4ee6a4ae7042d18b07a98463b9c8b875e44b39)
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