Index: cc/output/output_surface_unittest.cc |
diff --git a/cc/output/output_surface_unittest.cc b/cc/output/output_surface_unittest.cc |
index b09ead46493f9e3b668a26d1021ba0f255ff3b33..633733265072318641ebe9ef09ca2468c8ae8328 100644 |
--- a/cc/output/output_surface_unittest.cc |
+++ b/cc/output/output_surface_unittest.cc |
@@ -152,6 +152,37 @@ TEST(OutputSurfaceTest, ClientPointerIndicatesWorkerBindToClientFailure) { |
EXPECT_FALSE(output_surface.HasClient()); |
} |
+TEST(OutputSurfaceTest, MemoryAllocation) { |
+ scoped_refptr<TestContextProvider> context_provider = |
+ TestContextProvider::Create(); |
+ |
+ TestOutputSurface output_surface(context_provider); |
+ |
+ FakeOutputSurfaceClient client; |
+ EXPECT_TRUE(output_surface.BindToClient(&client)); |
+ |
+ ManagedMemoryPolicy policy(0); |
+ policy.bytes_limit_when_visible = 1234; |
+ policy.priority_cutoff_when_visible = |
+ gpu::MemoryAllocation::CUTOFF_ALLOW_REQUIRED_ONLY; |
+ |
+ context_provider->SetMemoryAllocation(policy); |
+ EXPECT_EQ(1234u, client.memory_policy().bytes_limit_when_visible); |
+ EXPECT_EQ(gpu::MemoryAllocation::CUTOFF_ALLOW_REQUIRED_ONLY, |
+ client.memory_policy().priority_cutoff_when_visible); |
+ |
+ policy.priority_cutoff_when_visible = |
+ gpu::MemoryAllocation::CUTOFF_ALLOW_EVERYTHING; |
+ context_provider->SetMemoryAllocation(policy); |
+ EXPECT_EQ(gpu::MemoryAllocation::CUTOFF_ALLOW_EVERYTHING, |
+ client.memory_policy().priority_cutoff_when_visible); |
+ |
+ // 0 bytes limit should be ignored. |
+ policy.bytes_limit_when_visible = 0; |
+ context_provider->SetMemoryAllocation(policy); |
+ EXPECT_EQ(1234u, client.memory_policy().bytes_limit_when_visible); |
+} |
+ |
TEST(OutputSurfaceTest, SoftwareOutputDeviceBackbufferManagement) { |
TestSoftwareOutputDevice* software_output_device = |
new TestSoftwareOutputDevice(); |