diff --git a/delorean_tsm/src/encoders/string.rs b/delorean_tsm/src/encoders/string.rs index fd86321704..3466f06e42 100644 --- a/delorean_tsm/src/encoders/string.rs +++ b/delorean_tsm/src/encoders/string.rs @@ -166,6 +166,15 @@ mod tests { assert_eq!(dst, vec![16, 4, 12, 3, 226, 152, 131]); } + #[test] + fn encode_invalid_utf8() { + let src = vec![&[b'\xC0'][..]]; + let mut dst = vec![]; + + encode(&src, &mut dst).expect("failed to encode src"); + assert_eq!(dst, vec![16, 2, 4, 1, 192]); + } + #[test] fn decode_no_values() { let src: Vec = vec![]; @@ -224,4 +233,13 @@ mod tests { .collect(); assert_eq!(dst_as_strings, vec!["☃"]); } + + #[test] + fn decode_invalid_utf8() { + let src = vec![16, 2, 4, 1, 192]; + let mut dst = vec![]; + + decode(&src, &mut dst).expect("failed to decode src"); + assert_eq!(dst, vec![&[b'\xC0'][..]]); + } }