[clangd] Add JSON tests with invalid unicode
authorSam McCall <sam.mccall@gmail.com>
Tue, 21 Nov 2017 18:40:43 +0000 (18:40 +0000)
committerSam McCall <sam.mccall@gmail.com>
Tue, 21 Nov 2017 18:40:43 +0000 (18:40 +0000)
llvm-svn: 318791

clang-tools-extra/unittests/clangd/JSONExprTests.cpp

index 25f4384..25be3fb 100644 (file)
@@ -139,7 +139,10 @@ TEST(JSONTest, Parse) {
   Compare("\"\x7f\"", "\x7f");
   Compare(R"("\ud801\udc37")", "\U00010437"); // UTF16 surrogate pair escape.
   Compare("\"\xE2\x82\xAC\xF0\x9D\x84\x9E\"", "\u20ac\U0001d11e"); // UTF8
-  Compare(R"("\ud801")", "\ufffd"); // Invalid codepoint.
+  Compare(
+      R"("LoneLeading=\ud801, LoneTrailing=\udc01, LeadingLeadingTrailing=\ud801\ud801\udc37")",
+      "LoneLeading=\ufffd, LoneTrailing=\ufffd, "
+      "LeadingLeadingTrailing=\ufffd\U00010437"); // Invalid unicode.
 
   Compare(R"({"":0,"":0})", obj{{"", 0}});
   Compare(R"({"obj":{},"arr":[]})", obj{{"obj", obj{}}, {"arr", {}}});