From f73363f1dd94996356cefbf24388f561891acf0b Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Sat, 28 Jul 2018 11:09:23 +0000 Subject: Vendor import of lldb trunk r338150: https://llvm.org/svn/llvm-project/lldb/trunk@338150 --- .../Language/CPlusPlus/CPlusPlusLanguageTest.cpp | 27 ++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) (limited to 'unittests/Language/CPlusPlus/CPlusPlusLanguageTest.cpp') diff --git a/unittests/Language/CPlusPlus/CPlusPlusLanguageTest.cpp b/unittests/Language/CPlusPlus/CPlusPlusLanguageTest.cpp index 1e7dd77c4dee..7a81b878f633 100644 --- a/unittests/Language/CPlusPlus/CPlusPlusLanguageTest.cpp +++ b/unittests/Language/CPlusPlus/CPlusPlusLanguageTest.cpp @@ -6,9 +6,9 @@ // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// -#include "gtest/gtest.h" - #include "Plugins/Language/CPlusPlus/CPlusPlusLanguage.h" +#include "gmock/gmock.h" +#include "gtest/gtest.h" using namespace lldb_private; @@ -160,4 +160,27 @@ TEST(CPlusPlusLanguage, ExtractContextAndIdentifier) { "selector:otherField:", context, basename)); EXPECT_FALSE(CPlusPlusLanguage::ExtractContextAndIdentifier( "abc::", context, basename)); + EXPECT_FALSE(CPlusPlusLanguage::ExtractContextAndIdentifier( + "f>", context, basename)); +} + +static std::set FindAlternate(llvm::StringRef Name) { + std::set Results; + uint32_t Count = CPlusPlusLanguage::FindAlternateFunctionManglings( + ConstString(Name), Results); + EXPECT_EQ(Count, Results.size()); + std::set Strings; + for (ConstString Str : Results) + Strings.insert(Str.GetStringRef()); + return Strings; +} + +TEST(CPlusPlusLanguage, FindAlternateFunctionManglings) { + using namespace testing; + + EXPECT_THAT(FindAlternate("_ZN1A1fEv"), + UnorderedElementsAre("_ZNK1A1fEv", "_ZLN1A1fEv")); + EXPECT_THAT(FindAlternate("_ZN1A1fEa"), Contains("_ZN1A1fEc")); + EXPECT_THAT(FindAlternate("_ZN1A1fEx"), Contains("_ZN1A1fEl")); + EXPECT_THAT(FindAlternate("_ZN1A1fEy"), Contains("_ZN1A1fEm")); } -- cgit v1.2.3