mirror of
https://github.com/tokio-rs/tokio.git
synced 2026-08-17 00:00:11 +02:00
- Move `tokio` into its own directory. - Remove `path` dependencies. - Run tests with once with crates.io dep and once with patched dep.
52 lines
1.0 KiB
Rust
52 lines
1.0 KiB
Rust
extern crate futures;
|
|
extern crate tokio_executor;
|
|
extern crate tokio_timer;
|
|
|
|
#[macro_use]
|
|
mod support;
|
|
use 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);
|
|
});
|
|
}
|