summaryrefslogtreecommitdiffstats
path: root/third_party/rust/futures/tests/io_window.rs
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/rust/futures/tests/io_window.rs')
-rw-r--r--third_party/rust/futures/tests/io_window.rs30
1 files changed, 30 insertions, 0 deletions
diff --git a/third_party/rust/futures/tests/io_window.rs b/third_party/rust/futures/tests/io_window.rs
new file mode 100644
index 0000000000..8f0d48bc94
--- /dev/null
+++ b/third_party/rust/futures/tests/io_window.rs
@@ -0,0 +1,30 @@
+#![allow(clippy::reversed_empty_ranges)] // This is intentional.
+
+use futures::io::Window;
+
+#[test]
+fn set() {
+ let mut buffer = Window::new(&[1, 2, 3]);
+ buffer.set(..3);
+ assert_eq!(buffer.as_ref(), &[1, 2, 3]);
+ buffer.set(3..3);
+ assert_eq!(buffer.as_ref(), &[]);
+ buffer.set(3..=2); // == 3..3
+ assert_eq!(buffer.as_ref(), &[]);
+ buffer.set(0..2);
+ assert_eq!(buffer.as_ref(), &[1, 2]);
+}
+
+#[test]
+#[should_panic]
+fn set_panic_out_of_bounds() {
+ let mut buffer = Window::new(&[1, 2, 3]);
+ buffer.set(2..4);
+}
+
+#[test]
+#[should_panic]
+fn set_panic_start_is_greater_than_end() {
+ let mut buffer = Window::new(&[1, 2, 3]);
+ buffer.set(3..2);
+}