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

Unified Diff: chrome/browser/memory/tab_manager_delegate_chromeos_unittest.cc

Issue 2874543002: Refactor ARC OOM handler code (Closed)
Patch Set: rebase Created 3 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
Index: chrome/browser/memory/tab_manager_delegate_chromeos_unittest.cc
diff --git a/chrome/browser/memory/tab_manager_delegate_chromeos_unittest.cc b/chrome/browser/memory/tab_manager_delegate_chromeos_unittest.cc
index 8d10119c877e32eeedee61d2573ad3bd9aea5697..7b6572fc370fd1c5bb90a3553e3f80db96f211ff 100644
--- a/chrome/browser/memory/tab_manager_delegate_chromeos_unittest.cc
+++ b/chrome/browser/memory/tab_manager_delegate_chromeos_unittest.cc
@@ -233,6 +233,12 @@ TEST_F(TabManagerDelegateTest, SetOomScoreAdj) {
3, 30, "service", arc::mojom::ProcessState::SERVICE, kNotFocused, 500);
arc_processes.emplace_back(4, 40, "visible2", arc::mojom::ProcessState::TOP,
kNotFocused, 150);
+ arc_processes.emplace_back(5, 50, "persistent",
+ arc::mojom::ProcessState::PERSISTENT, kNotFocused,
+ 600);
+ arc_processes.emplace_back(6, 60, "persistent_ui",
+ arc::mojom::ProcessState::PERSISTENT_UI,
+ kNotFocused, 700);
TabStats tab1, tab2, tab3, tab4, tab5;
tab1.is_pinned = true;
@@ -252,20 +258,29 @@ TEST_F(TabManagerDelegateTest, SetOomScoreAdj) {
tab5.renderer_handle = 12;
TabStatsList tab_list = {tab1, tab2, tab3, tab4, tab5};
- // Sorted order:
- // app "focused" pid: 10
- // app "visible1" pid: 20
- // app "visible2" pid: 40
- // tab3 pid: 12
- // tab4 pid: 12
- // tab1 pid: 11
- // tab5 pid: 12
- // tab2 pid: 11
- // app "service" pid: 30
+ // Sorted order (by GetSortedCandidates):
+ // app "focused" pid: 10
+ // app "persistent" pid: 50
+ // app "persistent_ui" pid: 60
+ // app "visible1" pid: 20
+ // app "visible2" pid: 40
+ // tab3 pid: 12
+ // tab4 pid: 12
+ // tab1 pid: 11
+ // tab5 pid: 12
+ // tab2 pid: 11
+ // app "service" pid: 30
tab_manager_delegate.AdjustOomPrioritiesImpl(tab_list, arc_processes);
auto& oom_score_map = tab_manager_delegate.oom_score_map_;
- EXPECT_EQ(6U, oom_score_map.size());
+ // 6 PIDs for apps + 2 PIDs for tabs.
+ EXPECT_EQ(6U + 2U, oom_score_map.size());
+
+ // Non-killable part. AdjustOomPrioritiesImpl() does make a focused app/tab
+ // kernel-killable, but does not do that for PERSISTENT and PERSISTENT_UI
+ // apps.
+ EXPECT_EQ(TabManagerDelegate::kLowestOomScore, oom_score_map[50]);
+ EXPECT_EQ(TabManagerDelegate::kLowestOomScore, oom_score_map[60]);
// Higher priority part.
EXPECT_EQ(300, oom_score_map[10]);
@@ -368,6 +383,9 @@ TEST_F(TabManagerDelegateTest, KillMultipleProcesses) {
arc_processes.emplace_back(5, 50, "not-visible",
arc::mojom::ProcessState::IMPORTANT_BACKGROUND,
kNotFocused, 300);
+ arc_processes.emplace_back(6, 60, "persistent",
+ arc::mojom::ProcessState::PERSISTENT, kNotFocused,
+ 400);
TabStats tab1, tab2, tab3, tab4, tab5;
tab1.is_pinned = true;
@@ -392,8 +410,9 @@ TEST_F(TabManagerDelegateTest, KillMultipleProcesses) {
tab5.tab_contents_id = 5;
TabStatsList tab_list = {tab1, tab2, tab3, tab4, tab5};
- // Sorted order:
+ // Sorted order (by GetSortedCandidates):
// app "focused" pid: 10 nspid 1
+ // app "persistent" pid: 60 nspid 6
// app "visible1" pid: 20 nspid 2
// app "visible2" pid: 40 nspid 4
// tab3 pid: 12 tab_contents_id 3
@@ -410,6 +429,7 @@ TEST_F(TabManagerDelegateTest, KillMultipleProcesses) {
memory_stat->SetProcessPss(11, 200000);
memory_stat->SetProcessPss(12, 30000);
// Should not be used.
+ memory_stat->SetProcessPss(60, 500000);
memory_stat->SetProcessPss(40, 50000);
memory_stat->SetProcessPss(20, 30000);
memory_stat->SetProcessPss(10, 100000);

Powered by Google App Engine
This is Rietveld 408576698