Vendor import of lldb trunk r321530:
https://llvm.org/svn/llvm-project/lldb/trunk@321530
This commit is contained in:
parent
23629167fe
commit
160ee69dd7
@ -140,6 +140,10 @@ public:
|
|||||||
size_t FindTypes(const std::vector<lldb_private::CompilerContext> &context,
|
size_t FindTypes(const std::vector<lldb_private::CompilerContext> &context,
|
||||||
bool append, lldb_private::TypeMap &types) override;
|
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;
|
lldb_private::TypeList *GetTypeList() override;
|
||||||
|
|
||||||
size_t GetTypes(lldb_private::SymbolContextScope *sc_scope,
|
size_t GetTypes(lldb_private::SymbolContextScope *sc_scope,
|
||||||
@ -172,10 +176,6 @@ private:
|
|||||||
const llvm::pdb::PDBSymbolCompiland &cu,
|
const llvm::pdb::PDBSymbolCompiland &cu,
|
||||||
llvm::DenseMap<uint32_t, uint32_t> &index_map) const;
|
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,
|
void FindTypesByName(const std::string &name, uint32_t max_matches,
|
||||||
lldb_private::TypeMap &types);
|
lldb_private::TypeMap &types);
|
||||||
|
|
||||||
|
@ -512,20 +512,15 @@ TEST_F(SymbolFilePDBTests, TestRegexNameMatch) {
|
|||||||
SymbolVendor *plugin = module->GetSymbolVendor();
|
SymbolVendor *plugin = module->GetSymbolVendor();
|
||||||
SymbolFilePDB *symfile =
|
SymbolFilePDB *symfile =
|
||||||
static_cast<SymbolFilePDB *>(plugin->GetSymbolFile());
|
static_cast<SymbolFilePDB *>(plugin->GetSymbolFile());
|
||||||
SymbolContext sc;
|
|
||||||
llvm::DenseSet<SymbolFile *> searched_files;
|
|
||||||
TypeMap results;
|
TypeMap results;
|
||||||
uint32_t num_results = symfile->FindTypes(sc, ConstString(".*"), nullptr,
|
|
||||||
false, 0, searched_files, results);
|
symfile->FindTypesByRegex(RegularExpression(".*"), 0, results);
|
||||||
EXPECT_GT(num_results, 1u);
|
EXPECT_GT(results.GetSize(), 1u);
|
||||||
EXPECT_EQ(num_results, results.GetSize());
|
|
||||||
|
|
||||||
// We expect no exception thrown if the given regex can't be compiled
|
// We expect no exception thrown if the given regex can't be compiled
|
||||||
results.Clear();
|
results.Clear();
|
||||||
num_results = symfile->FindTypes(sc, ConstString("**"), nullptr,
|
symfile->FindTypesByRegex(RegularExpression("**"), 0, results);
|
||||||
false, 0, searched_files, results);
|
EXPECT_EQ(0u, results.GetSize());
|
||||||
EXPECT_EQ(num_results, 0u);
|
|
||||||
EXPECT_EQ(num_results, results.GetSize());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(SymbolFilePDBTests, TestMaxMatches) {
|
TEST_F(SymbolFilePDBTests, TestMaxMatches) {
|
||||||
@ -539,7 +534,8 @@ TEST_F(SymbolFilePDBTests, TestMaxMatches) {
|
|||||||
SymbolContext sc;
|
SymbolContext sc;
|
||||||
llvm::DenseSet<SymbolFile *> searched_files;
|
llvm::DenseSet<SymbolFile *> searched_files;
|
||||||
TypeMap results;
|
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);
|
false, 0, searched_files, results);
|
||||||
// Try to limit ourselves from 1 to 10 results, otherwise we could be doing
|
// Try to limit ourselves from 1 to 10 results, otherwise we could be doing
|
||||||
// this thousands of times.
|
// this thousands of times.
|
||||||
@ -549,7 +545,7 @@ TEST_F(SymbolFilePDBTests, TestMaxMatches) {
|
|||||||
uint32_t iterations = std::min(num_results, 10u);
|
uint32_t iterations = std::min(num_results, 10u);
|
||||||
for (uint32_t i = 1; i <= iterations; ++i) {
|
for (uint32_t i = 1; i <= iterations; ++i) {
|
||||||
uint32_t num_limited_results = symfile->FindTypes(
|
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(i, num_limited_results);
|
||||||
EXPECT_EQ(num_limited_results, results.GetSize());
|
EXPECT_EQ(num_limited_results, results.GetSize());
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user