diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2017-12-28 21:23:35 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2017-12-28 21:23:35 +0000 |
commit | 160ee69dd7ae18978f4068116777639ea98dc951 (patch) | |
tree | caca83f2f9a1fc3f1e7cefb74a59068c11eb62ef | |
parent | 23629167fefb8117a4d2cc9213c8a29d5b4a1197 (diff) |
Vendor import of lldb trunk r321530:vendor/lldb/lldb-trunk-r321545vendor/lldb/lldb-trunk-r321530
Notes
Notes:
svn path=/vendor/lldb/dist/; revision=327310
svn path=/vendor/lldb/lldb-trunk-r321545/; revision=327327; tag=vendor/lldb/lldb-trunk-r321545
-rw-r--r-- | source/Plugins/SymbolFile/PDB/SymbolFilePDB.h | 8 | ||||
-rw-r--r-- | unittests/SymbolFile/PDB/SymbolFilePDBTests.cpp | 20 |
2 files changed, 12 insertions, 16 deletions
diff --git a/source/Plugins/SymbolFile/PDB/SymbolFilePDB.h b/source/Plugins/SymbolFile/PDB/SymbolFilePDB.h index d78358c714ac..eef96be8d1fe 100644 --- a/source/Plugins/SymbolFile/PDB/SymbolFilePDB.h +++ b/source/Plugins/SymbolFile/PDB/SymbolFilePDB.h @@ -140,6 +140,10 @@ public: size_t FindTypes(const std::vector<lldb_private::CompilerContext> &context, bool append, lldb_private::TypeMap &types) override; + void FindTypesByRegex(const lldb_private::RegularExpression ®ex, + uint32_t max_matches, + lldb_private::TypeMap &types); + lldb_private::TypeList *GetTypeList() override; size_t GetTypes(lldb_private::SymbolContextScope *sc_scope, @@ -172,10 +176,6 @@ private: const llvm::pdb::PDBSymbolCompiland &cu, llvm::DenseMap<uint32_t, uint32_t> &index_map) const; - void FindTypesByRegex(const lldb_private::RegularExpression ®ex, - uint32_t max_matches, - lldb_private::TypeMap &types); - void FindTypesByName(const std::string &name, uint32_t max_matches, lldb_private::TypeMap &types); diff --git a/unittests/SymbolFile/PDB/SymbolFilePDBTests.cpp b/unittests/SymbolFile/PDB/SymbolFilePDBTests.cpp index ac4eba1197ab..1e867b172ee3 100644 --- a/unittests/SymbolFile/PDB/SymbolFilePDBTests.cpp +++ b/unittests/SymbolFile/PDB/SymbolFilePDBTests.cpp @@ -512,20 +512,15 @@ TEST_F(SymbolFilePDBTests, TestRegexNameMatch) { SymbolVendor *plugin = module->GetSymbolVendor(); SymbolFilePDB *symfile = static_cast<SymbolFilePDB *>(plugin->GetSymbolFile()); - SymbolContext sc; - llvm::DenseSet<SymbolFile *> searched_files; TypeMap results; - uint32_t num_results = symfile->FindTypes(sc, ConstString(".*"), nullptr, - false, 0, searched_files, results); - EXPECT_GT(num_results, 1u); - EXPECT_EQ(num_results, results.GetSize()); + + symfile->FindTypesByRegex(RegularExpression(".*"), 0, results); + EXPECT_GT(results.GetSize(), 1u); // We expect no exception thrown if the given regex can't be compiled results.Clear(); - num_results = symfile->FindTypes(sc, ConstString("**"), nullptr, - false, 0, searched_files, results); - EXPECT_EQ(num_results, 0u); - EXPECT_EQ(num_results, results.GetSize()); + symfile->FindTypesByRegex(RegularExpression("**"), 0, results); + EXPECT_EQ(0u, results.GetSize()); } TEST_F(SymbolFilePDBTests, TestMaxMatches) { @@ -539,7 +534,8 @@ TEST_F(SymbolFilePDBTests, TestMaxMatches) { SymbolContext sc; llvm::DenseSet<SymbolFile *> searched_files; TypeMap results; - uint32_t num_results = symfile->FindTypes(sc, ConstString(".*"), nullptr, + const ConstString name("ClassTypedef"); + uint32_t num_results = symfile->FindTypes(sc, name, nullptr, false, 0, searched_files, results); // Try to limit ourselves from 1 to 10 results, otherwise we could be doing // this thousands of times. @@ -549,7 +545,7 @@ TEST_F(SymbolFilePDBTests, TestMaxMatches) { uint32_t iterations = std::min(num_results, 10u); for (uint32_t i = 1; i <= iterations; ++i) { uint32_t num_limited_results = symfile->FindTypes( - sc, ConstString(".*"), nullptr, false, i, searched_files, results); + sc, name, nullptr, false, i, searched_files, results); EXPECT_EQ(i, num_limited_results); EXPECT_EQ(num_limited_results, results.GetSize()); } |