summaryrefslogtreecommitdiffstats
path: root/third_party/rust/tokio-stream/tests/time_throttle.rs
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/rust/tokio-stream/tests/time_throttle.rs')
-rw-r--r--third_party/rust/tokio-stream/tests/time_throttle.rs28
1 files changed, 28 insertions, 0 deletions
diff --git a/third_party/rust/tokio-stream/tests/time_throttle.rs b/third_party/rust/tokio-stream/tests/time_throttle.rs
new file mode 100644
index 0000000000..e6c9917be3
--- /dev/null
+++ b/third_party/rust/tokio-stream/tests/time_throttle.rs
@@ -0,0 +1,28 @@
+#![warn(rust_2018_idioms)]
+#![cfg(all(feature = "time", feature = "sync", feature = "io-util"))]
+
+use tokio::time;
+use tokio_stream::StreamExt;
+use tokio_test::*;
+
+use std::time::Duration;
+
+#[tokio::test]
+async fn usage() {
+ time::pause();
+
+ let mut stream = task::spawn(futures::stream::repeat(()).throttle(Duration::from_millis(100)));
+
+ 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());
+}