1 //===-- DemangleTest.cpp --------------------------------------------------===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #include "llvm/Demangle/Demangle.h" 11 #include "gmock/gmock.h" 12 13 using namespace llvm; 14 15 TEST(Demangle, demangleTest) { 16 EXPECT_EQ(demangle("_"), "_"); 17 EXPECT_EQ(demangle("_Z3fooi"), "foo(int)"); 18 EXPECT_EQ(demangle("__Z3fooi"), "foo(int)"); 19 EXPECT_EQ(demangle("___Z3fooi_block_invoke"), 20 "invocation function for block in foo(int)"); 21 EXPECT_EQ(demangle("____Z3fooi_block_invoke"), 22 "invocation function for block in foo(int)"); 23 EXPECT_EQ(demangle("?foo@@YAXH@Z"), "void __cdecl foo(int)"); 24 EXPECT_EQ(demangle("foo"), "foo"); 25 } 26