diff --git a/format-test.cc b/format-test.cc index 0884344a..0d0ab5bc 100644 --- a/format-test.cc +++ b/format-test.cc @@ -238,20 +238,6 @@ TEST(UtilTest, UTF16ToUTF8) { EXPECT_EQ(s.size(), u.size()); } -TEST(UtilTest, UTF16ToUTF8Error) { - fmt::Writer message; - fmt::internal::FormatWinErrorMessage(message, - ERROR_INVALID_PARAMETER, "cannot convert string from UTF-16 to UTF-8"); - fmt::SystemError error("", 0); - try { - fmt::internal::UTF16ToUTF8 u(0); - } catch (const fmt::SystemError &e) { - error = e; - } - EXPECT_EQ(ERROR_INVALID_PARAMETER, error.error_code()); - EXPECT_EQ(message.str(), error.what()); -} - TEST(UtilTest, UTF8ToUTF16) { std::string s = "лошадка"; fmt::internal::UTF8ToUTF16 u(s.c_str()); @@ -259,6 +245,30 @@ TEST(UtilTest, UTF8ToUTF16) { EXPECT_EQ(7, u.size()); } +template +void CheckUTFConversionError(const char *message) { + fmt::Writer out; + fmt::internal::FormatWinErrorMessage(out, ERROR_INVALID_PARAMETER, message); + fmt::SystemError error("", 0); + try { + Converter(0); + } catch (const fmt::SystemError &e) { + error = e; + } + EXPECT_EQ(ERROR_INVALID_PARAMETER, error.error_code()); + EXPECT_EQ(out.str(), error.what()); +} + +TEST(UtilTest, UTF16ToUTF8Error) { + CheckUTFConversionError( + "cannot convert string from UTF-16 to UTF-8"); +} + +TEST(UtilTest, UTF8ToUTF16Error) { + CheckUTFConversionError( + "cannot convert string from UTF-8 to UTF-16"); +} + // TODO: test UTF16ToUTF8::Convert #endif // _WIN32