extern crate bytes; extern crate byteorder; extern crate iovec; use bytes::Buf; use iovec::IoVec; use std::io::Cursor; #[test] fn test_fresh_cursor_vec() { let mut buf = Cursor::new(b"hello".to_vec()); assert_eq!(buf.remaining(), 5); assert_eq!(buf.bytes(), b"hello"); buf.advance(2); assert_eq!(buf.remaining(), 3); assert_eq!(buf.bytes(), b"llo"); buf.advance(3); assert_eq!(buf.remaining(), 0); assert_eq!(buf.bytes(), b""); } #[test] fn test_get_u8() { let mut buf = Cursor::new(b"\x21zomg"); assert_eq!(0x21, buf.get_u8()); } #[test] fn test_get_u16() { let buf = b"\x21\x54zomg"; assert_eq!(0x2154, Cursor::new(buf).get_u16_be()); assert_eq!(0x5421, Cursor::new(buf).get_u16_le()); } #[test] #[should_panic] fn test_get_u16_buffer_underflow() { let mut buf = Cursor::new(b"\x21"); buf.get_u16_be(); } #[test] fn test_bufs_vec() { let buf = Cursor::new(b"hello world"); let b1: &[u8] = &mut [0]; let b2: &[u8] = &mut [0]; let mut dst: [&IoVec; 2] = [b1.into(), b2.into()]; assert_eq!(1, buf.bytes_vec(&mut dst[..])); }