Index: cc/resources/resource_pool_unittest.cc |
diff --git a/cc/resources/resource_pool_unittest.cc b/cc/resources/resource_pool_unittest.cc |
index 53ccf4541001c9fb2a0d034a2d984e741bf03e25..9ed34ea12d15ac80ff62341ec069fefaefc76ec4 100644 |
--- a/cc/resources/resource_pool_unittest.cc |
+++ b/cc/resources/resource_pool_unittest.cc |
@@ -310,5 +310,61 @@ TEST_F(ResourcePoolTest, UpdateContentIdAndInvalidatedRect) { |
resource_pool_->ReleaseResource(reacquired_resource); |
} |
+TEST_F(ResourcePoolTest, ReuseResourceExactMatch) { |
+ ResourceFormat format = RGBA_8888; |
+ gfx::ColorSpace color_space = gfx::ColorSpace::CreateSRGB(); |
+ |
+ // Create unused resources with sizes close to 100, 100. |
+ resource_pool_->ReleaseResource( |
+ resource_pool_->CreateResource(gfx::Size(99, 100), format, color_space)); |
+ resource_pool_->ReleaseResource( |
+ resource_pool_->CreateResource(gfx::Size(99, 99), format, color_space)); |
+ resource_pool_->ReleaseResource( |
+ resource_pool_->CreateResource(gfx::Size(100, 99), format, color_space)); |
+ resource_pool_->ReleaseResource( |
+ resource_pool_->CreateResource(gfx::Size(101, 101), format, color_space)); |
+ resource_pool_->CheckBusyResources(); |
+ |
+ gfx::Size size(100, 100); |
+ EXPECT_EQ(nullptr, |
+ resource_pool_->ReuseResource(size, size, format, color_space)); |
+ size = gfx::Size(100, 99); |
+ EXPECT_NE(nullptr, |
+ resource_pool_->ReuseResource(size, size, format, color_space)); |
+ EXPECT_EQ(nullptr, |
+ resource_pool_->ReuseResource(size, size, format, color_space)); |
+} |
+ |
+TEST_F(ResourcePoolTest, ReuseResourceFuzzyMatch) { |
+ ResourceFormat format = RGBA_8888; |
+ gfx::ColorSpace color_space = gfx::ColorSpace::CreateSRGB(); |
+ |
+ // Create unused resources with sizes close to 100, 100. |
+ resource_pool_->ReleaseResource( |
+ resource_pool_->CreateResource(gfx::Size(99, 100), format, color_space)); |
+ resource_pool_->ReleaseResource( |
+ resource_pool_->CreateResource(gfx::Size(99, 99), format, color_space)); |
+ resource_pool_->ReleaseResource( |
+ resource_pool_->CreateResource(gfx::Size(100, 99), format, color_space)); |
+ resource_pool_->ReleaseResource( |
+ resource_pool_->CreateResource(gfx::Size(101, 101), format, color_space)); |
+ resource_pool_->ReleaseResource( |
+ resource_pool_->CreateResource(gfx::Size(202, 202), format, color_space)); |
+ resource_pool_->CheckBusyResources(); |
+ |
+ EXPECT_EQ(nullptr, |
+ resource_pool_->ReuseResource( |
+ gfx::Size(50, 100), gfx::Size(50, 102), format, color_space)); |
+ EXPECT_EQ(nullptr, |
+ resource_pool_->ReuseResource( |
+ gfx::Size(100, 102), gfx::Size(102, 102), format, color_space)); |
+ EXPECT_NE(nullptr, |
+ resource_pool_->ReuseResource( |
+ gfx::Size(100, 100), gfx::Size(200, 200), format, color_space)); |
+ EXPECT_EQ(nullptr, |
+ resource_pool_->ReuseResource( |
+ gfx::Size(100, 100), gfx::Size(200, 200), format, color_space)); |
+} |
+ |
} // namespace |
} // namespace cc |