diff --git a/lldb/unittests/Target/LocateModuleCallbackTest.cpp b/lldb/unittests/Target/LocateModuleCallbackTest.cpp --- a/lldb/unittests/Target/LocateModuleCallbackTest.cpp +++ b/lldb/unittests/Target/LocateModuleCallbackTest.cpp @@ -233,6 +233,11 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ return Status(); }); - ModuleSP module_sp = - m_target_sp->GetOrCreateModule(m_module_spec, /*notify=*/false); - ASSERT_FALSE(module_sp); -} \ No newline at end of file + m_module_sp = m_target_sp->GetOrCreateModule(m_module_spec, /*notify=*/false); + ASSERT_FALSE(m_module_sp); +}