Update failing PDB unit tests that are searching for symbols by regex

Summary: D41086 fixed an exception in FindTypes()/FindTypesByRegex() and caused two lldb unit test to fail. This change updates the unit tests to pass again.

Reviewers: zturner, lldb-commits, labath, clayborg, asmith

Reviewed By: asmith

Differential Revision: https://reviews.llvm.org/D41550

llvm-svn: 321511
This commit is contained in:
Aaron Smith 2017-12-28 06:29:59 +00:00
parent 6d31001cd6
commit 364cbfe964
2 changed files with 12 additions and 12 deletions

View File

@ -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 &regex,
uint32_t max_matches,
lldb_private::TypeMap &types);
lldb_private::TypeList *GetTypeList() override;
size_t GetTypes(lldb_private::SymbolContextScope *sc_scope,

View File

@ -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());
}