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

Unified Diff: cc/resources/resource_pool_unittest.cc

Issue 2367953002: Implement OnMemoryStateChange for Various CC Classes (Closed)
Patch Set: feedback Created 4 years, 3 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 | « cc/resources/resource_pool.cc ('k') | cc/tiles/gpu_image_decode_controller.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/resources/resource_pool_unittest.cc
diff --git a/cc/resources/resource_pool_unittest.cc b/cc/resources/resource_pool_unittest.cc
index 972fd02be4852c8fdc6bc992cf8ad143bdbc8b06..3a82131d2776286e90353b25156a5107f57fe504 100644
--- a/cc/resources/resource_pool_unittest.cc
+++ b/cc/resources/resource_pool_unittest.cc
@@ -335,4 +335,36 @@ TEST_F(ResourcePoolTest, ReuseResource) {
resource_pool_->ReleaseResource(resource);
}
+TEST_F(ResourcePoolTest, MemoryStateSuspended) {
+ // Limits high enough to not be hit by this test.
+ size_t bytes_limit = 10 * 1024 * 1024;
+ size_t count_limit = 100;
+ resource_pool_->SetResourceUsageLimits(bytes_limit, count_limit);
+
+ gfx::Size size(100, 100);
+ ResourceFormat format = RGBA_8888;
+ gfx::ColorSpace color_space = gfx::ColorSpace::CreateSRGB();
+ Resource* resource =
+ resource_pool_->AcquireResource(size, format, color_space);
+
+ EXPECT_EQ(1u, resource_pool_->GetTotalResourceCountForTesting());
+ EXPECT_EQ(0u, resource_pool_->GetBusyResourceCountForTesting());
+
+ // Suspending should not impact an in-use resource.
+ resource_pool_->OnMemoryStateChange(base::MemoryState::SUSPENDED);
+ EXPECT_EQ(1u, resource_pool_->GetTotalResourceCountForTesting());
+ EXPECT_EQ(0u, resource_pool_->GetBusyResourceCountForTesting());
+ resource_pool_->OnMemoryStateChange(base::MemoryState::NORMAL);
+
+ // Release the resource making it busy.
+ resource_pool_->ReleaseResource(resource);
+ EXPECT_EQ(1u, resource_pool_->GetTotalResourceCountForTesting());
+ EXPECT_EQ(1u, resource_pool_->GetBusyResourceCountForTesting());
+
+ // Suspending should now free the busy resource.
+ resource_pool_->OnMemoryStateChange(base::MemoryState::SUSPENDED);
+ EXPECT_EQ(0u, resource_pool_->GetTotalResourceCountForTesting());
+ EXPECT_EQ(0u, resource_pool_->GetBusyResourceCountForTesting());
+}
+
} // namespace cc
« no previous file with comments | « cc/resources/resource_pool.cc ('k') | cc/tiles/gpu_image_decode_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698