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

Unified Diff: base/trace_event/memory_dump_manager_unittest.cc

Issue 2777093009: [Memory UMA] Return a memory summary struct with the ack message (Closed)
Patch Set: Rebase Created 3 years, 8 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_request_args.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 48f747de9590f1db976abc3426a6005775f2ea3b..ba76b9adec2520105af74807f6a66585ad075207 100644
--- a/base/trace_event/memory_dump_manager_unittest.cc
+++ b/base/trace_event/memory_dump_manager_unittest.cc
@@ -116,6 +116,18 @@ void PostTaskAndWait(const tracked_objects::Location& from_here,
event.Wait();
}
+// Adapts a ProcessMemoryDumpCallback into a GlobalMemoryDumpCallback by
+// trimming off the result argument and calling the global callback.
+// TODO (fmeawad): we should keep the results for verification, but currently
+// all results are empty.
+void ProcessDumpCallbackAdapter(
+ GlobalMemoryDumpCallback callback,
+ uint64_t dump_guid,
+ bool success,
+ const base::Optional<base::trace_event::MemoryDumpCallbackResult>&) {
+ callback.Run(dump_guid, success);
+}
+
// Testing MemoryDumpManagerDelegate which, by default, short-circuits dump
// requests locally to the MemoryDumpManager instead of performing IPC dances.
class MemoryDumpManagerDelegateForTesting : public MemoryDumpManagerDelegate {
@@ -123,13 +135,17 @@ class MemoryDumpManagerDelegateForTesting : public MemoryDumpManagerDelegate {
MemoryDumpManagerDelegateForTesting(bool is_coordinator)
: is_coordinator_(is_coordinator) {
ON_CALL(*this, RequestGlobalMemoryDump(_, _))
- .WillByDefault(Invoke(
- this, &MemoryDumpManagerDelegateForTesting::CreateProcessDump));
+ .WillByDefault(Invoke([this](const MemoryDumpRequestArgs& args,
+ const GlobalMemoryDumpCallback& callback) {
+ ProcessMemoryDumpCallback process_callback =
+ Bind(&ProcessDumpCallbackAdapter, callback);
+ CreateProcessDump(args, process_callback);
+ }));
}
MOCK_METHOD2(RequestGlobalMemoryDump,
void(const MemoryDumpRequestArgs& args,
- const MemoryDumpCallback& callback));
+ const GlobalMemoryDumpCallback& callback));
bool IsCoordinator() const override { return is_coordinator_; }
@@ -234,12 +250,14 @@ class MemoryDumpManagerTest : public testing::Test {
TraceLog::DeleteForTesting();
}
- // Turns a Closure into a MemoryDumpCallback, keeping track of the callback
- // result and taking care of posting the closure on the correct task runner.
- void DumpCallbackAdapter(scoped_refptr<SingleThreadTaskRunner> task_runner,
- Closure closure,
- uint64_t dump_guid,
- bool success) {
+ // Turns a Closure into a GlobalMemoryDumpCallback, keeping track of the
+ // callback result and taking care of posting the closure on the correct task
+ // runner.
+ void GlobalDumpCallbackAdapter(
+ scoped_refptr<SingleThreadTaskRunner> task_runner,
+ Closure closure,
+ uint64_t dump_guid,
+ bool success) {
last_callback_success_ = success;
task_runner->PostTask(FROM_HERE, closure);
}
@@ -254,9 +272,9 @@ class MemoryDumpManagerTest : public testing::Test {
void RequestGlobalDumpAndWait(MemoryDumpType dump_type,
MemoryDumpLevelOfDetail level_of_detail) {
RunLoop run_loop;
- MemoryDumpCallback callback =
- Bind(&MemoryDumpManagerTest::DumpCallbackAdapter, Unretained(this),
- ThreadTaskRunnerHandle::Get(), run_loop.QuitClosure());
+ GlobalMemoryDumpCallback callback = Bind(
+ &MemoryDumpManagerTest::GlobalDumpCallbackAdapter, Unretained(this),
+ ThreadTaskRunnerHandle::Get(), run_loop.QuitClosure());
mdm_->RequestGlobalDump(dump_type, level_of_detail, callback);
run_loop.Run();
}
@@ -313,9 +331,10 @@ TEST_F(MemoryDumpManagerTest, SingleDumper) {
EnableTracingWithLegacyCategories(MemoryDumpManager::kTraceCategory);
EXPECT_CALL(*delegate_, RequestGlobalMemoryDump(_, _)).Times(3);
EXPECT_CALL(mdp, OnMemoryDump(_, _)).Times(3).WillRepeatedly(Return(true));
- for (int i = 0; i < 3; ++i)
+ for (int i = 0; i < 3; ++i) {
RequestGlobalDumpAndWait(MemoryDumpType::EXPLICITLY_TRIGGERED,
MemoryDumpLevelOfDetail::DETAILED);
+ }
DisableTracing();
mdm_->UnregisterDumpProvider(&mdp);
@@ -980,11 +999,11 @@ TEST_F(MemoryDumpManagerTest, TraceConfigExpectationsWhenIsCoordinator) {
EXPECT_CALL(delegate, RequestGlobalMemoryDump(IsLightDump(), _))
.Times(kHeavyDumpRate - 2);
EXPECT_CALL(delegate, RequestGlobalMemoryDump(IsLightDump(), _))
- .WillOnce(Invoke(
- [test_task_runner, quit_closure](const MemoryDumpRequestArgs& args,
- const MemoryDumpCallback& callback) {
- test_task_runner->PostTask(FROM_HERE, quit_closure);
- }));
+ .WillOnce(Invoke([test_task_runner, quit_closure](
+ const MemoryDumpRequestArgs& args,
+ const GlobalMemoryDumpCallback& callback) {
+ test_task_runner->PostTask(FROM_HERE, quit_closure);
+ }));
// Swallow all the final spurious calls until tracing gets disabled.
EXPECT_CALL(delegate, RequestGlobalMemoryDump(_, _)).Times(AnyNumber());
@@ -1042,8 +1061,8 @@ TEST_F(MemoryDumpManagerTest, MAYBE_DisableTracingWhileDumping) {
last_callback_success_ = true;
RunLoop run_loop;
- MemoryDumpCallback callback =
- Bind(&MemoryDumpManagerTest::DumpCallbackAdapter, Unretained(this),
+ GlobalMemoryDumpCallback callback =
+ Bind(&MemoryDumpManagerTest::GlobalDumpCallbackAdapter, Unretained(this),
ThreadTaskRunnerHandle::Get(), run_loop.QuitClosure());
mdm_->RequestGlobalDump(MemoryDumpType::EXPLICITLY_TRIGGERED,
MemoryDumpLevelOfDetail::DETAILED, callback);
@@ -1074,9 +1093,11 @@ TEST_F(MemoryDumpManagerTest, DisableTracingRightBeforeStartOfDump) {
EXPECT_CALL(*delegate_, RequestGlobalMemoryDump(_, _))
.WillOnce(Invoke([this](const MemoryDumpRequestArgs& args,
- const MemoryDumpCallback& callback) {
+ const GlobalMemoryDumpCallback& callback) {
DisableTracing();
- delegate_->CreateProcessDump(args, callback);
+ ProcessMemoryDumpCallback process_callback =
+ Bind(&ProcessDumpCallbackAdapter, callback);
+ delegate_->CreateProcessDump(args, process_callback);
}));
// If tracing is disabled for current session CreateProcessDump() should NOT
@@ -1244,11 +1265,11 @@ TEST_F(MemoryDumpManagerTest, TestBackgroundTracingSetup) {
EXPECT_CALL(*delegate_, RequestGlobalMemoryDump(IsBackgroundDump(), _))
.Times(5);
EXPECT_CALL(*delegate_, RequestGlobalMemoryDump(IsBackgroundDump(), _))
- .WillOnce(Invoke(
- [test_task_runner, quit_closure](const MemoryDumpRequestArgs& args,
- const MemoryDumpCallback& callback) {
- test_task_runner->PostTask(FROM_HERE, quit_closure);
- }));
+ .WillOnce(Invoke([test_task_runner, quit_closure](
+ const MemoryDumpRequestArgs& args,
+ const GlobalMemoryDumpCallback& callback) {
+ test_task_runner->PostTask(FROM_HERE, quit_closure);
+ }));
EXPECT_CALL(*delegate_, RequestGlobalMemoryDump(_, _)).Times(AnyNumber());
EnableTracingWithTraceConfig(
« no previous file with comments | « base/trace_event/memory_dump_manager.cc ('k') | base/trace_event/memory_dump_request_args.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698