From 3ed5bfd5ac9f12f323bcdb36f8fb840855d02634 Mon Sep 17 00:00:00 2001 From: Lizzy Fleckenstein Date: Fri, 10 Feb 2023 13:50:58 +0100 Subject: Implement UTF-8 decode and move packets to different crate --- src/tests.rs | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/tests.rs (limited to 'src/tests.rs') diff --git a/src/tests.rs b/src/tests.rs new file mode 100644 index 0000000..b013643 --- /dev/null +++ b/src/tests.rs @@ -0,0 +1,30 @@ +use super::*; + +fn reserialize(item: &T) -> T { + let mut writer = Vec::new(); + item.mt_serialize::(&mut writer).unwrap(); + + let mut reader = std::io::Cursor::new(writer); + T::mt_deserialize::(&mut reader).unwrap() +} + +#[test] +fn test_reserialize() { + let vec = vec![1, 2, 3]; + // encoded with 8-bit length + assert_eq!(vec, reserialize::(&vec)); + + let vec2 = vec![1, 2, 3]; + // encoded without length - drains the Reader + assert_eq!(vec2, reserialize::<(), _>(&vec2)); + + let st: String = "ยต รŸ ็ง ๐Ÿ˜€\n".into(); + // encoded as UTF-16 with 32-bit length (also works with () or other types) + assert_eq!(st, reserialize::, _>(&st)); + + let long: Vec<_> = (0..=256).collect(); + assert!(matches!( + long.mt_serialize::(&mut Vec::new()), + Err(SerializeError::TooBig(_)) + )); +} -- cgit v1.2.3