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 6fb8c321e5bd978b50c6cf1468a684bd14e70ddd..8183a1d203224ec2ec542c9fc89efe0a9592c524 100644 |
--- a/base/trace_event/memory_dump_manager_unittest.cc |
+++ b/base/trace_event/memory_dump_manager_unittest.cc |
@@ -52,8 +52,9 @@ class MemoryDumpManagerTest : public testing::Test { |
mdm_.reset(new MemoryDumpManager()); |
MemoryDumpManager::SetInstanceForTesting(mdm_.get()); |
ASSERT_EQ(mdm_, MemoryDumpManager::GetInstance()); |
- MemoryDumpManager::GetInstance()->Initialize(); |
- MemoryDumpManager::GetInstance()->SetDelegate(&delegate_); |
+ mdm_->set_ignore_dumper_registrations_for_testing(true); |
+ mdm_->Initialize(); |
+ mdm_->SetDelegate(&delegate_); |
picksi
2015/09/22 10:53:38
Random drive-by thought. For other users (i.e. out
Ruud van Asseldonk
2015/09/29 09:12:27
The |SetDelegate| method did not survive Primiano’
|
} |
void TearDown() override { |
@@ -75,12 +76,24 @@ class MemoryDumpManagerTest : public testing::Test { |
const char* kTraceCategory = MemoryDumpManager::kTraceCategoryForTesting; |
void EnableTracing(const char* category) { |
+ bool registrations_ignored = |
+ mdm_->ignore_dumper_registrations_for_testing(); |
picksi
2015/09/22 10:53:38
Nit: This function name makes it sound like you ar
Ruud van Asseldonk
2015/09/29 09:12:27
Not according to the style guide (unless I also re
picksi
2015/09/29 10:55:56
You could rename the variable 'dumper_registration
|
+ mdm_->set_ignore_dumper_registrations_for_testing(true); |
TraceLog::GetInstance()->SetEnabled( |
TraceConfig(category, ""), TraceLog::RECORDING_MODE); |
+ mdm_->set_ignore_dumper_registrations_for_testing(registrations_ignored); |
} |
void DisableTracing() { TraceLog::GetInstance()->SetDisabled(); } |
+ void EnableMemoryDumpProviderRegistrations() { |
+ mdm_->set_ignore_dumper_registrations_for_testing(false); |
+ } |
+ |
+ void DisableMemoryDumpProviderRegistrations() { |
picksi
2015/09/22 10:53:38
nit: Should you be using this function in EnableTr
Ruud van Asseldonk
2015/09/29 09:12:27
In |UnregisterDumperFromThreadWhileDumping|, regis
|
+ mdm_->set_ignore_dumper_registrations_for_testing(true); |
+ } |
+ |
scoped_ptr<MemoryDumpManager> mdm_; |
bool last_callback_success_; |
@@ -166,6 +179,7 @@ class MockDumpProvider : public MemoryDumpProvider { |
TEST_F(MemoryDumpManagerTest, SingleDumper) { |
MockDumpProvider mdp; |
+ EnableMemoryDumpProviderRegistrations(); |
Primiano Tucci (use gerrit)
2015/09/22 08:07:02
Hmm this is a unittest. Why do you need all these
Ruud van Asseldonk
2015/09/29 09:12:27
I removed |skip_core_dumpers_auto_registration_for
|
mdm_->RegisterDumpProvider(&mdp); |
// Check that the dumper is not called if the memory category is not enabled. |
@@ -198,6 +212,7 @@ TEST_F(MemoryDumpManagerTest, CheckMemoryDumpArgs) { |
// Check that requesting dumps with high level of detail actually propagates |
// to OnMemoryDump() call on dump providers. |
MockDumpProvider mdp_high_detail(MemoryDumpArgs::LevelOfDetail::HIGH); |
+ EnableMemoryDumpProviderRegistrations(); |
mdm_->RegisterDumpProvider(&mdp_high_detail); |
EnableTracing(kTraceCategory); |
@@ -231,6 +246,7 @@ TEST_F(MemoryDumpManagerTest, CheckMemoryDumpArgs) { |
TEST_F(MemoryDumpManagerTest, SharedSessionState) { |
MockDumpProvider mdp1; |
MockDumpProvider mdp2; |
+ EnableMemoryDumpProviderRegistrations(); |
mdm_->RegisterDumpProvider(&mdp1); |
mdm_->RegisterDumpProvider(&mdp2); |
@@ -256,6 +272,7 @@ TEST_F(MemoryDumpManagerTest, MultipleDumpers) { |
MockDumpProvider mdp2; |
// Enable only mdp1. |
+ EnableMemoryDumpProviderRegistrations(); |
mdm_->RegisterDumpProvider(&mdp1); |
EnableTracing(kTraceCategory); |
EXPECT_CALL(mdp1, OnMemoryDump(_, _)).Times(1).WillRepeatedly(Return(true)); |
@@ -288,6 +305,7 @@ TEST_F(MemoryDumpManagerTest, MultipleDumpers) { |
// registration state and not on previous registrations and dumps. |
TEST_F(MemoryDumpManagerTest, RegistrationConsistency) { |
MockDumpProvider mdp; |
+ EnableMemoryDumpProviderRegistrations(); |
mdm_->RegisterDumpProvider(&mdp); |
@@ -343,6 +361,8 @@ TEST_F(MemoryDumpManagerTest, RespectTaskRunnerAffinity) { |
ScopedVector<Thread> threads; |
ScopedVector<MockDumpProvider> mdps; |
+ EnableMemoryDumpProviderRegistrations(); |
+ |
// Create the threads and setup the expectations. Given that at each iteration |
// we will pop out one thread/MemoryDumpProvider, each MDP is supposed to be |
// invoked a number of times equal to its index. |
@@ -360,6 +380,8 @@ TEST_F(MemoryDumpManagerTest, RespectTaskRunnerAffinity) { |
EnableTracing(kTraceCategory); |
+ DisableMemoryDumpProviderRegistrations(); |
+ |
while (!threads.empty()) { |
last_callback_success_ = false; |
{ |
@@ -401,6 +423,7 @@ TEST_F(MemoryDumpManagerTest, DisableFailingDumpers) { |
MockDumpProvider mdp1; |
MockDumpProvider mdp2; |
+ EnableMemoryDumpProviderRegistrations(); |
mdm_->RegisterDumpProvider(&mdp1); |
mdm_->RegisterDumpProvider(&mdp2); |
EnableTracing(kTraceCategory); |
@@ -428,6 +451,7 @@ TEST_F(MemoryDumpManagerTest, RegisterDumperWhileDumping) { |
MockDumpProvider mdp1; |
MockDumpProvider mdp2; |
+ EnableMemoryDumpProviderRegistrations(); |
mdp1.dump_provider_to_register_or_unregister = &mdp2; |
mdm_->RegisterDumpProvider(&mdp1); |
EnableTracing(kTraceCategory); |
@@ -458,6 +482,7 @@ TEST_F(MemoryDumpManagerTest, UnregisterDumperWhileDumping) { |
MockDumpProvider mdp1; |
MockDumpProvider mdp2; |
+ EnableMemoryDumpProviderRegistrations(); |
mdm_->RegisterDumpProvider(&mdp1, ThreadTaskRunnerHandle::Get()); |
mdm_->RegisterDumpProvider(&mdp2, ThreadTaskRunnerHandle::Get()); |
mdp1.dump_provider_to_register_or_unregister = &mdp2; |
@@ -493,7 +518,9 @@ TEST_F(MemoryDumpManagerTest, UnregisterDumperFromThreadWhileDumping) { |
for (int i = 0; i < 2; i++) { |
threads.push_back(new TestIOThread(TestIOThread::kAutoStart)); |
mdps.push_back(new MockDumpProvider(threads.back()->task_runner())); |
+ EnableMemoryDumpProviderRegistrations(); |
mdm_->RegisterDumpProvider(mdps.back(), threads.back()->task_runner()); |
+ DisableMemoryDumpProviderRegistrations(); |
} |
int on_memory_dump_call_count = 0; |
@@ -544,6 +571,7 @@ TEST_F(MemoryDumpManagerTest, UnregisterDumperFromThreadWhileDumping) { |
TEST_F(MemoryDumpManagerTest, CallbackCalledOnFailure) { |
MockDumpProvider mdp1; |
+ EnableMemoryDumpProviderRegistrations(); |
mdm_->RegisterDumpProvider(&mdp1); |
EXPECT_CALL(mdp1, OnMemoryDump(_, _)).Times(0); |