summaryrefslogtreecommitdiffstats
path: root/tokio/tests/stream_chain.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tokio/tests/stream_chain.rs')
-rw-r--r--tokio/tests/stream_chain.rs24
1 files changed, 24 insertions, 0 deletions
diff --git a/tokio/tests/stream_chain.rs b/tokio/tests/stream_chain.rs
index 0e14618b..98461a8c 100644
--- a/tokio/tests/stream_chain.rs
+++ b/tokio/tests/stream_chain.rs
@@ -69,3 +69,27 @@ async fn pending_first() {
assert_eq!(stream.size_hint(), (0, None));
assert_eq!(None, assert_ready!(stream.poll_next()));
}
+
+#[test]
+fn size_overflow() {
+ struct Monster;
+
+ impl tokio::stream::Stream for Monster {
+ type Item = ();
+ fn poll_next(
+ self: std::pin::Pin<&mut Self>,
+ _cx: &mut std::task::Context<'_>,
+ ) -> std::task::Poll<Option<()>> {
+ panic!()
+ }
+
+ fn size_hint(&self) -> (usize, Option<usize>) {
+ (usize::max_value(), Some(usize::max_value()))
+ }
+ }
+
+ let m1 = Monster;
+ let m2 = Monster;
+ let m = m1.chain(m2);
+ assert_eq!(m.size_hint(), (usize::max_value(), None));
+}