| Index: content/browser/memory/memory_coordinator_impl_unittest.cc
|
| diff --git a/content/browser/memory/memory_coordinator_impl_unittest.cc b/content/browser/memory/memory_coordinator_impl_unittest.cc
|
| index 1eaf7afc44d3fb965a63bc22ce934934b66a479b..795d18b562f67d43b7ed8c635855f3da3625cece 100644
|
| --- a/content/browser/memory/memory_coordinator_impl_unittest.cc
|
| +++ b/content/browser/memory/memory_coordinator_impl_unittest.cc
|
| @@ -10,6 +10,7 @@
|
| #include "base/memory/ptr_util.h"
|
| #include "base/message_loop/message_loop.h"
|
| #include "base/run_loop.h"
|
| +#include "base/test/multiprocess_test.h"
|
| #include "base/test/scoped_feature_list.h"
|
| #include "base/test/test_mock_time_task_runner.h"
|
| #include "content/browser/memory/memory_monitor.h"
|
| @@ -162,11 +163,12 @@ class TestMemoryCoordinatorImpl : public MemoryCoordinatorImpl {
|
|
|
| } // namespace
|
|
|
| -class MemoryCoordinatorImplTest : public testing::Test {
|
| +class MemoryCoordinatorImplTest : public base::MultiProcessTest {
|
| public:
|
| using MemoryState = base::MemoryState;
|
|
|
| void SetUp() override {
|
| + base::MultiProcessTest::SetUp();
|
| scoped_feature_list_.InitAndEnableFeature(features::kMemoryCoordinator);
|
|
|
| task_runner_ = new base::TestMockTimeTaskRunner();
|
| @@ -471,4 +473,32 @@ TEST_F(MemoryCoordinatorImplTest, ForceSetGlobalState) {
|
| EXPECT_EQ(base::MemoryState::THROTTLED, coordinator_->GetGlobalMemoryState());
|
| }
|
|
|
| +TEST_F(MemoryCoordinatorImplTest, GetStateForProcess) {
|
| + EXPECT_EQ(base::MemoryState::UNKNOWN,
|
| + coordinator_->GetStateForProcess(base::kNullProcessHandle));
|
| + EXPECT_EQ(base::MemoryState::NORMAL,
|
| + coordinator_->GetStateForProcess(base::GetCurrentProcessHandle()));
|
| +
|
| + coordinator_->CreateChildMemoryCoordinator(1);
|
| + coordinator_->CreateChildMemoryCoordinator(2);
|
| + base::Process process1 = SpawnChild("process1");
|
| + base::Process process2 = SpawnChild("process2");
|
| + coordinator_->GetMockRenderProcessHost(1)->SetProcessHandle(
|
| + base::MakeUnique<base::ProcessHandle>(process1.Handle()));
|
| + coordinator_->GetMockRenderProcessHost(2)->SetProcessHandle(
|
| + base::MakeUnique<base::ProcessHandle>(process2.Handle()));
|
| +
|
| + EXPECT_EQ(base::MemoryState::NORMAL,
|
| + coordinator_->GetStateForProcess(process1.Handle()));
|
| + EXPECT_EQ(base::MemoryState::NORMAL,
|
| + coordinator_->GetStateForProcess(process2.Handle()));
|
| +
|
| + EXPECT_TRUE(
|
| + coordinator_->SetChildMemoryState(1, MemoryState::THROTTLED));
|
| + EXPECT_EQ(base::MemoryState::THROTTLED,
|
| + coordinator_->GetStateForProcess(process1.Handle()));
|
| + EXPECT_EQ(base::MemoryState::NORMAL,
|
| + coordinator_->GetStateForProcess(process2.Handle()));
|
| +}
|
| +
|
| } // namespace content
|
|
|