From 2f812d0363034efc0f65ffbd35168d99d458aedb Mon Sep 17 00:00:00 2001 From: David Tolnay Date: Sat, 27 Feb 2021 20:44:05 -0800 Subject: [PATCH] Add test of RawValue deserialization from invalid utf-8 --- tests/test.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/tests/test.rs b/tests/test.rs index ffe58c9..2fe7c56 100644 --- a/tests/test.rs +++ b/tests/test.rs @@ -2201,6 +2201,25 @@ fn test_boxed_raw_value() { assert_eq!(r#"["a",42,{"foo": "bar"},null]"#, array_to_string); } +#[cfg(feature = "raw_value")] +#[test] +fn test_raw_invalid_utf8() { + use serde_json::value::RawValue; + + let j = &[b'"', b'\xCE', b'\xF8', b'"']; + let value_err = serde_json::from_slice::(j).unwrap_err(); + let raw_value_err = serde_json::from_slice::>(j).unwrap_err(); + + assert_eq!( + value_err.to_string(), + "invalid unicode code point at line 1 column 4", + ); + assert_eq!( + raw_value_err.to_string(), + "invalid unicode code point at line 1 column 4", + ); +} + #[test] fn test_borrow_in_map_key() { #[derive(Deserialize, Debug)]