Changeset View
Changeset View
Standalone View
Standalone View
llvm/unittests/Support/TypeNameTest.cpp
Show All 11 Lines | |||||
using namespace llvm; | using namespace llvm; | ||||
namespace { | namespace { | ||||
namespace N1 { | namespace N1 { | ||||
struct S1 {}; | struct S1 {}; | ||||
class C1 {}; | class C1 {}; | ||||
union U1 {}; | union U1 {}; | ||||
} // namespace N1 | |||||
template <typename T> class A {}; | |||||
} // anonymous namespace | |||||
namespace llvm { | |||||
template <typename T> | |||||
class TypeNameTraits<A<T>> { | |||||
public: | |||||
static inline StringRef getTypeName() { | |||||
return "customized_type_name"; | |||||
} | } | ||||
}; | |||||
} // namespace llvm | |||||
namespace { | |||||
TEST(TypeNameTest, Names) { | TEST(TypeNameTest, Names) { | ||||
struct S2 {}; | struct S2 {}; | ||||
StringRef S1Name = getTypeName<N1::S1>(); | StringRef S1Name = getTypeName<N1::S1>(); | ||||
StringRef C1Name = getTypeName<N1::C1>(); | StringRef C1Name = getTypeName<N1::C1>(); | ||||
StringRef U1Name = getTypeName<N1::U1>(); | StringRef U1Name = getTypeName<N1::U1>(); | ||||
StringRef S2Name = getTypeName<S2>(); | StringRef S2Name = getTypeName<S2>(); | ||||
Show All 11 Lines | |||||
#else | #else | ||||
EXPECT_EQ("UNKNOWN_TYPE", S1Name); | EXPECT_EQ("UNKNOWN_TYPE", S1Name); | ||||
EXPECT_EQ("UNKNOWN_TYPE", C1Name); | EXPECT_EQ("UNKNOWN_TYPE", C1Name); | ||||
EXPECT_EQ("UNKNOWN_TYPE", U1Name); | EXPECT_EQ("UNKNOWN_TYPE", U1Name); | ||||
EXPECT_EQ("UNKNOWN_TYPE", S2Name); | EXPECT_EQ("UNKNOWN_TYPE", S2Name); | ||||
#endif | #endif | ||||
} | } | ||||
} // end anonymous namespace | TEST(TestNameTest, TypeNameTraitsPartialSpecialization) { | ||||
StringRef AIntName = getTypeName<A<int>>(); | |||||
EXPECT_EQ("customized_type_name", AIntName); | |||||
} | |||||
} // anonymous namespace |