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