Index: base/trace_event/memory_dump_manager_unittest.cc |
diff --git a/base/trace_event/memory_dump_manager_unittest.cc b/base/trace_event/memory_dump_manager_unittest.cc |
index af3287ddfdeb9146efbf9ef2b9ea21b3c53f86db..42b1b75fa5c0279d3bc70660aa85dc23766c943c 100644 |
--- a/base/trace_event/memory_dump_manager_unittest.cc |
+++ b/base/trace_event/memory_dump_manager_unittest.cc |
@@ -37,6 +37,21 @@ MATCHER(IsLightDump, "") { |
return arg.level_of_detail == MemoryDumpLevelOfDetail::LIGHT; |
} |
+namespace { |
+void RegisterDumpProvider( |
+ MemoryDumpProvider* mdp, |
+ const scoped_refptr<base::SingleThreadTaskRunner>& task_runner) { |
+ MemoryDumpManager* mdm = MemoryDumpManager::GetInstance(); |
+ mdm->set_dumper_registrations_ignored_for_testing(false); |
+ mdm->RegisterDumpProvider(mdp, task_runner); |
+ mdm->set_dumper_registrations_ignored_for_testing(true); |
+} |
+ |
+void RegisterDumpProvider(MemoryDumpProvider* mdp) { |
+ RegisterDumpProvider(mdp, nullptr); |
+} |
+} // namespace |
+ |
// Testing MemoryDumpManagerDelegate which, by default, short-circuits dump |
// requests locally to the MemoryDumpManager instead of performing IPC dances. |
class MemoryDumpManagerDelegateForTesting : public MemoryDumpManagerDelegate { |
@@ -92,6 +107,7 @@ class MemoryDumpManagerTest : public testing::Test { |
protected: |
void InitializeMemoryDumpManager(bool is_coordinator) { |
+ mdm_->set_dumper_registrations_ignored_for_testing(true); |
mdm_->Initialize(delegate_.get(), is_coordinator); |
} |
@@ -131,7 +147,7 @@ class MemoryDumpManagerTest : public testing::Test { |
TEST_F(MemoryDumpManagerTest, SingleDumper) { |
InitializeMemoryDumpManager(false /* is_coordinator */); |
MockMemoryDumpProvider mdp; |
- mdm_->RegisterDumpProvider(&mdp); |
+ RegisterDumpProvider(&mdp); |
// Check that the dumper is not called if the memory category is not enabled. |
EnableTracingWithLegacyCategories("foobar-but-not-memory"); |
@@ -169,7 +185,7 @@ TEST_F(MemoryDumpManagerTest, CheckMemoryDumpArgs) { |
InitializeMemoryDumpManager(false /* is_coordinator */); |
MockMemoryDumpProvider mdp; |
- mdm_->RegisterDumpProvider(&mdp); |
+ RegisterDumpProvider(&mdp); |
EnableTracingWithLegacyCategories(MemoryDumpManager::kTraceCategory); |
EXPECT_CALL(*delegate_, RequestGlobalMemoryDump(_, _)).Times(1); |
EXPECT_CALL(mdp, OnMemoryDump(IsDetailedDump(), _)).WillOnce(Return(true)); |
@@ -180,7 +196,7 @@ TEST_F(MemoryDumpManagerTest, CheckMemoryDumpArgs) { |
// Check that requesting dumps with low level of detail actually propagates to |
// OnMemoryDump() call on dump providers. |
- mdm_->RegisterDumpProvider(&mdp); |
+ RegisterDumpProvider(&mdp); |
EnableTracingWithLegacyCategories(MemoryDumpManager::kTraceCategory); |
EXPECT_CALL(*delegate_, RequestGlobalMemoryDump(_, _)).Times(1); |
EXPECT_CALL(mdp, OnMemoryDump(IsLightDump(), _)).WillOnce(Return(true)); |
@@ -195,8 +211,8 @@ TEST_F(MemoryDumpManagerTest, SharedSessionState) { |
InitializeMemoryDumpManager(false /* is_coordinator */); |
MockMemoryDumpProvider mdp1; |
MockMemoryDumpProvider mdp2; |
- mdm_->RegisterDumpProvider(&mdp1); |
- mdm_->RegisterDumpProvider(&mdp2); |
+ RegisterDumpProvider(&mdp1); |
+ RegisterDumpProvider(&mdp2); |
EnableTracingWithLegacyCategories(MemoryDumpManager::kTraceCategory); |
const MemoryDumpSessionState* session_state = mdm_->session_state().get(); |
@@ -230,7 +246,7 @@ TEST_F(MemoryDumpManagerTest, MultipleDumpers) { |
MockMemoryDumpProvider mdp2; |
// Enable only mdp1. |
- mdm_->RegisterDumpProvider(&mdp1); |
+ RegisterDumpProvider(&mdp1); |
EnableTracingWithLegacyCategories(MemoryDumpManager::kTraceCategory); |
EXPECT_CALL(*delegate_, RequestGlobalMemoryDump(_, _)).Times(1); |
EXPECT_CALL(mdp1, OnMemoryDump(_, _)).WillOnce(Return(true)); |
@@ -241,7 +257,7 @@ TEST_F(MemoryDumpManagerTest, MultipleDumpers) { |
// Invert: enable mdp1 and disable mdp2. |
mdm_->UnregisterDumpProvider(&mdp1); |
- mdm_->RegisterDumpProvider(&mdp2); |
+ RegisterDumpProvider(&mdp2); |
EnableTracingWithLegacyCategories(MemoryDumpManager::kTraceCategory); |
EXPECT_CALL(*delegate_, RequestGlobalMemoryDump(_, _)).Times(1); |
EXPECT_CALL(mdp1, OnMemoryDump(_, _)).Times(0); |
@@ -251,7 +267,7 @@ TEST_F(MemoryDumpManagerTest, MultipleDumpers) { |
DisableTracing(); |
// Enable both mdp1 and mdp2. |
- mdm_->RegisterDumpProvider(&mdp1); |
+ RegisterDumpProvider(&mdp1); |
EnableTracingWithLegacyCategories(MemoryDumpManager::kTraceCategory); |
EXPECT_CALL(*delegate_, RequestGlobalMemoryDump(_, _)).Times(1); |
EXPECT_CALL(mdp1, OnMemoryDump(_, _)).WillOnce(Return(true)); |
@@ -267,7 +283,7 @@ TEST_F(MemoryDumpManagerTest, RegistrationConsistency) { |
InitializeMemoryDumpManager(false /* is_coordinator */); |
MockMemoryDumpProvider mdp; |
- mdm_->RegisterDumpProvider(&mdp); |
+ RegisterDumpProvider(&mdp); |
{ |
EXPECT_CALL(*delegate_, RequestGlobalMemoryDump(_, _)).Times(1); |
@@ -289,7 +305,7 @@ TEST_F(MemoryDumpManagerTest, RegistrationConsistency) { |
DisableTracing(); |
} |
- mdm_->RegisterDumpProvider(&mdp); |
+ RegisterDumpProvider(&mdp); |
mdm_->UnregisterDumpProvider(&mdp); |
{ |
@@ -301,9 +317,9 @@ TEST_F(MemoryDumpManagerTest, RegistrationConsistency) { |
DisableTracing(); |
} |
- mdm_->RegisterDumpProvider(&mdp); |
+ RegisterDumpProvider(&mdp); |
mdm_->UnregisterDumpProvider(&mdp); |
- mdm_->RegisterDumpProvider(&mdp); |
+ RegisterDumpProvider(&mdp); |
{ |
EXPECT_CALL(*delegate_, RequestGlobalMemoryDump(_, _)).Times(1); |
@@ -336,7 +352,7 @@ TEST_F(MemoryDumpManagerTest, RespectTaskRunnerAffinity) { |
scoped_refptr<SingleThreadTaskRunner> task_runner = thread->task_runner(); |
MockMemoryDumpProvider* mdp = new MockMemoryDumpProvider(); |
mdps.push_back(mdp); |
- mdm_->RegisterDumpProvider(mdp, task_runner); |
+ RegisterDumpProvider(mdp, task_runner); |
EXPECT_CALL(*mdp, OnMemoryDump(_, _)) |
.Times(i) |
.WillRepeatedly(Invoke( |
@@ -391,8 +407,8 @@ TEST_F(MemoryDumpManagerTest, DisableFailingDumpers) { |
MockMemoryDumpProvider mdp1; |
MockMemoryDumpProvider mdp2; |
- mdm_->RegisterDumpProvider(&mdp1); |
- mdm_->RegisterDumpProvider(&mdp2); |
+ RegisterDumpProvider(&mdp1); |
+ RegisterDumpProvider(&mdp2); |
EnableTracingWithLegacyCategories(MemoryDumpManager::kTraceCategory); |
const int kNumDumps = 2 * GetMaxConsecutiveFailuresCount(); |
@@ -425,7 +441,7 @@ TEST_F(MemoryDumpManagerTest, RegisterDumperWhileDumping) { |
MockMemoryDumpProvider mdp1; |
MockMemoryDumpProvider mdp2; |
- mdm_->RegisterDumpProvider(&mdp1); |
+ RegisterDumpProvider(&mdp1); |
EnableTracingWithLegacyCategories(MemoryDumpManager::kTraceCategory); |
EXPECT_CALL(*delegate_, RequestGlobalMemoryDump(_, _)).Times(4); |
@@ -435,7 +451,7 @@ TEST_F(MemoryDumpManagerTest, RegisterDumperWhileDumping) { |
.WillOnce(Return(true)) |
.WillOnce( |
Invoke([&mdp2](const MemoryDumpArgs&, ProcessMemoryDump*) -> bool { |
- MemoryDumpManager::GetInstance()->RegisterDumpProvider(&mdp2); |
+ RegisterDumpProvider(&mdp2); |
return true; |
})) |
.WillRepeatedly(Return(true)); |
@@ -460,8 +476,8 @@ TEST_F(MemoryDumpManagerTest, UnregisterDumperWhileDumping) { |
MockMemoryDumpProvider mdp1; |
MockMemoryDumpProvider mdp2; |
- mdm_->RegisterDumpProvider(&mdp1, ThreadTaskRunnerHandle::Get()); |
- mdm_->RegisterDumpProvider(&mdp2, ThreadTaskRunnerHandle::Get()); |
+ RegisterDumpProvider(&mdp1, ThreadTaskRunnerHandle::Get()); |
+ RegisterDumpProvider(&mdp2, ThreadTaskRunnerHandle::Get()); |
EnableTracingWithLegacyCategories(MemoryDumpManager::kTraceCategory); |
EXPECT_CALL(*delegate_, RequestGlobalMemoryDump(_, _)).Times(4); |
@@ -500,7 +516,7 @@ TEST_F(MemoryDumpManagerTest, UnregisterDumperFromThreadWhileDumping) { |
for (int i = 0; i < 2; i++) { |
threads.push_back(new TestIOThread(TestIOThread::kAutoStart)); |
mdps.push_back(new MockMemoryDumpProvider()); |
- mdm_->RegisterDumpProvider(mdps.back(), threads.back()->task_runner()); |
+ RegisterDumpProvider(mdps.back(), threads.back()->task_runner()); |
} |
int on_memory_dump_call_count = 0; |
@@ -552,7 +568,7 @@ TEST_F(MemoryDumpManagerTest, UnregisterDumperFromThreadWhileDumping) { |
TEST_F(MemoryDumpManagerTest, CallbackCalledOnFailure) { |
InitializeMemoryDumpManager(false /* is_coordinator */); |
MockMemoryDumpProvider mdp1; |
- mdm_->RegisterDumpProvider(&mdp1); |
+ RegisterDumpProvider(&mdp1); |
EXPECT_CALL(*delegate_, RequestGlobalMemoryDump(_, _)).Times(0); |
EXPECT_CALL(mdp1, OnMemoryDump(_, _)).Times(0); |
@@ -574,7 +590,7 @@ TEST_F(MemoryDumpManagerTest, CallbackCalledOnFailure) { |
// began, it will still late-join the party (real use case: startup tracing). |
TEST_F(MemoryDumpManagerTest, InitializedAfterStartOfTracing) { |
MockMemoryDumpProvider mdp; |
- mdm_->RegisterDumpProvider(&mdp); |
+ RegisterDumpProvider(&mdp); |
EnableTracingWithLegacyCategories(MemoryDumpManager::kTraceCategory); |
// First check that a RequestGlobalDump() issued before the MemoryDumpManager |