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) {
|
||||
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
|
||||
// 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));
|
||||
}
|
||||
|
||||
#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.
|
||||
|
||||
// bool*.
|
||||
|
Loading…
Reference in New Issue
Block a user