More fixes for https://github.com/cppformat/cppformat/issues/50.
This commit is contained in:
@@ -410,38 +410,38 @@ TEST(UtilTest, UTF8ToUTF16Error) {
|
||||
|
||||
TEST(UtilTest, UTF16ToUTF8Convert) {
|
||||
fmt::internal::UTF16ToUTF8 u;
|
||||
EXPECT_EQ(ERROR_INVALID_PARAMETER, u.Convert(0));
|
||||
EXPECT_EQ(ERROR_INVALID_PARAMETER, u.convert(0));
|
||||
}
|
||||
#endif // _WIN32
|
||||
|
||||
TEST(UtilTest, StrError) {
|
||||
using fmt::internal::StrError;
|
||||
using fmt::internal::safe_strerror;
|
||||
char *message = 0;
|
||||
char buffer[BUFFER_SIZE];
|
||||
#ifndef NDEBUG
|
||||
EXPECT_DEBUG_DEATH(StrError(EDOM, message = 0, 0), "Assertion");
|
||||
EXPECT_DEBUG_DEATH(StrError(EDOM, message = buffer, 0), "Assertion");
|
||||
EXPECT_DEBUG_DEATH(safe_strerror(EDOM, message = 0, 0), "Assertion");
|
||||
EXPECT_DEBUG_DEATH(safe_strerror(EDOM, message = buffer, 0), "Assertion");
|
||||
#endif
|
||||
buffer[0] = 'x';
|
||||
#ifdef _GNU_SOURCE
|
||||
// Use invalid error code to make sure that StrError returns an error
|
||||
// Use invalid error code to make sure that safe_strerror returns an error
|
||||
// message in the buffer rather than a pointer to a static string.
|
||||
int error_code = -1;
|
||||
#else
|
||||
int error_code = EDOM;
|
||||
#endif
|
||||
|
||||
int result = StrError(error_code, message = buffer, BUFFER_SIZE);
|
||||
int result = safe_strerror(error_code, message = buffer, BUFFER_SIZE);
|
||||
EXPECT_EQ(0, result);
|
||||
std::size_t message_size = std::strlen(message);
|
||||
EXPECT_GE(BUFFER_SIZE - 1u, message_size);
|
||||
EXPECT_EQ(GetSystemErrorMessage(error_code), message);
|
||||
|
||||
// StrError never uses buffer on MinGW.
|
||||
// safe_strerror never uses buffer on MinGW.
|
||||
#ifndef __MINGW32__
|
||||
result = StrError(error_code, message = buffer, message_size);
|
||||
result = safe_strerror(error_code, message = buffer, message_size);
|
||||
EXPECT_EQ(ERANGE, result);
|
||||
result = StrError(error_code, message = buffer, 1);
|
||||
result = safe_strerror(error_code, message = buffer, 1);
|
||||
EXPECT_EQ(buffer, message); // Message should point to buffer.
|
||||
EXPECT_EQ(ERANGE, result);
|
||||
EXPECT_STREQ("", message);
|
||||
|
||||
Reference in New Issue
Block a user