Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2272)

Unified Diff: base/trace_event/memory_dump_manager_unittest.cc

Issue 1308403002: [Tracing] Disable registration of regular dump providers during tests (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@reland-content-browsertest
Patch Set: Fix RegisterDumperWhileDumping test Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..95f1bb4a95a06b278591ec5cfc567cfc3ec9687d 100644
--- a/base/trace_event/memory_dump_manager_unittest.cc
+++ b/base/trace_event/memory_dump_manager_unittest.cc
@@ -92,6 +92,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);
}
@@ -107,6 +108,20 @@ class MemoryDumpManagerTest : public testing::Test {
void DisableTracing() { TraceLog::GetInstance()->SetDisabled(); }
+ void RegisterDumpProvider(MemoryDumpProvider* mdp) {
Primiano Tucci (use gerrit) 2015/10/13 13:35:50 This could be made a standalone method in the anon
Ruud van Asseldonk 2015/10/13 13:55:41 As you wish.
+ mdm_->set_dumper_registrations_ignored_for_testing(false);
Primiano Tucci (use gerrit) 2015/10/13 13:35:50 you can just call RegisterDumpProvider(mdp, nullpt
Ruud van Asseldonk 2015/10/13 13:55:41 Done.
+ mdm_->RegisterDumpProvider(mdp);
+ mdm_->set_dumper_registrations_ignored_for_testing(true);
+ }
+
+ void RegisterDumpProvider(
+ MemoryDumpProvider* mdp,
+ const scoped_refptr<base::SingleThreadTaskRunner>& task_runner) {
+ mdm_->set_dumper_registrations_ignored_for_testing(false);
+ mdm_->RegisterDumpProvider(mdp, task_runner);
+ mdm_->set_dumper_registrations_ignored_for_testing(true);
+ }
+
bool IsPeriodicDumpingEnabled() const {
return mdm_->periodic_dump_timer_.IsRunning();
}
@@ -131,7 +146,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 +184,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 +195,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 +210,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 +245,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 +256,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 +266,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 +282,7 @@ TEST_F(MemoryDumpManagerTest, RegistrationConsistency) {
InitializeMemoryDumpManager(false /* is_coordinator */);
MockMemoryDumpProvider mdp;
- mdm_->RegisterDumpProvider(&mdp);
+ RegisterDumpProvider(&mdp);
{
EXPECT_CALL(*delegate_, RequestGlobalMemoryDump(_, _)).Times(1);
@@ -289,7 +304,7 @@ TEST_F(MemoryDumpManagerTest, RegistrationConsistency) {
DisableTracing();
}
- mdm_->RegisterDumpProvider(&mdp);
+ RegisterDumpProvider(&mdp);
mdm_->UnregisterDumpProvider(&mdp);
{
@@ -301,9 +316,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 +351,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 +406,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 +440,7 @@ TEST_F(MemoryDumpManagerTest, RegisterDumperWhileDumping) {
MockMemoryDumpProvider mdp1;
MockMemoryDumpProvider mdp2;
- mdm_->RegisterDumpProvider(&mdp1);
+ RegisterDumpProvider(&mdp1);
EnableTracingWithLegacyCategories(MemoryDumpManager::kTraceCategory);
EXPECT_CALL(*delegate_, RequestGlobalMemoryDump(_, _)).Times(4);
@@ -433,9 +448,9 @@ TEST_F(MemoryDumpManagerTest, RegisterDumperWhileDumping) {
EXPECT_CALL(mdp1, OnMemoryDump(_, _))
.Times(4)
.WillOnce(Return(true))
- .WillOnce(
- Invoke([&mdp2](const MemoryDumpArgs&, ProcessMemoryDump*) -> bool {
- MemoryDumpManager::GetInstance()->RegisterDumpProvider(&mdp2);
+ .WillOnce(Invoke(
+ [this, &mdp2](const MemoryDumpArgs&, ProcessMemoryDump*) -> bool {
Primiano Tucci (use gerrit) 2015/10/13 13:35:50 if you move RegisterDumpProvider to the anonymous
Ruud van Asseldonk 2015/10/13 13:55:41 Done.
+ RegisterDumpProvider(&mdp2);
return true;
}))
.WillRepeatedly(Return(true));
@@ -460,8 +475,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 +515,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 +567,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 +589,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

Powered by Google App Engine
This is Rietveld 408576698