mirror of
https://github.com/fmtlib/fmt.git
synced 2025-03-01 10:13:27 +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());
|
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) {
|
TEST(UtilTest, UTF8ToUTF16) {
|
||||||
std::string s = "лошадка";
|
std::string s = "лошадка";
|
||||||
fmt::internal::UTF8ToUTF16 u(s.c_str());
|
fmt::internal::UTF8ToUTF16 u(s.c_str());
|
||||||
@ -259,6 +245,30 @@ TEST(UtilTest, UTF8ToUTF16) {
|
|||||||
EXPECT_EQ(7, u.size());
|
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
|
// TODO: test UTF16ToUTF8::Convert
|
||||||
#endif // _WIN32
|
#endif // _WIN32
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user