| Index: gpu/command_buffer/service/shader_manager_unittest.cc
|
| ===================================================================
|
| --- gpu/command_buffer/service/shader_manager_unittest.cc (revision 68425)
|
| +++ gpu/command_buffer/service/shader_manager_unittest.cc (working copy)
|
| @@ -44,31 +44,16 @@
|
| const GLuint kClient1Id = 1;
|
| const GLuint kService1Id = 11;
|
| const GLenum kShader1Type = GL_VERTEX_SHADER;
|
| - const std::string kClient1Source("hello world");
|
| const GLuint kClient2Id = 2;
|
| // 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_EQ(kService1Id, info1->service_id());
|
| - // Check if the shader has correct type.
|
| - EXPECT_EQ(kShader1Type, info1->shader_type());
|
| - EXPECT_FALSE(info1->IsValid());
|
| - EXPECT_STREQ("", info1->log_info().c_str());
|
| - const char* kLog = "foo";
|
| - info1->SetStatus(true, kLog, NULL);
|
| - EXPECT_TRUE(info1->IsValid());
|
| - EXPECT_STREQ(kLog, info1->log_info().c_str());
|
| - // Check we can set its source.
|
| - info1->Update(kClient1Source);
|
| - EXPECT_STREQ(kClient1Source.c_str(), info1->source().c_str());
|
| // Check we get nothing for a non-existent shader.
|
| EXPECT_TRUE(manager_.GetShaderInfo(kClient2Id) == NULL);
|
| - // Check trying to a remove non-existent shaders does not crash.
|
| - manager_.RemoveShaderInfo(kClient2Id);
|
| // Check we can't get the shader after we remove it.
|
| - manager_.RemoveShaderInfo(kClient1Id);
|
| + manager_.MarkAsDeleted(info1);
|
| EXPECT_TRUE(manager_.GetShaderInfo(kClient1Id) == NULL);
|
| }
|
|
|
| @@ -90,6 +75,31 @@
|
| ASSERT_TRUE(info1 == NULL);
|
| }
|
|
|
| +TEST_F(ShaderManagerTest, ShaderInfo) {
|
| + const GLuint kClient1Id = 1;
|
| + const GLuint kService1Id = 11;
|
| + const GLenum kShader1Type = GL_VERTEX_SHADER;
|
| + const std::string kClient1Source("hello world");
|
| + // 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_EQ(kService1Id, info1->service_id());
|
| + // Check if the shader has correct type.
|
| + EXPECT_EQ(kShader1Type, info1->shader_type());
|
| + EXPECT_FALSE(info1->IsValid());
|
| + EXPECT_FALSE(info1->InUse());
|
| + EXPECT_STREQ("", info1->log_info().c_str());
|
| + const char* kLog = "foo";
|
| + info1->SetStatus(true, kLog, NULL);
|
| + EXPECT_TRUE(info1->IsValid());
|
| + EXPECT_STREQ(kLog, info1->log_info().c_str());
|
| + // Check we can set its source.
|
| + info1->Update(kClient1Source);
|
| + EXPECT_STREQ(kClient1Source.c_str(), info1->source().c_str());
|
| +}
|
| +
|
| TEST_F(ShaderManagerTest, GetInfo) {
|
| const GLuint kClient1Id = 1;
|
| const GLuint kService1Id = 11;
|
| @@ -160,6 +170,50 @@
|
| }
|
| }
|
|
|
| +TEST_F(ShaderManagerTest, ShaderInfoUseCount) {
|
| + 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_FALSE(info1->InUse());
|
| + EXPECT_FALSE(info1->IsDeleted());
|
| + manager_.UseShader(info1);
|
| + EXPECT_TRUE(info1->InUse());
|
| + manager_.UseShader(info1);
|
| + EXPECT_TRUE(info1->InUse());
|
| + manager_.MarkAsDeleted(info1);
|
| + EXPECT_TRUE(info1->IsDeleted());
|
| + ShaderManager::ShaderInfo* info2 = manager_.GetShaderInfo(kClient1Id);
|
| + EXPECT_EQ(info1, info2);
|
| + manager_.UnuseShader(info1);
|
| + EXPECT_TRUE(info1->InUse());
|
| + manager_.UnuseShader(info1); // this should delete the info.
|
| + info2 = manager_.GetShaderInfo(kClient1Id);
|
| + EXPECT_TRUE(info2 == NULL);
|
| +
|
| + manager_.CreateShaderInfo(kClient1Id, kService1Id, kShader1Type);
|
| + info1 = manager_.GetShaderInfo(kClient1Id);
|
| + ASSERT_TRUE(info1 != NULL);
|
| + EXPECT_FALSE(info1->InUse());
|
| + manager_.UseShader(info1);
|
| + EXPECT_TRUE(info1->InUse());
|
| + manager_.UseShader(info1);
|
| + EXPECT_TRUE(info1->InUse());
|
| + manager_.UnuseShader(info1);
|
| + EXPECT_TRUE(info1->InUse());
|
| + manager_.UnuseShader(info1);
|
| + EXPECT_FALSE(info1->InUse());
|
| + info2 = manager_.GetShaderInfo(kClient1Id);
|
| + EXPECT_EQ(info1, info2);
|
| + manager_.MarkAsDeleted(info1); // this should delete the shader.
|
| + info2 = manager_.GetShaderInfo(kClient1Id);
|
| + EXPECT_TRUE(info2 == NULL);
|
| +}
|
| +
|
| } // namespace gles2
|
| } // namespace gpu
|
|
|
|
|