MCPcopy Create free account
hub / github.com/RustCrypto/utils / test_eager_serialize

Function test_eager_serialize

block-buffer/tests/mod.rs:224–271  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

222
223#[test]
224fn 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]
274fn test_lazy_serialize() {

Callers

nothing calls this directly

Calls 5

defaultFunction · 0.85
deserializeFunction · 0.85
digest_blocksMethod · 0.80
serializeMethod · 0.45
unwrapMethod · 0.45

Tested by

no test coverage detected