forked from Pissandshittium/pissandshittium
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
memory-infra: Stop using RequestGlobalDump in MemoryDumpManagerTest
This CL changes the memory-infra unittests to not depend on the RequestGlobalDump() API. From a logical viewpoint, the RequestGlobalDump() is not needed for an in-process-only test like MemoryDumpManagerTest. From a more practical viewpoint, this refactoring is required in preparation of the next CLs that will remove MemoryDumpManager::RequestGlobalDump() method and move all the clients to directly use the service. This CL doesn't cause any behavior change in memory-infra. BUG=720352 TBR=thakis Change-Id: I82ee1bf94dab55798be727f0ae70a1fede6634ca Reviewed-on: https://chromium-review.googlesource.com/525534 Reviewed-by: Primiano Tucci <primiano@chromium.org> Reviewed-by: siddhartha sivakumar <ssid@chromium.org> Reviewed-by: Helen Li <xunjieli@chromium.org> Reviewed-by: Hector Dearman <hjd@chromium.org> Commit-Queue: siddhartha sivakumar <ssid@chromium.org> Cr-Commit-Position: refs/heads/master@{#477851}
- Loading branch information
Showing
7 changed files
with
333 additions
and
415 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
// Copyright 2017 The Chromium Authors. All rights reserved. | ||
// Use of this source code is governed by a BSD-style license that can be | ||
// found in the LICENSE file. | ||
|
||
#ifndef BASE_TRACE_EVENT_MEMORY_DUMP_MANAGER_TEST_UTILS_H_ | ||
#define BASE_TRACE_EVENT_MEMORY_DUMP_MANAGER_TEST_UTILS_H_ | ||
|
||
#include "base/bind.h" | ||
#include "base/trace_event/memory_dump_manager.h" | ||
#include "base/trace_event/memory_dump_request_args.h" | ||
|
||
namespace base { | ||
namespace trace_event { | ||
|
||
// Short-circuit the RequestGlobalDump() calls to CreateProcessDump(). | ||
// Rationale: only the in-process logic is required for unittests. | ||
void RequestGlobalDumpForInProcessTesting( | ||
const MemoryDumpRequestArgs& args, | ||
const GlobalMemoryDumpCallback& global_callback) { | ||
// Turns a ProcessMemoryDumpCallback into a GlobalMemoryDumpCallback. | ||
auto callback_adapter = [](const GlobalMemoryDumpCallback& global_callback, | ||
uint64_t dump_guid, bool success, | ||
const Optional<MemoryDumpCallbackResult>& result) { | ||
if (!global_callback.is_null()) | ||
global_callback.Run(dump_guid, success); | ||
}; | ||
MemoryDumpManager::GetInstance()->CreateProcessDump( | ||
args, Bind(callback_adapter, global_callback)); | ||
}; | ||
|
||
// Short circuits the RequestGlobalDumpFunction() to CreateProcessDump(), | ||
// effectively allowing to use both in unittests with the same behavior. | ||
// Unittests are in-process only and don't require all the multi-process | ||
// dump handshaking (which would require bits outside of base). | ||
void InitializeMemoryDumpManagerForInProcessTesting(bool is_coordinator) { | ||
MemoryDumpManager* instance = MemoryDumpManager::GetInstance(); | ||
instance->set_dumper_registrations_ignored_for_testing(true); | ||
instance->Initialize(BindRepeating(&RequestGlobalDumpForInProcessTesting), | ||
is_coordinator); | ||
instance->set_dumper_registrations_ignored_for_testing(false); | ||
} | ||
|
||
} // namespace trace_event | ||
} // namespace base | ||
|
||
#endif // BASE_TRACE_EVENT_MEMORY_DUMP_MANAGER_TEST_UTILS_H_ |
Oops, something went wrong.