1 //===-- CPlusPlusLanguageTest.cpp -------------------------------*- C++ -*-===// 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 "gtest/gtest.h" 11 12 #include "Plugins/Language/CPlusPlus/CPlusPlusLanguage.h" 13 14 using namespace lldb_private; 15 16 TEST(CPlusPlusLanguage, MethodName) { 17 struct TestCase { 18 std::string input; 19 std::string context, basename, arguments, qualifiers, scope_qualified_name; 20 }; 21 22 TestCase test_cases[] = { 23 {"foo::bar(baz)", "foo", "bar", "(baz)", "", "foo::bar"}, 24 {"std::basic_ostream<char, std::char_traits<char> >& " 25 "std::operator<<<std::char_traits<char> >" 26 "(std::basic_ostream<char, std::char_traits<char> >&, char const*)", 27 "std", "operator<<<std::char_traits<char> >", 28 "(std::basic_ostream<char, std::char_traits<char> >&, char const*)", "", 29 "std::operator<<<std::char_traits<char> >"}}; 30 31 for (const auto &test : test_cases) { 32 CPlusPlusLanguage::MethodName method(ConstString(test.input)); 33 EXPECT_TRUE(method.IsValid()); 34 EXPECT_EQ(test.context, method.GetContext()); 35 EXPECT_EQ(test.basename, method.GetBasename()); 36 EXPECT_EQ(test.arguments, method.GetArguments()); 37 EXPECT_EQ(test.qualifiers, method.GetQualifiers()); 38 EXPECT_EQ(test.scope_qualified_name, method.GetScopeQualifiedName()); 39 } 40 } 41