| 244 | |
| 245 | #[test] |
| 246 | fn test_codec6() { |
| 247 | let mut codec = BytesCodec::new(); |
| 248 | let mut buf = BytesMut::new(); |
| 249 | let mut bytes: Vec<u8> = Vec::new(); |
| 250 | bytes.resize(0x3FFFFF + 1, 6); |
| 251 | assert!(codec.encode(bytes.into(), &mut buf).is_ok()); |
| 252 | let buf_saved = buf.clone(); |
| 253 | assert_eq!(buf.len(), 0x3FFFFF + 4 + 1); |
| 254 | if let Ok(Some(res)) = codec.decode(&mut buf) { |
| 255 | assert_eq!(res.len(), 0x3FFFFF + 1); |
| 256 | assert_eq!(res[0], 6); |
| 257 | } else { |
| 258 | panic!(); |
| 259 | } |
| 260 | let mut codec2 = BytesCodec::new(); |
| 261 | let mut buf2 = BytesMut::new(); |
| 262 | buf2.extend(&buf_saved[0..1]); |
| 263 | if let Ok(None) = codec2.decode(&mut buf2) { |
| 264 | } else { |
| 265 | panic!(); |
| 266 | } |
| 267 | buf2.extend(&buf_saved[1..6]); |
| 268 | if let Ok(None) = codec2.decode(&mut buf2) { |
| 269 | } else { |
| 270 | panic!(); |
| 271 | } |
| 272 | buf2.extend(&buf_saved[6..]); |
| 273 | if let Ok(Some(res)) = codec2.decode(&mut buf2) { |
| 274 | assert_eq!(res.len(), 0x3FFFFF + 1); |
| 275 | assert_eq!(res[0], 6); |
| 276 | } else { |
| 277 | panic!(); |
| 278 | } |
| 279 | } |
| 280 | } |