From d7cccf48c2e9f5623bd1db82692b54ade2205747 Mon Sep 17 00:00:00 2001 From: Bogdan Opanchuk Date: Sat, 5 Aug 2023 21:30:21 -0700 Subject: [PATCH] Implement RFCs --- serdect/tests/bincode.rs | 11 +++++------ serdect/tests/cbor.rs | 11 ++++------- serdect/tests/messagepack.rs | 10 ++++------ 3 files changed, 13 insertions(+), 19 deletions(-) diff --git a/serdect/tests/bincode.rs b/serdect/tests/bincode.rs index 7f3f37638..85c0289a7 100644 --- a/serdect/tests/bincode.rs +++ b/serdect/tests/bincode.rs @@ -13,9 +13,6 @@ const EXAMPLE_BYTES: [u8; 16] = hex!("000102030405060708090A0B0C0D0EFF"); /// bincode serialization of [`EXAMPLE_BYTES`] as a slice. const BINCODE_SLICE: [u8; 24] = hex!("1000000000000000000102030405060708090A0B0C0D0EFF"); -/// bincode serialization of [`EXAMPLE_BYTES`] as an array. -const BINCODE_ARRAY: [u8; 24] = BINCODE_SLICE; - #[test] fn deserialize_slice() { let deserialized = bincode::deserialize::(&BINCODE_SLICE).unwrap(); @@ -31,14 +28,14 @@ fn deserialize_slice_owned() { #[test] fn deserialize_array() { - let deserialized = bincode::deserialize::>(&BINCODE_ARRAY).unwrap(); + let deserialized = bincode::deserialize::>(&BINCODE_SLICE).unwrap(); assert_eq!(deserialized.0, EXAMPLE_BYTES); } #[test] fn deserialize_array_owned() { let deserialized = - bincode::deserialize_from::<_, array::HexUpperOrBin<16>>(BINCODE_ARRAY.as_ref()).unwrap(); + bincode::deserialize_from::<_, array::HexUpperOrBin<16>>(BINCODE_SLICE.as_ref()).unwrap(); assert_eq!(deserialized.0, EXAMPLE_BYTES); } @@ -52,7 +49,7 @@ fn serialize_slice() { #[test] fn serialize_array() { let serialized = bincode::serialize(&array::HexUpperOrBin::from(EXAMPLE_BYTES)).unwrap(); - assert_eq!(&serialized, &BINCODE_ARRAY); + assert_eq!(&serialized, &BINCODE_SLICE); } proptest! { @@ -68,5 +65,7 @@ proptest! { let serialized = bincode::serialize(&array::HexUpperOrBin::from(bytes)).unwrap(); let deserialized = bincode::deserialize::>(&serialized).unwrap(); prop_assert_eq!(bytes, deserialized.0); + // 8 bytes for the length tag + 32 bytes of data + prop_assert_eq!(serialized.len(), 8 + 32); } } diff --git a/serdect/tests/cbor.rs b/serdect/tests/cbor.rs index 0ffe8ff73..b6d198d3e 100644 --- a/serdect/tests/cbor.rs +++ b/serdect/tests/cbor.rs @@ -16,11 +16,6 @@ const EXAMPLE_BYTES: [u8; 16] = hex!("000102030405060708090A0B0C0D0EFF"); /// (first three bits, `0b010` denote a byte string, and the last five, `0b10000` denote the length) const CBOR_SLICE: [u8; 17] = hex!("50000102030405060708090A0B0C0D0EFF"); -/// CBOR serialization of [`EXAMPLE_BYTES`] as an array. -/// (first three bits, `0b100` denote an array, and the last five, `0b10000` denote the length) -/// Note the 0x18 marker before 0xFF, denoting that the integers are dynamically sized. -const CBOR_ARRAY: [u8; 17] = CBOR_SLICE; - #[test] fn deserialize_slice() { let deserialized = de::from_reader::(CBOR_SLICE.as_ref()).unwrap(); @@ -29,7 +24,7 @@ fn deserialize_slice() { #[test] fn deserialize_array() { - let deserialized = de::from_reader::, _>(CBOR_ARRAY.as_ref()).unwrap(); + let deserialized = de::from_reader::, _>(CBOR_SLICE.as_ref()).unwrap(); assert_eq!(deserialized.0, EXAMPLE_BYTES); } @@ -51,7 +46,7 @@ fn serialize_slice() { #[test] fn serialize_array() { let serialized = serialize(&array::HexUpperOrBin::from(EXAMPLE_BYTES)); - assert_eq!(&serialized, &CBOR_ARRAY); + assert_eq!(&serialized, &CBOR_SLICE); } proptest! { @@ -67,5 +62,7 @@ proptest! { let serialized = serialize(&array::HexUpperOrBin::from(bytes)); let deserialized = de::from_reader::, _>(serialized.as_slice()).unwrap(); prop_assert_eq!(bytes, deserialized.0); + // 1 byte slice tag + 1 byte length tag + 32 bytes of data + prop_assert_eq!(serialized.len(), 2 + 32); } } diff --git a/serdect/tests/messagepack.rs b/serdect/tests/messagepack.rs index 7f9a4b9ab..d55413fc0 100644 --- a/serdect/tests/messagepack.rs +++ b/serdect/tests/messagepack.rs @@ -13,10 +13,6 @@ const EXAMPLE_BYTES: [u8; 16] = hex!("000102030405060708090A0B0C0D0EFF"); /// messagepack serialization of [`EXAMPLE_BYTES`] as a slice. const MESSAGEPACK_SLICE: [u8; 18] = hex!("C410000102030405060708090A0B0C0D0EFF"); -/// messagepack serialization of [`EXAMPLE_BYTES`] as an array. -/// Note the 0xCC marker before 0xFF, denoting that the integers are dynamically sized. -const MESSAGEPACK_ARRAY: [u8; 18] = MESSAGEPACK_SLICE; - #[test] fn deserialize_slice() { let deserialized = @@ -27,7 +23,7 @@ fn deserialize_slice() { #[test] fn deserialize_array() { let deserialized = - rmp_serde::decode::from_slice::>(&MESSAGEPACK_ARRAY).unwrap(); + rmp_serde::decode::from_slice::>(&MESSAGEPACK_SLICE).unwrap(); assert_eq!(deserialized.0, EXAMPLE_BYTES); } @@ -41,7 +37,7 @@ fn serialize_slice() { #[test] fn serialize_array() { let serialized = rmp_serde::encode::to_vec(&array::HexUpperOrBin::from(EXAMPLE_BYTES)).unwrap(); - assert_eq!(&serialized, &MESSAGEPACK_ARRAY); + assert_eq!(&serialized, &MESSAGEPACK_SLICE); } proptest! { @@ -57,5 +53,7 @@ proptest! { let serialized = rmp_serde::encode::to_vec(&array::HexUpperOrBin::from(bytes)).unwrap(); let deserialized = rmp_serde::decode::from_slice::>(&serialized).unwrap(); prop_assert_eq!(bytes, deserialized.0); + // 1 byte slice tag + 1 byte length tag + 32 bytes of data + prop_assert_eq!(serialized.len(), 2 + 32); } }