diff options
Diffstat (limited to 'gpu/command_buffer/service/framebuffer_manager_unittest.cc')
-rw-r--r-- | gpu/command_buffer/service/framebuffer_manager_unittest.cc | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/gpu/command_buffer/service/framebuffer_manager_unittest.cc b/gpu/command_buffer/service/framebuffer_manager_unittest.cc index 75d0da6..ed435c1 100644 --- a/gpu/command_buffer/service/framebuffer_manager_unittest.cc +++ b/gpu/command_buffer/service/framebuffer_manager_unittest.cc @@ -3,6 +3,7 @@ // found in the LICENSE file. #include "gpu/command_buffer/service/framebuffer_manager.h" +#include "app/gfx/gl/gl_mock.h" #include "testing/gtest/include/gtest/gtest.h" namespace gpu { @@ -12,14 +13,23 @@ class FramebufferManagerTest : public testing::Test { public: FramebufferManagerTest() { } + ~FramebufferManagerTest() { + manager_.Destroy(false); + } protected: virtual void SetUp() { + gl_.reset(new ::testing::StrictMock< ::gfx::MockGLInterface>()); + ::gfx::GLInterface::SetGLInterface(gl_.get()); } virtual void TearDown() { + ::gfx::GLInterface::SetGLInterface(NULL); + gl_.reset(); } + // Use StrictMock to make 100% sure we know how GL will be called. + scoped_ptr< ::testing::StrictMock< ::gfx::MockGLInterface> > gl_; FramebufferManager manager_; }; @@ -47,6 +57,24 @@ TEST_F(FramebufferManagerTest, Basic) { EXPECT_TRUE(manager_.GetFramebufferInfo(kClient1Id) == NULL); } +TEST_F(FramebufferManagerTest, Destroy) { + const GLuint kClient1Id = 1; + const GLuint kService1Id = 11; + // Check we can create framebuffer. + manager_.CreateFramebufferInfo(kClient1Id, kService1Id); + // Check framebuffer got created. + FramebufferManager::FramebufferInfo* info1 = + manager_.GetFramebufferInfo(kClient1Id); + ASSERT_TRUE(info1 != NULL); + EXPECT_CALL(*gl_, DeleteFramebuffersEXT(1, ::testing::Pointee(kService1Id))) + .Times(1) + .RetiresOnSaturation(); + manager_.Destroy(true); + // Check the resources were released. + info1 = manager_.GetFramebufferInfo(kClient1Id); + ASSERT_TRUE(info1 == NULL); +} + // TODO(gman): Write test for AttachRenderbuffer } // namespace gles2 |