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

Unified Diff: android_webview/browser/global_tile_manager_unittest.cc

Issue 643993005: Remove limit on number of resources in cc (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 6 years, 2 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: android_webview/browser/global_tile_manager_unittest.cc
diff --git a/android_webview/browser/global_tile_manager_unittest.cc b/android_webview/browser/global_tile_manager_unittest.cc
deleted file mode 100644
index cd7d26e92f43bb223d13ba606a2ab4d46bc53a3e..0000000000000000000000000000000000000000
--- a/android_webview/browser/global_tile_manager_unittest.cc
+++ /dev/null
@@ -1,165 +0,0 @@
-// Copyright 2014 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.
-
-#include <algorithm>
-#include "android_webview/browser/global_tile_manager.h"
-#include "android_webview/browser/global_tile_manager_client.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace {
-// This should be the same as the one defined global_tile_manager.cc
-const size_t kNumTilesLimit = 450;
-const size_t kDefaultNumTiles = 150;
-
-} // namespace
-
-using android_webview::GlobalTileManager;
-using android_webview::GlobalTileManagerClient;
-using content::SynchronousCompositorMemoryPolicy;
-using testing::Test;
-
-class MockGlobalTileManagerClient : public GlobalTileManagerClient {
- public:
- virtual SynchronousCompositorMemoryPolicy GetMemoryPolicy() const override {
- return memory_policy_;
- }
-
- virtual void SetMemoryPolicy(SynchronousCompositorMemoryPolicy new_policy,
- bool effective_immediately) override {
- memory_policy_ = new_policy;
- }
-
- MockGlobalTileManagerClient() {
- tile_request_.num_resources_limit = kDefaultNumTiles;
- key_ = GlobalTileManager::GetInstance()->PushBack(this);
- }
-
- virtual ~MockGlobalTileManagerClient() {
- GlobalTileManager::GetInstance()->Remove(key_);
- }
-
- SynchronousCompositorMemoryPolicy GetTileRequest() { return tile_request_; }
- GlobalTileManager::Key GetKey() { return key_; }
-
- private:
- SynchronousCompositorMemoryPolicy memory_policy_;
- SynchronousCompositorMemoryPolicy tile_request_;
- GlobalTileManager::Key key_;
-};
-
-class GlobalTileManagerTest : public Test {
- public:
- virtual void SetUp() {}
-
- GlobalTileManager* manager() { return GlobalTileManager::GetInstance(); }
-};
-
-TEST_F(GlobalTileManagerTest, RequestTilesUnderLimit) {
- MockGlobalTileManagerClient clients[2];
-
- for (size_t i = 0; i < 2; i++) {
- manager()->RequestTiles(clients[i].GetTileRequest(), clients[i].GetKey());
- manager()->DidUse(clients[i].GetKey());
-
- // Ensure clients get what they asked for when the manager is under tile
- // limit.
- EXPECT_EQ(clients[i].GetMemoryPolicy().num_resources_limit,
- kDefaultNumTiles);
- }
-}
-
-TEST_F(GlobalTileManagerTest, EvictHappensWhenOverLimit) {
- MockGlobalTileManagerClient clients[4];
-
- for (size_t i = 0; i < 4; i++) {
- manager()->RequestTiles(clients[i].GetTileRequest(), clients[i].GetKey());
- manager()->DidUse(clients[i].GetKey());
- }
-
- size_t total_tiles = 0;
- for (size_t i = 0; i < 4; i++) {
- total_tiles += clients[i].GetMemoryPolicy().num_resources_limit;
- }
-
- // Ensure that eviction happened and kept the total number of tiles within
- // kNumTilesLimit.
- EXPECT_LE(total_tiles, kNumTilesLimit);
-}
-
-TEST_F(GlobalTileManagerTest, RandomizedStressRequests) {
- MockGlobalTileManagerClient clients[100];
- size_t index[100];
- for (size_t i = 0; i < 100; i++) {
- index[i] = i;
- }
-
- // Fix the seed so that tests are reproducible.
- std::srand(1);
- // Simulate a random request order of clients.
- std::random_shuffle(&index[0], &index[99]);
-
- for (size_t i = 0; i < 100; i++) {
- size_t j = index[i];
- manager()->RequestTiles(clients[j].GetTileRequest(), clients[j].GetKey());
- manager()->DidUse(clients[j].GetKey());
- }
-
- size_t total_tiles = 0;
- for (size_t i = 0; i < 100; i++) {
- total_tiles += clients[i].GetMemoryPolicy().num_resources_limit;
- }
-
- // Ensure that eviction happened and kept the total number of tiles within
- // kNumTilesLimit.
- EXPECT_LE(total_tiles, kNumTilesLimit);
-}
-
-TEST_F(GlobalTileManagerTest, FixedOrderedRequests) {
- MockGlobalTileManagerClient clients[10];
-
- // 10 clients requesting resources in a fixed order. Do that for 5 rounds.
- for (int round = 0; round < 5; round++) {
- for (size_t i = 0; i < 10; i++) {
- manager()->RequestTiles(clients[i].GetTileRequest(), clients[i].GetKey());
- manager()->DidUse(clients[i].GetKey());
- }
- }
-
- // Ensure that the total tiles are divided evenly among all clients.
- for (size_t i = 0; i < 10; i++) {
- EXPECT_EQ(clients[i].GetMemoryPolicy().num_resources_limit,
- kNumTilesLimit / 10);
- }
-}
-
-TEST_F(GlobalTileManagerTest, FixedOrderedRequestsWithInactiveClients) {
- MockGlobalTileManagerClient clients[20];
-
- // 20 clients request resources.
- for (size_t i = 0; i < 20; i++) {
- manager()->RequestTiles(clients[i].GetTileRequest(), clients[i].GetKey());
- manager()->DidUse(clients[i].GetKey());
- }
-
- // Now the last 10 clients become inactive. Only the first 10 clients remain
- // active resource requesters.
- // 10 clients requesting resources in a fixed order. Do that for 5 rounds.
- for (int round = 0; round < 5; round++) {
- for (size_t i = 0; i < 10; i++) {
- manager()->RequestTiles(clients[i].GetTileRequest(), clients[i].GetKey());
- manager()->DidUse(clients[i].GetKey());
- }
- }
-
- // Ensure that the total tiles are divided evenly among all clients.
- for (size_t i = 0; i < 10; i++) {
- EXPECT_EQ(clients[i].GetMemoryPolicy().num_resources_limit,
- kNumTilesLimit / 10);
- }
-
- // Ensure that the inactive tiles are evicted.
- for (size_t i = 11; i < 20; i++) {
- EXPECT_EQ(clients[i].GetMemoryPolicy().num_resources_limit, 0u);
- }
-}

Powered by Google App Engine
This is Rietveld 408576698