summaryrefslogtreecommitdiffstats
path: root/util/stream/str_ut.cpp
diff options
context:
space:
mode:
authorAlexander Smirnov <[email protected]>2024-01-31 17:22:33 +0300
committerAlexander Smirnov <[email protected]>2024-01-31 17:22:33 +0300
commit52be5dbdd420165c68e7e90ba8f1d2f00da041f6 (patch)
tree5d47f5b2ff4e6a7c8e75d33931a1e683949b7229 /util/stream/str_ut.cpp
parentea57c8867ceca391357c3c5ffcc5ba6738b49adc (diff)
parent809f0cf2fdfddfbeacc2256ffdbaaf5808ce5ed4 (diff)
Merge branch 'mergelibs12' into main
Diffstat (limited to 'util/stream/str_ut.cpp')
-rw-r--r--util/stream/str_ut.cpp38
1 files changed, 38 insertions, 0 deletions
diff --git a/util/stream/str_ut.cpp b/util/stream/str_ut.cpp
index fc6b46c31a4..534b58d71cc 100644
--- a/util/stream/str_ut.cpp
+++ b/util/stream/str_ut.cpp
@@ -149,4 +149,42 @@ Y_UNIT_TEST_SUITE(TStringInputOutputTest) {
// Check old stream is in a valid state
output1 << "baz";
}
+
+ // There is no distinct tests for Out<> via IOutputStream.
+ // Let's tests strings output here.
+ Y_UNIT_TEST(TestWritingWideStrings) {
+ using namespace std::literals::string_literals;
+ TString str;
+ TStringOutput stream(str);
+
+ // test char16_t
+ const char16_t* utf16Data = u"Быть или не быть? Вот в чём вопрос";
+ stream << std::u16string(utf16Data);
+ UNIT_ASSERT_STRINGS_EQUAL(str, "Быть или не быть? Вот в чём вопрос");
+ str.clear();
+
+ stream << std::u16string_view(utf16Data);
+ UNIT_ASSERT_STRINGS_EQUAL(str, "Быть или не быть? Вот в чём вопрос");
+ str.clear();
+
+ // test char32_t
+ const char32_t* utf32Data = U"Быть или не быть? Вот в чём вопрос";
+ stream << std::u32string(utf32Data);
+ UNIT_ASSERT_STRINGS_EQUAL(str, "Быть или не быть? Вот в чём вопрос");
+ str.clear();
+
+ stream << std::u32string_view(utf32Data);
+ UNIT_ASSERT_STRINGS_EQUAL(str, "Быть или не быть? Вот в чём вопрос");
+ str.clear();
+
+ // test wchar_t
+ const wchar_t* wcharData = L"Быть или не быть? Вот в чём вопрос";
+ stream << std::wstring(wcharData);
+ UNIT_ASSERT_STRINGS_EQUAL(str, "Быть или не быть? Вот в чём вопрос");
+ str.clear();
+
+ stream << std::wstring_view(wcharData);
+ UNIT_ASSERT_STRINGS_EQUAL(str, "Быть или не быть? Вот в чём вопрос");
+ str.clear();
+ }
}