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

Unified Diff: base/trace_event/memory_dump_manager_unittest.cc

Issue 1128733002: Update from https://crrev.com/328418 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 7 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
« no previous file with comments | « base/trace_event/memory_dump_manager.cc ('k') | base/trace_event/memory_dump_provider.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 589c4061a7f1bc83cd8bb66baa4fb032d9ba390f..1da9429588e14b1de200dc278a50df92e40dd945 100644
--- a/base/trace_event/memory_dump_manager_unittest.cc
+++ b/base/trace_event/memory_dump_manager_unittest.cc
@@ -81,44 +81,35 @@ class MemoryDumpManagerTest : public testing::Test {
class MockDumpProvider : public MemoryDumpProvider {
public:
- MockDumpProvider() {}
+ MockDumpProvider() : last_session_state_(nullptr) {}
+ // Ctor used by the RespectTaskRunnerAffinity test.
explicit MockDumpProvider(
const scoped_refptr<SingleThreadTaskRunner>& task_runner)
- : MemoryDumpProvider(task_runner) {}
+ : last_session_state_(nullptr), task_runner_(task_runner) {}
- // Ctor for the SharedSessionState test.
- explicit MockDumpProvider(const std::string& id) {
- DeclareAllocatorAttribute("allocator" + id, "attr" + id, "type" + id);
- }
-
- MOCK_METHOD1(DumpInto, bool(ProcessMemoryDump* pmd));
+ virtual ~MockDumpProvider() {}
- // DumpInto() override for the ActiveDumpProviderConsistency test.
- bool DumpIntoAndCheckDumpProviderCurrentlyActive(ProcessMemoryDump* pmd) {
- EXPECT_EQ(
- this,
- MemoryDumpManager::GetInstance()->dump_provider_currently_active());
- return true;
- }
+ MOCK_METHOD1(OnMemoryDump, bool(ProcessMemoryDump* pmd));
- // DumpInto() override for the RespectTaskRunnerAffinity test.
- bool DumpIntoAndCheckTaskRunner(ProcessMemoryDump* pmd) {
- EXPECT_TRUE(task_runner()->RunsTasksOnCurrentThread());
+ // OnMemoryDump() override for the RespectTaskRunnerAffinity test.
+ bool OnMemoryDump_CheckTaskRunner(ProcessMemoryDump* pmd) {
+ EXPECT_TRUE(task_runner_->RunsTasksOnCurrentThread());
return true;
}
- // DumpInto() override for the SharedSessionState test.
- bool DumpIntoAndCheckSessionState(ProcessMemoryDump* pmd) {
- EXPECT_TRUE(pmd->session_state());
- const auto& attrs_type_info =
- pmd->session_state()->allocators_attributes_type_info;
- EXPECT_TRUE(attrs_type_info.Exists("allocator1", "attr1"));
- EXPECT_TRUE(attrs_type_info.Exists("allocator2", "attr2"));
+ // OnMemoryDump() override for the SharedSessionState test.
+ bool OnMemoryDump_CheckSessionState(ProcessMemoryDump* pmd) {
+ MemoryDumpSessionState* cur_session_state = pmd->session_state().get();
+ if (last_session_state_)
+ EXPECT_EQ(last_session_state_, cur_session_state);
+ last_session_state_ = cur_session_state;
return true;
}
- const char* GetFriendlyName() const override { return "MockDumpProvider"; }
+ private:
+ MemoryDumpSessionState* last_session_state_;
+ scoped_refptr<SingleThreadTaskRunner> task_runner_;
};
TEST_F(MemoryDumpManagerTest, SingleDumper) {
@@ -127,14 +118,14 @@ TEST_F(MemoryDumpManagerTest, SingleDumper) {
// Check that the dumper is not called if the memory category is not enabled.
EnableTracing("foo-and-bar-but-not-memory");
- EXPECT_CALL(mdp, DumpInto(_)).Times(0);
+ EXPECT_CALL(mdp, OnMemoryDump(_)).Times(0);
mdm_->RequestGlobalDump(MemoryDumpType::EXPLICITLY_TRIGGERED);
DisableTracing();
// Now repeat enabling the memory category and check that the dumper is
// invoked this time.
EnableTracing(kTraceCategory);
- EXPECT_CALL(mdp, DumpInto(_)).Times(3).WillRepeatedly(Return(true));
+ EXPECT_CALL(mdp, OnMemoryDump(_)).Times(3).WillRepeatedly(Return(true));
for (int i = 0; i < 3; ++i)
mdm_->RequestGlobalDump(MemoryDumpType::EXPLICITLY_TRIGGERED);
DisableTracing();
@@ -143,22 +134,26 @@ TEST_F(MemoryDumpManagerTest, SingleDumper) {
// Finally check the unregister logic (no calls to the mdp after unregister).
EnableTracing(kTraceCategory);
- EXPECT_CALL(mdp, DumpInto(_)).Times(0);
+ EXPECT_CALL(mdp, OnMemoryDump(_)).Times(0);
mdm_->RequestGlobalDump(MemoryDumpType::EXPLICITLY_TRIGGERED);
TraceLog::GetInstance()->SetDisabled();
}
TEST_F(MemoryDumpManagerTest, SharedSessionState) {
- MockDumpProvider mdp1("1"); // Will declare an allocator property "attr1".
- MockDumpProvider mdp2("2"); // Will declare an allocator property "attr2".
+ MockDumpProvider mdp1;
+ MockDumpProvider mdp2;
mdm_->RegisterDumpProvider(&mdp1);
mdm_->RegisterDumpProvider(&mdp2);
EnableTracing(kTraceCategory);
- EXPECT_CALL(mdp1, DumpInto(_)).Times(2).WillRepeatedly(
- Invoke(&mdp1, &MockDumpProvider::DumpIntoAndCheckSessionState));
- EXPECT_CALL(mdp2, DumpInto(_)).Times(2).WillRepeatedly(
- Invoke(&mdp2, &MockDumpProvider::DumpIntoAndCheckSessionState));
+ EXPECT_CALL(mdp1, OnMemoryDump(_))
+ .Times(2)
+ .WillRepeatedly(
+ Invoke(&mdp1, &MockDumpProvider::OnMemoryDump_CheckSessionState));
+ EXPECT_CALL(mdp2, OnMemoryDump(_))
+ .Times(2)
+ .WillRepeatedly(
+ Invoke(&mdp2, &MockDumpProvider::OnMemoryDump_CheckSessionState));
for (int i = 0; i < 2; ++i)
mdm_->RequestGlobalDump(MemoryDumpType::EXPLICITLY_TRIGGERED);
@@ -173,8 +168,8 @@ TEST_F(MemoryDumpManagerTest, MultipleDumpers) {
// Enable only mdp1.
mdm_->RegisterDumpProvider(&mdp1);
EnableTracing(kTraceCategory);
- EXPECT_CALL(mdp1, DumpInto(_)).Times(1).WillRepeatedly(Return(true));
- EXPECT_CALL(mdp2, DumpInto(_)).Times(0);
+ EXPECT_CALL(mdp1, OnMemoryDump(_)).Times(1).WillRepeatedly(Return(true));
+ EXPECT_CALL(mdp2, OnMemoryDump(_)).Times(0);
mdm_->RequestGlobalDump(MemoryDumpType::EXPLICITLY_TRIGGERED);
DisableTracing();
@@ -182,16 +177,16 @@ TEST_F(MemoryDumpManagerTest, MultipleDumpers) {
mdm_->UnregisterDumpProvider(&mdp1);
mdm_->RegisterDumpProvider(&mdp2);
EnableTracing(kTraceCategory);
- EXPECT_CALL(mdp1, DumpInto(_)).Times(0);
- EXPECT_CALL(mdp2, DumpInto(_)).Times(1).WillRepeatedly(Return(true));
+ EXPECT_CALL(mdp1, OnMemoryDump(_)).Times(0);
+ EXPECT_CALL(mdp2, OnMemoryDump(_)).Times(1).WillRepeatedly(Return(true));
mdm_->RequestGlobalDump(MemoryDumpType::EXPLICITLY_TRIGGERED);
DisableTracing();
// Enable both mdp1 and mdp2.
mdm_->RegisterDumpProvider(&mdp1);
EnableTracing(kTraceCategory);
- EXPECT_CALL(mdp1, DumpInto(_)).Times(1).WillRepeatedly(Return(true));
- EXPECT_CALL(mdp2, DumpInto(_)).Times(1).WillRepeatedly(Return(true));
+ EXPECT_CALL(mdp1, OnMemoryDump(_)).Times(1).WillRepeatedly(Return(true));
+ EXPECT_CALL(mdp2, OnMemoryDump(_)).Times(1).WillRepeatedly(Return(true));
mdm_->RequestGlobalDump(MemoryDumpType::EXPLICITLY_TRIGGERED);
DisableTracing();
}
@@ -214,11 +209,11 @@ TEST_F(MemoryDumpManagerTest, RespectTaskRunnerAffinity) {
threads.back()->Start();
mdps.push_back(new MockDumpProvider(threads.back()->task_runner()));
MockDumpProvider* mdp = mdps.back();
- mdm_->RegisterDumpProvider(mdp);
- EXPECT_CALL(*mdp, DumpInto(_))
+ mdm_->RegisterDumpProvider(mdp, threads.back()->task_runner());
+ EXPECT_CALL(*mdp, OnMemoryDump(_))
.Times(i)
.WillRepeatedly(
- Invoke(mdp, &MockDumpProvider::DumpIntoAndCheckTaskRunner));
+ Invoke(mdp, &MockDumpProvider::OnMemoryDump_CheckTaskRunner));
}
EnableTracing(kTraceCategory);
@@ -266,41 +261,16 @@ TEST_F(MemoryDumpManagerTest, DisableFailingDumpers) {
mdm_->RegisterDumpProvider(&mdp2);
EnableTracing(kTraceCategory);
- EXPECT_CALL(mdp1, DumpInto(_)).Times(1).WillRepeatedly(Return(false));
- EXPECT_CALL(mdp2, DumpInto(_)).Times(1).WillRepeatedly(Return(true));
+ EXPECT_CALL(mdp1, OnMemoryDump(_)).Times(1).WillRepeatedly(Return(false));
+ EXPECT_CALL(mdp2, OnMemoryDump(_)).Times(1).WillRepeatedly(Return(true));
mdm_->RequestGlobalDump(MemoryDumpType::EXPLICITLY_TRIGGERED);
- EXPECT_CALL(mdp1, DumpInto(_)).Times(0);
- EXPECT_CALL(mdp2, DumpInto(_)).Times(1).WillRepeatedly(Return(false));
+ EXPECT_CALL(mdp1, OnMemoryDump(_)).Times(0);
+ EXPECT_CALL(mdp2, OnMemoryDump(_)).Times(1).WillRepeatedly(Return(false));
mdm_->RequestGlobalDump(MemoryDumpType::EXPLICITLY_TRIGGERED);
DisableTracing();
}
-// TODO(primiano): remove once crbug.com/466121 gets fixed.
-// Ascertains that calls to MDM::dump_provider_currently_active() actually
-// returns the MemoryDumpProvider currently active during the DumpInto() call.
-TEST_F(MemoryDumpManagerTest, ActiveDumpProviderConsistency) {
- MockDumpProvider mdp1;
- MockDumpProvider mdp2;
-
- mdm_->RegisterDumpProvider(&mdp1);
- mdm_->RegisterDumpProvider(&mdp2);
- EnableTracing(kTraceCategory);
- EXPECT_CALL(mdp1, DumpInto(_))
- .Times(2)
- .WillRepeatedly(Invoke(
- &mdp1,
- &MockDumpProvider::DumpIntoAndCheckDumpProviderCurrentlyActive));
- EXPECT_CALL(mdp2, DumpInto(_))
- .Times(2)
- .WillRepeatedly(Invoke(
- &mdp2,
- &MockDumpProvider::DumpIntoAndCheckDumpProviderCurrentlyActive));
- mdm_->RequestGlobalDump(MemoryDumpType::EXPLICITLY_TRIGGERED);
- mdm_->RequestGlobalDump(MemoryDumpType::EXPLICITLY_TRIGGERED);
- DisableTracing();
-}
-
} // namespace trace_event
} // namespace base
« no previous file with comments | « base/trace_event/memory_dump_manager.cc ('k') | base/trace_event/memory_dump_provider.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698