()
| 222 | |
| 223 | #[test] |
| 224 | fn test_eager_serialize() { |
| 225 | type Buf = EagerBuffer<U4>; |
| 226 | |
| 227 | let mut buf1 = Buf::default(); |
| 228 | let ser0 = buf1.serialize(); |
| 229 | assert_eq!(&ser0[..], &[0, 0, 0, 0]); |
| 230 | assert_eq!(Buf::deserialize(&ser0).unwrap().serialize(), ser0); |
| 231 | |
| 232 | buf1.digest_blocks(&[41, 42], |_| {}); |
| 233 | |
| 234 | let ser1 = buf1.serialize(); |
| 235 | assert_eq!(&ser1[..], &[2, 41, 42, 0]); |
| 236 | |
| 237 | let mut buf2 = Buf::deserialize(&ser1).unwrap(); |
| 238 | assert_eq!(buf1.serialize(), ser1); |
| 239 | |
| 240 | buf1.digest_blocks(&[43], |_| {}); |
| 241 | buf2.digest_blocks(&[43], |_| {}); |
| 242 | |
| 243 | let ser2 = buf1.serialize(); |
| 244 | assert_eq!(&ser2[..], &[3, 41, 42, 43]); |
| 245 | assert_eq!(buf1.serialize(), ser2); |
| 246 | |
| 247 | let mut buf3 = Buf::deserialize(&ser2).unwrap(); |
| 248 | assert_eq!(buf3.serialize(), ser2); |
| 249 | |
| 250 | buf1.digest_blocks(&[44], |_| {}); |
| 251 | buf2.digest_blocks(&[44], |_| {}); |
| 252 | buf3.digest_blocks(&[44], |_| {}); |
| 253 | |
| 254 | let ser3 = buf1.serialize(); |
| 255 | assert_eq!(&ser3[..], &[0, 0, 0, 0]); |
| 256 | assert_eq!(buf2.serialize(), ser3); |
| 257 | assert_eq!(buf3.serialize(), ser3); |
| 258 | |
| 259 | // Invalid position |
| 260 | let buf = Array([0, 0, 0, 4]); |
| 261 | assert!(Buf::deserialize(&buf).is_err()); |
| 262 | let buf = Array([0, 0, 0, 10]); |
| 263 | assert!(Buf::deserialize(&buf).is_err()); |
| 264 | // "Garbage" bytes are not zeroized |
| 265 | let buf = Array([0, 1, 0, 0]); |
| 266 | assert!(Buf::deserialize(&buf).is_err()); |
| 267 | let buf = Array([1, 0, 1, 0]); |
| 268 | assert!(Buf::deserialize(&buf).is_err()); |
| 269 | let buf = Array([2, 0, 0, 1]); |
| 270 | assert!(Buf::deserialize(&buf).is_err()); |
| 271 | } |
| 272 | |
| 273 | #[test] |
| 274 | fn test_lazy_serialize() { |
nothing calls this directly
no test coverage detected