mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-02-07 10:02:22 +00:00
[lldb][LocateModuleCallback] Fix LocateModuleCallbackTest
ModuleList unexpectedly caches module beyond test. Tear it down. - https://green.lab.llvm.org/green/view/LLDB/job/as-lldb-cmake/2260/testReport/junit/lldb-unit/Target___TargetTests_LocateModuleCallbackTest/GetOrCreateModuleWithCachedModule/ - https://green.lab.llvm.org/green/view/LLDB/job/as-lldb-cmake/2260/testReport/junit/lldb-unit/Target___TargetTests_LocateModuleCallbackTest/GetOrCreateModuleWithCachedModuleAndSymbol/ Differential Revision: https://reviews.llvm.org/D155333
This commit is contained in:
parent
6fa8d11034
commit
39299f0d36
@ -233,6 +233,11 @@ public:
|
||||
m_module_spec = GetTestModuleSpec();
|
||||
}
|
||||
|
||||
void TearDown() override {
|
||||
if (m_module_sp)
|
||||
ModuleList::RemoveSharedModule(m_module_sp);
|
||||
}
|
||||
|
||||
void CheckNoCallback() {
|
||||
EXPECT_FALSE(m_platform_sp->GetLocateModuleCallback());
|
||||
EXPECT_EQ(m_callback_call_count, 0);
|
||||
@ -257,51 +262,39 @@ protected:
|
||||
TargetSP m_target_sp;
|
||||
ProcessSP m_process_sp;
|
||||
ModuleSpec m_module_spec;
|
||||
ModuleSP m_module_sp;
|
||||
int m_callback_call_count = 0;
|
||||
};
|
||||
|
||||
} // namespace
|
||||
|
||||
TEST_F(LocateModuleCallbackTest, GetOrCreateModuleWithCachedModule) {
|
||||
// Disable test on arm64 because of failures in the lldb incremental arm64
|
||||
// bot.
|
||||
#if defined(__arm64__) || defined(__aarch64__) || defined(_M_ARM64)
|
||||
GTEST_SKIP() << "broken on arm64.";
|
||||
#endif
|
||||
// The module file is cached, and the locate module callback is not set.
|
||||
// GetOrCreateModule should succeed to return the module from the cache.
|
||||
FileSpec uuid_view = BuildCacheDir(m_test_dir);
|
||||
|
||||
CheckNoCallback();
|
||||
|
||||
ModuleSP module_sp =
|
||||
m_target_sp->GetOrCreateModule(m_module_spec, /*notify=*/false);
|
||||
CheckModule(module_sp);
|
||||
ASSERT_EQ(module_sp->GetFileSpec(), uuid_view);
|
||||
ASSERT_FALSE(module_sp->GetSymbolFileFileSpec());
|
||||
CheckStrippedSymbol(module_sp);
|
||||
m_module_sp = m_target_sp->GetOrCreateModule(m_module_spec, /*notify=*/false);
|
||||
CheckModule(m_module_sp);
|
||||
ASSERT_EQ(m_module_sp->GetFileSpec(), uuid_view);
|
||||
ASSERT_FALSE(m_module_sp->GetSymbolFileFileSpec());
|
||||
CheckStrippedSymbol(m_module_sp);
|
||||
}
|
||||
|
||||
TEST_F(LocateModuleCallbackTest, GetOrCreateModuleWithCachedModuleAndSymbol) {
|
||||
// The module and symbol files are cached, and the locate module callback is
|
||||
// not set. GetOrCreateModule should succeed to return the module from the
|
||||
// cache with the symbol.
|
||||
|
||||
// Disable test on arm64 because of failures in the lldb incremental arm64
|
||||
// bot.
|
||||
#if defined(__arm64__) || defined(__aarch64__) || defined(_M_ARM64)
|
||||
GTEST_SKIP() << "broken on arm64.";
|
||||
#endif
|
||||
FileSpec uuid_view = BuildCacheDirWithSymbol(m_test_dir);
|
||||
|
||||
CheckNoCallback();
|
||||
|
||||
ModuleSP module_sp =
|
||||
m_target_sp->GetOrCreateModule(m_module_spec, /*notify=*/false);
|
||||
CheckModule(module_sp);
|
||||
ASSERT_EQ(module_sp->GetFileSpec(), uuid_view);
|
||||
ASSERT_EQ(module_sp->GetSymbolFileFileSpec(), GetSymFileSpec(uuid_view));
|
||||
CheckUnstrippedSymbol(module_sp);
|
||||
m_module_sp = m_target_sp->GetOrCreateModule(m_module_spec, /*notify=*/false);
|
||||
CheckModule(m_module_sp);
|
||||
ASSERT_EQ(m_module_sp->GetFileSpec(), uuid_view);
|
||||
ASSERT_EQ(m_module_sp->GetSymbolFileFileSpec(), GetSymFileSpec(uuid_view));
|
||||
CheckUnstrippedSymbol(m_module_sp);
|
||||
}
|
||||
|
||||
TEST_F(LocateModuleCallbackTest,
|
||||
@ -313,12 +306,11 @@ TEST_F(LocateModuleCallbackTest,
|
||||
|
||||
CheckNoCallback();
|
||||
|
||||
ModuleSP module_sp =
|
||||
m_target_sp->GetOrCreateModule(m_module_spec, /*notify=*/false);
|
||||
CheckModule(module_sp);
|
||||
ASSERT_EQ(module_sp->GetFileSpec(), uuid_view);
|
||||
ASSERT_EQ(module_sp->GetSymbolFileFileSpec(), GetSymFileSpec(uuid_view));
|
||||
CheckUnstrippedSymbol(module_sp);
|
||||
m_module_sp = m_target_sp->GetOrCreateModule(m_module_spec, /*notify=*/false);
|
||||
CheckModule(m_module_sp);
|
||||
ASSERT_EQ(m_module_sp->GetFileSpec(), uuid_view);
|
||||
ASSERT_EQ(m_module_sp->GetSymbolFileFileSpec(), GetSymFileSpec(uuid_view));
|
||||
CheckUnstrippedSymbol(m_module_sp);
|
||||
}
|
||||
|
||||
TEST_F(LocateModuleCallbackTest, GetOrCreateModuleFailure) {
|
||||
@ -329,9 +321,8 @@ TEST_F(LocateModuleCallbackTest, GetOrCreateModuleFailure) {
|
||||
|
||||
CheckNoCallback();
|
||||
|
||||
ModuleSP module_sp =
|
||||
m_target_sp->GetOrCreateModule(m_module_spec, /*notify=*/false);
|
||||
ASSERT_FALSE(module_sp);
|
||||
m_module_sp = m_target_sp->GetOrCreateModule(m_module_spec, /*notify=*/false);
|
||||
ASSERT_FALSE(m_module_sp);
|
||||
}
|
||||
|
||||
TEST_F(LocateModuleCallbackTest, GetOrCreateModuleCallbackFailureNoCache) {
|
||||
@ -347,9 +338,8 @@ TEST_F(LocateModuleCallbackTest, GetOrCreateModuleCallbackFailureNoCache) {
|
||||
return Status("The locate module callback failed");
|
||||
});
|
||||
|
||||
ModuleSP module_sp =
|
||||
m_target_sp->GetOrCreateModule(m_module_spec, /*notify=*/false);
|
||||
ASSERT_FALSE(module_sp);
|
||||
m_module_sp = m_target_sp->GetOrCreateModule(m_module_spec, /*notify=*/false);
|
||||
ASSERT_FALSE(m_module_sp);
|
||||
}
|
||||
|
||||
TEST_F(LocateModuleCallbackTest, GetOrCreateModuleCallbackFailureCached) {
|
||||
@ -365,12 +355,11 @@ TEST_F(LocateModuleCallbackTest, GetOrCreateModuleCallbackFailureCached) {
|
||||
return Status("The locate module callback failed");
|
||||
});
|
||||
|
||||
ModuleSP module_sp =
|
||||
m_target_sp->GetOrCreateModule(m_module_spec, /*notify=*/false);
|
||||
CheckModule(module_sp);
|
||||
ASSERT_EQ(module_sp->GetFileSpec(), uuid_view);
|
||||
ASSERT_FALSE(module_sp->GetSymbolFileFileSpec());
|
||||
CheckStrippedSymbol(module_sp);
|
||||
m_module_sp = m_target_sp->GetOrCreateModule(m_module_spec, /*notify=*/false);
|
||||
CheckModule(m_module_sp);
|
||||
ASSERT_EQ(m_module_sp->GetFileSpec(), uuid_view);
|
||||
ASSERT_FALSE(m_module_sp->GetSymbolFileFileSpec());
|
||||
CheckStrippedSymbol(m_module_sp);
|
||||
}
|
||||
|
||||
TEST_F(LocateModuleCallbackTest, GetOrCreateModuleCallbackNoFiles) {
|
||||
@ -388,12 +377,12 @@ TEST_F(LocateModuleCallbackTest, GetOrCreateModuleCallbackNoFiles) {
|
||||
return Status();
|
||||
});
|
||||
|
||||
ModuleSP module_sp =
|
||||
m_target_sp->GetOrCreateModule(m_module_spec, /*notify=*/false);
|
||||
CheckModule(module_sp);
|
||||
ASSERT_EQ(module_sp->GetFileSpec(), uuid_view);
|
||||
ASSERT_FALSE(module_sp->GetSymbolFileFileSpec());
|
||||
CheckStrippedSymbol(module_sp);
|
||||
m_module_sp = m_target_sp->GetOrCreateModule(m_module_spec, /*notify=*/false);
|
||||
CheckModule(m_module_sp);
|
||||
ASSERT_EQ(m_module_sp->GetFileSpec(), uuid_view);
|
||||
ASSERT_FALSE(m_module_sp->GetSymbolFileFileSpec());
|
||||
CheckStrippedSymbol(m_module_sp);
|
||||
ModuleList::RemoveSharedModule(m_module_sp);
|
||||
}
|
||||
|
||||
TEST_F(LocateModuleCallbackTest, GetOrCreateModuleCallbackNonExistentModule) {
|
||||
@ -410,12 +399,12 @@ TEST_F(LocateModuleCallbackTest, GetOrCreateModuleCallbackNonExistentModule) {
|
||||
return Status();
|
||||
});
|
||||
|
||||
ModuleSP module_sp =
|
||||
m_target_sp->GetOrCreateModule(m_module_spec, /*notify=*/false);
|
||||
CheckModule(module_sp);
|
||||
ASSERT_EQ(module_sp->GetFileSpec(), uuid_view);
|
||||
ASSERT_FALSE(module_sp->GetSymbolFileFileSpec());
|
||||
CheckStrippedSymbol(module_sp);
|
||||
m_module_sp = m_target_sp->GetOrCreateModule(m_module_spec, /*notify=*/false);
|
||||
CheckModule(m_module_sp);
|
||||
ASSERT_EQ(m_module_sp->GetFileSpec(), uuid_view);
|
||||
ASSERT_FALSE(m_module_sp->GetSymbolFileFileSpec());
|
||||
CheckStrippedSymbol(m_module_sp);
|
||||
ModuleList::RemoveSharedModule(m_module_sp);
|
||||
}
|
||||
|
||||
TEST_F(LocateModuleCallbackTest, GetOrCreateModuleCallbackNonExistentSymbol) {
|
||||
@ -435,12 +424,12 @@ TEST_F(LocateModuleCallbackTest, GetOrCreateModuleCallbackNonExistentSymbol) {
|
||||
return Status();
|
||||
});
|
||||
|
||||
ModuleSP module_sp =
|
||||
m_target_sp->GetOrCreateModule(m_module_spec, /*notify=*/false);
|
||||
CheckModule(module_sp);
|
||||
ASSERT_EQ(module_sp->GetFileSpec(), uuid_view);
|
||||
ASSERT_TRUE(module_sp->GetSymbolFileFileSpec().GetPath().empty());
|
||||
CheckStrippedSymbol(module_sp);
|
||||
m_module_sp = m_target_sp->GetOrCreateModule(m_module_spec, /*notify=*/false);
|
||||
CheckModule(m_module_sp);
|
||||
ASSERT_EQ(m_module_sp->GetFileSpec(), uuid_view);
|
||||
ASSERT_TRUE(m_module_sp->GetSymbolFileFileSpec().GetPath().empty());
|
||||
CheckStrippedSymbol(m_module_sp);
|
||||
ModuleList::RemoveSharedModule(m_module_sp);
|
||||
}
|
||||
|
||||
TEST_F(LocateModuleCallbackTest, GetOrCreateModuleCallbackSuccessWithModule) {
|
||||
@ -456,13 +445,13 @@ TEST_F(LocateModuleCallbackTest, GetOrCreateModuleCallbackSuccessWithModule) {
|
||||
return Status();
|
||||
});
|
||||
|
||||
ModuleSP module_sp =
|
||||
m_target_sp->GetOrCreateModule(m_module_spec, /*notify=*/false);
|
||||
CheckModule(module_sp);
|
||||
ASSERT_EQ(module_sp->GetFileSpec(),
|
||||
m_module_sp = m_target_sp->GetOrCreateModule(m_module_spec, /*notify=*/false);
|
||||
CheckModule(m_module_sp);
|
||||
ASSERT_EQ(m_module_sp->GetFileSpec(),
|
||||
FileSpec(GetInputFilePath(k_module_file)));
|
||||
ASSERT_FALSE(module_sp->GetSymbolFileFileSpec());
|
||||
CheckStrippedSymbol(module_sp);
|
||||
ASSERT_FALSE(m_module_sp->GetSymbolFileFileSpec());
|
||||
CheckStrippedSymbol(m_module_sp);
|
||||
ModuleList::RemoveSharedModule(m_module_sp);
|
||||
}
|
||||
|
||||
TEST_F(LocateModuleCallbackTest,
|
||||
@ -481,13 +470,13 @@ TEST_F(LocateModuleCallbackTest,
|
||||
return Status();
|
||||
});
|
||||
|
||||
ModuleSP module_sp =
|
||||
m_target_sp->GetOrCreateModule(m_module_spec, /*notify=*/false);
|
||||
CheckModule(module_sp);
|
||||
ASSERT_EQ(module_sp->GetFileSpec(),
|
||||
m_module_sp = m_target_sp->GetOrCreateModule(m_module_spec, /*notify=*/false);
|
||||
CheckModule(m_module_sp);
|
||||
ASSERT_EQ(m_module_sp->GetFileSpec(),
|
||||
FileSpec(GetInputFilePath(k_symbol_file)));
|
||||
ASSERT_FALSE(module_sp->GetSymbolFileFileSpec());
|
||||
CheckUnstrippedSymbol(module_sp);
|
||||
ASSERT_FALSE(m_module_sp->GetSymbolFileFileSpec());
|
||||
CheckUnstrippedSymbol(m_module_sp);
|
||||
ModuleList::RemoveSharedModule(m_module_sp);
|
||||
}
|
||||
|
||||
TEST_F(LocateModuleCallbackTest,
|
||||
@ -507,14 +496,14 @@ TEST_F(LocateModuleCallbackTest,
|
||||
return Status();
|
||||
});
|
||||
|
||||
ModuleSP module_sp =
|
||||
m_target_sp->GetOrCreateModule(m_module_spec, /*notify=*/false);
|
||||
CheckModule(module_sp);
|
||||
ASSERT_EQ(module_sp->GetFileSpec(),
|
||||
m_module_sp = m_target_sp->GetOrCreateModule(m_module_spec, /*notify=*/false);
|
||||
CheckModule(m_module_sp);
|
||||
ASSERT_EQ(m_module_sp->GetFileSpec(),
|
||||
FileSpec(GetInputFilePath(k_symbol_file)));
|
||||
ASSERT_EQ(module_sp->GetSymbolFileFileSpec(),
|
||||
ASSERT_EQ(m_module_sp->GetSymbolFileFileSpec(),
|
||||
FileSpec(GetInputFilePath(k_symbol_file)));
|
||||
CheckUnstrippedSymbol(module_sp);
|
||||
CheckUnstrippedSymbol(m_module_sp);
|
||||
ModuleList::RemoveSharedModule(m_module_sp);
|
||||
}
|
||||
|
||||
TEST_F(LocateModuleCallbackTest,
|
||||
@ -533,14 +522,14 @@ TEST_F(LocateModuleCallbackTest,
|
||||
return Status();
|
||||
});
|
||||
|
||||
ModuleSP module_sp =
|
||||
m_target_sp->GetOrCreateModule(m_module_spec, /*notify=*/false);
|
||||
CheckModule(module_sp);
|
||||
ASSERT_EQ(module_sp->GetFileSpec(),
|
||||
m_module_sp = m_target_sp->GetOrCreateModule(m_module_spec, /*notify=*/false);
|
||||
CheckModule(m_module_sp);
|
||||
ASSERT_EQ(m_module_sp->GetFileSpec(),
|
||||
FileSpec(GetInputFilePath(k_module_file)));
|
||||
ASSERT_EQ(module_sp->GetSymbolFileFileSpec(),
|
||||
ASSERT_EQ(m_module_sp->GetSymbolFileFileSpec(),
|
||||
FileSpec(GetInputFilePath(k_symbol_file)));
|
||||
CheckUnstrippedSymbol(module_sp);
|
||||
CheckUnstrippedSymbol(m_module_sp);
|
||||
ModuleList::RemoveSharedModule(m_module_sp);
|
||||
}
|
||||
|
||||
TEST_F(LocateModuleCallbackTest,
|
||||
@ -559,14 +548,14 @@ TEST_F(LocateModuleCallbackTest,
|
||||
return Status();
|
||||
});
|
||||
|
||||
ModuleSP module_sp =
|
||||
m_target_sp->GetOrCreateModule(m_module_spec, /*notify=*/false);
|
||||
CheckModule(module_sp);
|
||||
ASSERT_EQ(module_sp->GetFileSpec(),
|
||||
m_module_sp = m_target_sp->GetOrCreateModule(m_module_spec, /*notify=*/false);
|
||||
CheckModule(m_module_sp);
|
||||
ASSERT_EQ(m_module_sp->GetFileSpec(),
|
||||
FileSpec(GetInputFilePath(k_module_file)));
|
||||
ASSERT_EQ(module_sp->GetSymbolFileFileSpec(),
|
||||
ASSERT_EQ(m_module_sp->GetSymbolFileFileSpec(),
|
||||
FileSpec(GetInputFilePath(k_breakpad_symbol_file)));
|
||||
CheckUnstrippedSymbol(module_sp);
|
||||
CheckUnstrippedSymbol(m_module_sp);
|
||||
ModuleList::RemoveSharedModule(m_module_sp);
|
||||
}
|
||||
|
||||
TEST_F(LocateModuleCallbackTest,
|
||||
@ -584,13 +573,13 @@ TEST_F(LocateModuleCallbackTest,
|
||||
return Status();
|
||||
});
|
||||
|
||||
ModuleSP module_sp =
|
||||
m_target_sp->GetOrCreateModule(m_module_spec, /*notify=*/false);
|
||||
CheckModule(module_sp);
|
||||
ASSERT_EQ(module_sp->GetFileSpec(), uuid_view);
|
||||
ASSERT_EQ(module_sp->GetSymbolFileFileSpec(),
|
||||
m_module_sp = m_target_sp->GetOrCreateModule(m_module_spec, /*notify=*/false);
|
||||
CheckModule(m_module_sp);
|
||||
ASSERT_EQ(m_module_sp->GetFileSpec(), uuid_view);
|
||||
ASSERT_EQ(m_module_sp->GetSymbolFileFileSpec(),
|
||||
FileSpec(GetInputFilePath(k_symbol_file)));
|
||||
CheckUnstrippedSymbol(module_sp);
|
||||
CheckUnstrippedSymbol(m_module_sp);
|
||||
ModuleList::RemoveSharedModule(m_module_sp);
|
||||
}
|
||||
|
||||
TEST_F(LocateModuleCallbackTest,
|
||||
@ -608,13 +597,13 @@ TEST_F(LocateModuleCallbackTest,
|
||||
return Status();
|
||||
});
|
||||
|
||||
ModuleSP module_sp =
|
||||
m_target_sp->GetOrCreateModule(m_module_spec, /*notify=*/false);
|
||||
CheckModule(module_sp);
|
||||
ASSERT_EQ(module_sp->GetFileSpec(), uuid_view);
|
||||
ASSERT_EQ(module_sp->GetSymbolFileFileSpec(),
|
||||
m_module_sp = m_target_sp->GetOrCreateModule(m_module_spec, /*notify=*/false);
|
||||
CheckModule(m_module_sp);
|
||||
ASSERT_EQ(m_module_sp->GetFileSpec(), uuid_view);
|
||||
ASSERT_EQ(m_module_sp->GetSymbolFileFileSpec(),
|
||||
FileSpec(GetInputFilePath(k_breakpad_symbol_file)));
|
||||
CheckUnstrippedSymbol(module_sp);
|
||||
CheckUnstrippedSymbol(m_module_sp);
|
||||
ModuleList::RemoveSharedModule(m_module_sp);
|
||||
}
|
||||
|
||||
TEST_F(LocateModuleCallbackTest,
|
||||
@ -631,9 +620,8 @@ TEST_F(LocateModuleCallbackTest,
|
||||
return Status();
|
||||
});
|
||||
|
||||
ModuleSP module_sp =
|
||||
m_target_sp->GetOrCreateModule(m_module_spec, /*notify=*/false);
|
||||
ASSERT_FALSE(module_sp);
|
||||
m_module_sp = m_target_sp->GetOrCreateModule(m_module_spec, /*notify=*/false);
|
||||
ASSERT_FALSE(m_module_sp);
|
||||
}
|
||||
|
||||
TEST_F(LocateModuleCallbackTest,
|
||||
@ -650,7 +638,6 @@ TEST_F(LocateModuleCallbackTest,
|
||||
return Status();
|
||||
});
|
||||
|
||||
ModuleSP module_sp =
|
||||
m_target_sp->GetOrCreateModule(m_module_spec, /*notify=*/false);
|
||||
ASSERT_FALSE(module_sp);
|
||||
}
|
||||
m_module_sp = m_target_sp->GetOrCreateModule(m_module_spec, /*notify=*/false);
|
||||
ASSERT_FALSE(m_module_sp);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user