From b85aa76bd2d93facfeaf184107e811c2dd8da19a Mon Sep 17 00:00:00 2001 From: yhirose Date: Fri, 16 Jan 2026 11:10:34 -0500 Subject: [PATCH] Fix #2321, #2322, #2326 --- test/test.cc | 45 +++++++++++++++++++++++++++------------------ 1 file changed, 27 insertions(+), 18 deletions(-) diff --git a/test/test.cc b/test/test.cc index d364019..5591a12 100644 --- a/test/test.cc +++ b/test/test.cc @@ -27,6 +27,15 @@ #include #include +#if __cplusplus >= 202002L +inline std::string u8_to_string(const char8_t *s) { + return std::string(reinterpret_cast(s)); +} +#define U8(x) u8_to_string(u8##x) +#else +#define U8(x) u8##x +#endif + #define SERVER_CERT_FILE "./cert.pem" #define SERVER_CERT2_FILE "./cert2.pem" #define SERVER_PRIVATE_KEY_FILE "./key.pem" @@ -372,7 +381,7 @@ TEST(DecodePathTest, PercentCharacter) { EXPECT_EQ( decode_path_component( R"(descrip=Gastos%20%C3%A1%C3%A9%C3%AD%C3%B3%C3%BA%C3%B1%C3%91%206)"), - u8"descrip=Gastos áéíóúñÑ 6"); + U8("descrip=Gastos áéíóúñÑ 6")); } TEST(DecodePathTest, PercentCharacterNUL) { @@ -430,9 +439,9 @@ TEST(ClientQueryOrder, PreserveOrder) { } TEST(EncodeQueryParamTest, TestUTF8Characters) { - string chineseCharacters = u8"中国語"; - string russianCharacters = u8"дом"; - string brazilianCharacters = u8"óculos"; + string chineseCharacters = U8("中国語"); + string russianCharacters = U8("дом"); + string brazilianCharacters = U8("óculos"); EXPECT_EQ(httplib::encode_uri_component(chineseCharacters), "%E4%B8%AD%E5%9B%BD%E8%AA%9E"); @@ -457,9 +466,9 @@ TEST(EncodeUriComponentTest, ParseReservedCharactersTest) { } TEST(EncodeUriComponentTest, TestUTF8Characters) { - string chineseCharacters = u8"中国語"; - string russianCharacters = u8"дом"; - string brazilianCharacters = u8"óculos"; + string chineseCharacters = U8("中国語"); + string russianCharacters = U8("дом"); + string brazilianCharacters = U8("óculos"); EXPECT_EQ(httplib::encode_uri_component(chineseCharacters), "%E4%B8%AD%E5%9B%BD%E8%AA%9E"); @@ -491,9 +500,9 @@ TEST(EncodeUriTest, ParseReservedCharactersTest) { } TEST(EncodeUriTest, TestUTF8Characters) { - string chineseCharacters = u8"中国語"; - string russianCharacters = u8"дом"; - string brazilianCharacters = u8"óculos"; + string chineseCharacters = U8("中国語"); + string russianCharacters = U8("дом"); + string brazilianCharacters = U8("óculos"); EXPECT_EQ(httplib::encode_uri(chineseCharacters), "%E4%B8%AD%E5%9B%BD%E8%AA%9E"); @@ -538,9 +547,9 @@ TEST(DecodeUriComponentTest, TestUTF8Characters) { string encodedRussian = "%D0%B4%D0%BE%D0%BC"; string encodedBrazilian = "%C3%B3culos"; - EXPECT_EQ(httplib::decode_uri_component(encodedChinese), u8"中国語"); - EXPECT_EQ(httplib::decode_uri_component(encodedRussian), u8"дом"); - EXPECT_EQ(httplib::decode_uri_component(encodedBrazilian), u8"óculos"); + EXPECT_EQ(httplib::decode_uri_component(encodedChinese), U8("中国語")); + EXPECT_EQ(httplib::decode_uri_component(encodedRussian), U8("дом")); + EXPECT_EQ(httplib::decode_uri_component(encodedBrazilian), U8("óculos")); } TEST(DecodeUriComponentTest, TestPathComponentDecoding) { @@ -567,9 +576,9 @@ TEST(DecodeUriTest, TestUTF8Characters) { string encodedRussian = "%D0%B4%D0%BE%D0%BC"; string encodedBrazilian = "%C3%B3culos"; - EXPECT_EQ(httplib::decode_uri(encodedChinese), u8"中国語"); - EXPECT_EQ(httplib::decode_uri(encodedRussian), u8"дом"); - EXPECT_EQ(httplib::decode_uri(encodedBrazilian), u8"óculos"); + EXPECT_EQ(httplib::decode_uri(encodedChinese), U8("中国語")); + EXPECT_EQ(httplib::decode_uri(encodedRussian), U8("дом")); + EXPECT_EQ(httplib::decode_uri(encodedBrazilian), U8("óculos")); } TEST(DecodeUriTest, TestCompleteUri) { @@ -7422,10 +7431,10 @@ TEST(MountTest, MultibytesPathName) { Client cli("localhost", PORT); - auto res = cli.Get(u8"/日本語Dir/日本語File.txt"); + auto res = cli.Get(U8("/日本語Dir/日本語File.txt")); ASSERT_TRUE(res); EXPECT_EQ(StatusCode::OK_200, res->status); - EXPECT_EQ(u8"日本語コンテンツ", res->body); + EXPECT_EQ(U8("日本語コンテンツ"), res->body); } TEST(KeepAliveTest, ReadTimeout) {