| Index: gpu/command_buffer/service/shader_manager_unittest.cc
|
| ===================================================================
|
| --- gpu/command_buffer/service/shader_manager_unittest.cc (revision 51426)
|
| +++ gpu/command_buffer/service/shader_manager_unittest.cc (working copy)
|
| @@ -3,6 +3,8 @@
|
| // found in the LICENSE file.
|
|
|
| #include "gpu/command_buffer/service/shader_manager.h"
|
| +#include "base/scoped_ptr.h"
|
| +#include "app/gfx/gl/gl_mock.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| namespace gpu {
|
| @@ -13,13 +15,23 @@
|
| ShaderManagerTest() {
|
| }
|
|
|
| + ~ShaderManagerTest() {
|
| + 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_;
|
| ShaderManager manager_;
|
| };
|
|
|
| @@ -55,6 +67,24 @@
|
| EXPECT_TRUE(manager_.GetShaderInfo(kClient1Id) == NULL);
|
| }
|
|
|
| +TEST_F(ShaderManagerTest, Destroy) {
|
| + const GLuint kClient1Id = 1;
|
| + const GLuint kService1Id = 11;
|
| + const GLenum kShader1Type = GL_VERTEX_SHADER;
|
| + // Check we can create shader.
|
| + manager_.CreateShaderInfo(kClient1Id, kService1Id, kShader1Type);
|
| + // Check shader got created.
|
| + ShaderManager::ShaderInfo* info1 = manager_.GetShaderInfo(kClient1Id);
|
| + ASSERT_TRUE(info1 != NULL);
|
| + EXPECT_CALL(*gl_, DeleteShader(kService1Id))
|
| + .Times(1)
|
| + .RetiresOnSaturation();
|
| + manager_.Destroy(true);
|
| + // Check that resources got freed.
|
| + info1 = manager_.GetShaderInfo(kClient1Id);
|
| + ASSERT_TRUE(info1 == NULL);
|
| +}
|
| +
|
| } // namespace gles2
|
| } // namespace gpu
|
|
|
|
|