diff --git a/test/src/unit-wstring.cpp b/test/src/unit-wstring.cpp index a9f2c194..37cf42db 100644 --- a/test/src/unit-wstring.cpp +++ b/test/src/unit-wstring.cpp @@ -62,6 +62,15 @@ TEST_CASE("wide strings") } } + SECTION("invalid std::wstring") + { + if (wstring_is_utf16()) + { + std::wstring w = L"\"\xDBFF"; + CHECK_THROWS_AS(json::parse(w), json::parse_error&); + } + } + SECTION("std::u16string") { if (u16string_is_utf16()) @@ -72,6 +81,15 @@ TEST_CASE("wide strings") } } + SECTION("invalid std::u16string") + { + if (wstring_is_utf16()) + { + std::u16string w = u"\"\xDBFF"; + CHECK_THROWS_AS(json::parse(w), json::parse_error&); + } + } + SECTION("std::u32string") { if (u32string_is_utf32()) @@ -81,4 +99,13 @@ TEST_CASE("wide strings") CHECK(j.dump() == "[12.2,\"Ⴥaäö💤🧢\"]"); } } + + SECTION("invalid std::u32string") + { + if (u32string_is_utf32()) + { + std::u32string w = U"\"\x110000"; + CHECK_THROWS_AS(json::parse(w), json::parse_error&); + } + } }