xref: /llvm-project/llvm/unittests/Demangle/DemangleTest.cpp (revision f5356944a18a4c209248d9f4af4ae6c4ec1ac347)
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