mirror of
https://github.com/tokio-rs/tokio.git
synced 2025-10-01 12:20:39 +00:00
49 lines
994 B
Rust
49 lines
994 B
Rust
#![deny(warnings, rust_2018_idioms)]
|
|
|
|
mod support;
|
|
use crate::support::*;
|
|
|
|
use futures::{prelude::*, sync::mpsc};
|
|
use tokio_timer::throttle::Throttle;
|
|
|
|
#[test]
|
|
fn throttle() {
|
|
mocked(|timer, _| {
|
|
let (tx, rx) = mpsc::unbounded();
|
|
let mut stream = Throttle::new(rx, ms(1));
|
|
|
|
assert_not_ready!(stream);
|
|
|
|
for i in 0..3 {
|
|
tx.unbounded_send(i).unwrap();
|
|
}
|
|
for i in 0..3 {
|
|
assert_ready_eq!(stream, Some(i));
|
|
assert_not_ready!(stream);
|
|
|
|
advance(timer, ms(1));
|
|
}
|
|
|
|
assert_not_ready!(stream);
|
|
});
|
|
}
|
|
|
|
#[test]
|
|
fn throttle_dur_0() {
|
|
mocked(|_, _| {
|
|
let (tx, rx) = mpsc::unbounded();
|
|
let mut stream = Throttle::new(rx, ms(0));
|
|
|
|
assert_not_ready!(stream);
|
|
|
|
for i in 0..3 {
|
|
tx.unbounded_send(i).unwrap();
|
|
}
|
|
for i in 0..3 {
|
|
assert_ready_eq!(stream, Some(i));
|
|
}
|
|
|
|
assert_not_ready!(stream);
|
|
});
|
|
}
|