summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPavel Labath <labath@google.com>2018-05-10 08:59:17 +0000
committerPavel Labath <labath@google.com>2018-05-10 08:59:17 +0000
commit4865ff1e18f245d6d98670600ff9cfa0241ac86d (patch)
treefc1c7b3d66e3d1bb136dab8b38b005e19db24322
parent93dd5dcdf72fa15254ac196a62b033f215509544 (diff)
downloadbcm5719-llvm-4865ff1e18f245d6d98670600ff9cfa0241ac86d.tar.gz
bcm5719-llvm-4865ff1e18f245d6d98670600ff9cfa0241ac86d.zip
CPlusPlusLanguage: Add unit tests for the FindAlternateFunctionManglings method
I was considering modifying this function, so I wrote some tests to make sure I don't regress its behavior. I am not sure if I will actually proceed with the modifications, but the tests seem useful nonetheless. llvm-svn: 331966
-rw-r--r--lldb/unittests/Language/CPlusPlus/CPlusPlusLanguageTest.cpp25
1 files changed, 23 insertions, 2 deletions
diff --git a/lldb/unittests/Language/CPlusPlus/CPlusPlusLanguageTest.cpp b/lldb/unittests/Language/CPlusPlus/CPlusPlusLanguageTest.cpp
index 68e8a8c17a2..7a81b878f63 100644
--- a/lldb/unittests/Language/CPlusPlus/CPlusPlusLanguageTest.cpp
+++ b/lldb/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;
@@ -163,3 +163,24 @@ TEST(CPlusPlusLanguage, ExtractContextAndIdentifier) {
EXPECT_FALSE(CPlusPlusLanguage::ExtractContextAndIdentifier(
"f<A<B><C>>", context, basename));
}
+
+static std::set<std::string> FindAlternate(llvm::StringRef Name) {
+ std::set<ConstString> Results;
+ uint32_t Count = CPlusPlusLanguage::FindAlternateFunctionManglings(
+ ConstString(Name), Results);
+ EXPECT_EQ(Count, Results.size());
+ std::set<std::string> 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"));
+}
OpenPOWER on IntegriCloud