mirror of
https://github.com/fmtlib/fmt.git
synced 2025-02-28 16:11:28 +00:00
Test error reporting in UTF8ToUTF16.
This commit is contained in:
parent
dcd039df81
commit
73d98d5d17
@ -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 <typename Converter>
|
||||
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<fmt::internal::UTF16ToUTF8>(
|
||||
"cannot convert string from UTF-16 to UTF-8");
|
||||
}
|
||||
|
||||
TEST(UtilTest, UTF8ToUTF16Error) {
|
||||
CheckUTFConversionError<fmt::internal::UTF8ToUTF16>(
|
||||
"cannot convert string from UTF-8 to UTF-16");
|
||||
}
|
||||
|
||||
// TODO: test UTF16ToUTF8::Convert
|
||||
#endif // _WIN32
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user