base_tokio/
event.rs

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)]
6mod tests {
7    use base::Event;
8
9    use crate::EventTokio;
10
11    #[tokio::test]
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]
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}