Skip to content

Commit 6ee1a13

Browse files
committedMar 7, 2025
Add tests for out of bounds
1 parent a132fcb commit 6ee1a13

File tree

1 file changed

+40
-1
lines changed

1 file changed

+40
-1
lines changed
 

‎library/std/src/io/tests.rs

+40-1
Original file line numberDiff line numberDiff line change
@@ -470,10 +470,49 @@ fn take_seek() -> io::Result<()> {
470470
assert_eq!(buf2, [b'2', b'3']);
471471

472472
assert_eq!(take.seek(SeekFrom::Current(2))?, 4);
473-
474473
Ok(())
475474
}
476475

476+
#[test]
477+
#[should_panic]
478+
fn take_seek_out_of_bounds_start() {
479+
let buf = Cursor::new(b"0123456789");
480+
let mut take = buf.take(2);
481+
take.seek(SeekFrom::Start(3)).unwrap();
482+
}
483+
484+
#[test]
485+
#[should_panic]
486+
fn take_seek_out_of_bounds_end_forward() {
487+
let buf = Cursor::new(b"0123456789");
488+
let mut take = buf.take(2);
489+
take.seek(SeekFrom::End(1)).unwrap();
490+
}
491+
492+
#[test]
493+
#[should_panic]
494+
fn take_seek_out_of_bounds_end_before_start() {
495+
let buf = Cursor::new(b"0123456789");
496+
let mut take = buf.take(2);
497+
take.seek(SeekFrom::End(-3)).unwrap();
498+
}
499+
500+
#[test]
501+
#[should_panic]
502+
fn take_seek_out_of_bounds_current_before_start() {
503+
let buf = Cursor::new(b"0123456789");
504+
let mut take = buf.take(2);
505+
take.seek(SeekFrom::Current(-1)).unwrap();
506+
}
507+
508+
#[test]
509+
#[should_panic]
510+
fn take_seek_out_of_bounds_current_after_end() {
511+
let buf = Cursor::new(b"0123456789");
512+
let mut take = buf.take(2);
513+
take.seek(SeekFrom::Current(3)).unwrap();
514+
}
515+
477516
struct ExampleHugeRangeOfZeroes {
478517
position: u64,
479518
}

0 commit comments

Comments
 (0)