Googletest export
Adds support for printing pointers of types char8_t, char16_t, and char32_t. PiperOrigin-RevId: 316112767
This commit is contained in:
parent
13a433a94d
commit
8567b09290
@ -499,6 +499,26 @@ inline void PrintTo(const unsigned char* s, ::std::ostream* os) {
|
|||||||
inline void PrintTo(unsigned char* s, ::std::ostream* os) {
|
inline void PrintTo(unsigned char* s, ::std::ostream* os) {
|
||||||
PrintTo(ImplicitCast_<const void*>(s), os);
|
PrintTo(ImplicitCast_<const void*>(s), os);
|
||||||
}
|
}
|
||||||
|
#ifdef __cpp_char8_t
|
||||||
|
inline void PrintTo(const char8_t* s, ::std::ostream* os) {
|
||||||
|
PrintTo(ImplicitCast_<const void*>(s), os);
|
||||||
|
}
|
||||||
|
inline void PrintTo(char8_t* s, ::std::ostream* os) {
|
||||||
|
PrintTo(ImplicitCast_<const void*>(s), os);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
inline void PrintTo(const char16_t* s, ::std::ostream* os) {
|
||||||
|
PrintTo(ImplicitCast_<const void*>(s), os);
|
||||||
|
}
|
||||||
|
inline void PrintTo(char16_t* s, ::std::ostream* os) {
|
||||||
|
PrintTo(ImplicitCast_<const void*>(s), os);
|
||||||
|
}
|
||||||
|
inline void PrintTo(const char32_t* s, ::std::ostream* os) {
|
||||||
|
PrintTo(ImplicitCast_<const void*>(s), os);
|
||||||
|
}
|
||||||
|
inline void PrintTo(char32_t* s, ::std::ostream* os) {
|
||||||
|
PrintTo(ImplicitCast_<const void*>(s), os);
|
||||||
|
}
|
||||||
|
|
||||||
// MSVC can be configured to define wchar_t as a typedef of unsigned
|
// MSVC can be configured to define wchar_t as a typedef of unsigned
|
||||||
// short. It defines _NATIVE_WCHAR_T_DEFINED when wchar_t is a native
|
// short. It defines _NATIVE_WCHAR_T_DEFINED when wchar_t is a native
|
||||||
|
@ -513,6 +513,56 @@ TEST(PrintCharPointerTest, ConstUnsignedChar) {
|
|||||||
EXPECT_EQ("NULL", Print(p));
|
EXPECT_EQ("NULL", Print(p));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef __cpp_char8_t
|
||||||
|
// char8_t*
|
||||||
|
TEST(PrintCharPointerTest, Char8) {
|
||||||
|
char8_t* p = reinterpret_cast<char8_t*>(0x1234);
|
||||||
|
EXPECT_EQ(PrintPointer(p), Print(p));
|
||||||
|
p = nullptr;
|
||||||
|
EXPECT_EQ("NULL", Print(p));
|
||||||
|
}
|
||||||
|
|
||||||
|
// const char8_t*
|
||||||
|
TEST(PrintCharPointerTest, ConstChar8) {
|
||||||
|
const char8_t* p = reinterpret_cast<const char8_t*>(0x1234);
|
||||||
|
EXPECT_EQ(PrintPointer(p), Print(p));
|
||||||
|
p = nullptr;
|
||||||
|
EXPECT_EQ("NULL", Print(p));
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// char16_t*
|
||||||
|
TEST(PrintCharPointerTest, Char16) {
|
||||||
|
char16_t* p = reinterpret_cast<char16_t*>(0x1234);
|
||||||
|
EXPECT_EQ(PrintPointer(p), Print(p));
|
||||||
|
p = nullptr;
|
||||||
|
EXPECT_EQ("NULL", Print(p));
|
||||||
|
}
|
||||||
|
|
||||||
|
// const char16_t*
|
||||||
|
TEST(PrintCharPointerTest, ConstChar16) {
|
||||||
|
const char16_t* p = reinterpret_cast<const char16_t*>(0x1234);
|
||||||
|
EXPECT_EQ(PrintPointer(p), Print(p));
|
||||||
|
p = nullptr;
|
||||||
|
EXPECT_EQ("NULL", Print(p));
|
||||||
|
}
|
||||||
|
|
||||||
|
// char32_t*
|
||||||
|
TEST(PrintCharPointerTest, Char32) {
|
||||||
|
char32_t* p = reinterpret_cast<char32_t*>(0x1234);
|
||||||
|
EXPECT_EQ(PrintPointer(p), Print(p));
|
||||||
|
p = nullptr;
|
||||||
|
EXPECT_EQ("NULL", Print(p));
|
||||||
|
}
|
||||||
|
|
||||||
|
// const char32_t*
|
||||||
|
TEST(PrintCharPointerTest, ConstChar32) {
|
||||||
|
const char32_t* p = reinterpret_cast<const char32_t*>(0x1234);
|
||||||
|
EXPECT_EQ(PrintPointer(p), Print(p));
|
||||||
|
p = nullptr;
|
||||||
|
EXPECT_EQ("NULL", Print(p));
|
||||||
|
}
|
||||||
|
|
||||||
// Tests printing pointers to simple, built-in types.
|
// Tests printing pointers to simple, built-in types.
|
||||||
|
|
||||||
// bool*.
|
// bool*.
|
||||||
|
Loading…
Reference in New Issue
Block a user