//===-- CPlusPlusLanguageTest.cpp -------------------------------*- C++ -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #include "gtest/gtest.h" #include "Plugins/Language/CPlusPlus/CPlusPlusLanguage.h" using namespace lldb_private; TEST(CPlusPlusLanguage, MethodName) { struct TestCase { std::string input; std::string context, basename, arguments, qualifiers, scope_qualified_name; }; TestCase test_cases[] = { {"foo::bar(baz)", "foo", "bar", "(baz)", "", "foo::bar"}, {"std::basic_ostream >& " "std::operator<< >" "(std::basic_ostream >&, char const*)", "std", "operator<< >", "(std::basic_ostream >&, char const*)", "", "std::operator<< >"}}; for (const auto &test : test_cases) { CPlusPlusLanguage::MethodName method(ConstString(test.input)); EXPECT_TRUE(method.IsValid()); EXPECT_EQ(test.context, method.GetContext()); EXPECT_EQ(test.basename, method.GetBasename()); EXPECT_EQ(test.arguments, method.GetArguments()); EXPECT_EQ(test.qualifiers, method.GetQualifiers()); EXPECT_EQ(test.scope_qualified_name, method.GetScopeQualifiedName()); } }