From 84a6f0d2322c8a3e6fac28fe1dfaf9fa09d485bd Mon Sep 17 00:00:00 2001 From: bruvzg <7645683+bruvzg@users.noreply.github.com> Date: Fri, 28 Jul 2023 12:19:05 +0300 Subject: [PATCH] [String] Fix Unicode parsing error message encoding and related JSON tests. --- core/string/ustring.cpp | 2 +- tests/core/io/test_json.h | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/core/string/ustring.cpp b/core/string/ustring.cpp index 12e64237248..376d0832d4e 100644 --- a/core/string/ustring.cpp +++ b/core/string/ustring.cpp @@ -1750,7 +1750,7 @@ Vector String::hex_decode() const { void String::print_unicode_error(const String &p_message, bool p_critical) const { if (p_critical) { - print_error(vformat("Unicode parsing error, some characters were replaced with � (U+FFFD): %s", p_message)); + print_error(vformat(U"Unicode parsing error, some characters were replaced with � (U+FFFD): %s", p_message)); } else { print_error(vformat("Unicode parsing error: %s", p_message)); } diff --git a/tests/core/io/test_json.h b/tests/core/io/test_json.h index 73c7ac7a2ef..bf2ed427407 100644 --- a/tests/core/io/test_json.h +++ b/tests/core/io/test_json.h @@ -186,20 +186,21 @@ TEST_CASE("[JSON] Parsing escape sequences") { } SUBCASE("Valid unicode escape sequences") { - String json_string = "\"\\u0000\""; + String json_string = "\"\\u0020\""; json.parse(json_string); CHECK_MESSAGE( json.get_error_line() == 0, - vformat("Parsing valid unicode escape sequence with value `0000` as JSON should parse successfully.")); + vformat("Parsing valid unicode escape sequence with value `0020` as JSON should parse successfully.")); String json_value = json.get_data(); CHECK_MESSAGE( - json_value == "\0", - vformat("Parsing valid unicode escape sequence with value `0000` as JSON should return the expected value.")); + json_value == " ", + vformat("Parsing valid unicode escape sequence with value `0020` as JSON should return the expected value.")); } SUBCASE("Invalid escape sequences") { + ERR_PRINT_OFF for (char32_t i = 0; i < 128; i++) { bool skip = false; for (int j = 0; j < valid_escapes.size(); j++) { @@ -228,6 +229,7 @@ TEST_CASE("[JSON] Parsing escape sequences") { err == ERR_PARSE_ERROR, vformat("Parsing invalid escape sequence with ASCII value `%d` as JSON should fail to parse with ERR_PARSE_ERROR.", i)); } + ERR_PRINT_ON } } } // namespace TestJSON