@@ -470,10 +470,49 @@ fn take_seek() -> io::Result<()> {
470
470
assert_eq ! ( buf2, [ b'2' , b'3' ] ) ;
471
471
472
472
assert_eq ! ( take. seek( SeekFrom :: Current ( 2 ) ) ?, 4 ) ;
473
-
474
473
Ok ( ( ) )
475
474
}
476
475
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
+
477
516
struct ExampleHugeRangeOfZeroes {
478
517
position : u64 ,
479
518
}
0 commit comments