From 672babe817dc6460e2d27bba66355d6197fd9d8e Mon Sep 17 00:00:00 2001 From: cxl Date: Fri, 9 Jun 2017 07:52:00 +0000 Subject: [PATCH] .autotest git-svn-id: svn://ultimatepp.org/upp/trunk@11150 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- .../CParserSurrogatePairs.cpp | 27 ++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/autotest/CParserSurrogatePairs/CParserSurrogatePairs.cpp b/autotest/CParserSurrogatePairs/CParserSurrogatePairs.cpp index cb3e333ef..03ec09517 100644 --- a/autotest/CParserSurrogatePairs/CParserSurrogatePairs.cpp +++ b/autotest/CParserSurrogatePairs/CParserSurrogatePairs.cpp @@ -2,6 +2,21 @@ using namespace Upp; +void CheckError(const char *err) +{ + try { + CParser p(err); + p.ReadString(); + } + catch(CParser::Error error) { + DUMP(error); + return; + } + + DUMP(err); + ASSERT(0); +} + CONSOLE_APP_MAIN { String utf8 = "\xF0\x9F\x91\x8D"; @@ -9,12 +24,18 @@ CONSOLE_APP_MAIN DUMPHEX(ToUtf8(0x1F44D)); ASSERT(ToUtf8(0x1F44D) == utf8); - CParser p("\"\\ud83d\\udc4d\""); - p.UnicodeEscape(); + CParser p("\"\\ud83d\\udc4d\\U0001F44D\""); String h = p.ReadString(); DUMPHEX(h); - ASSERT(h == utf8); + ASSERT(h == utf8 + utf8); + + CheckError("\"\\ud83d1\\udc4d\\U0001F44D\""); + CheckError("\"\\ud83d\\u0000\\U0001F44D\""); + CheckError("\"\\ud83d\\U0001F44D\""); + CheckError("\"\\ud83d\\udc4d\\U000F44D\""); + CheckError("\"\\u83d"); + CheckError("\"\\U83d"); }