mirror of
https://github.com/tokio-rs/tokio.git
synced 2026-08-28 00:00:11 +02:00
time: stream throttle (#1949)
This commit is contained in:
committed by
Carl Lerche
parent
d593c5b051
commit
4b85565bd7
@@ -0,0 +1,30 @@
|
||||
#![warn(rust_2018_idioms)]
|
||||
#![cfg(feature = "full")]
|
||||
|
||||
use tokio::time::{self, throttle};
|
||||
use tokio_test::*;
|
||||
|
||||
use std::time::Duration;
|
||||
|
||||
#[tokio::test]
|
||||
async fn usage() {
|
||||
time::pause();
|
||||
|
||||
let mut stream = task::spawn(throttle(
|
||||
Duration::from_millis(100),
|
||||
futures::stream::repeat(()),
|
||||
));
|
||||
|
||||
assert_ready!(stream.poll_next());
|
||||
assert_pending!(stream.poll_next());
|
||||
|
||||
time::advance(Duration::from_millis(90)).await;
|
||||
|
||||
assert_pending!(stream.poll_next());
|
||||
|
||||
time::advance(Duration::from_millis(101)).await;
|
||||
|
||||
assert!(stream.is_woken());
|
||||
|
||||
assert_ready!(stream.poll_next());
|
||||
}
|
||||
Reference in New Issue
Block a user