Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(551)

Unified Diff: gpu/command_buffer/service/program_manager_unittest.cc

Issue 10389077: Consolidate GPU unit test expectiation functions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix license Created 8 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: gpu/command_buffer/service/program_manager_unittest.cc
diff --git a/gpu/command_buffer/service/program_manager_unittest.cc b/gpu/command_buffer/service/program_manager_unittest.cc
index 41d15ef9c7334eded14b6b5ed71a0f79f442d022..c0fad679a4a97da74c57c38beba93a50372670a4 100644
--- a/gpu/command_buffer/service/program_manager_unittest.cc
+++ b/gpu/command_buffer/service/program_manager_unittest.cc
@@ -13,6 +13,7 @@
#include "gpu/command_buffer/common/gles2_cmd_format.h"
#include "gpu/command_buffer/service/common_decoder.h"
#include "gpu/command_buffer/service/mocks.h"
+#include "gpu/command_buffer/service/test_helper.h"
#include "testing/gtest/include/gtest/gtest.h"
using ::gfx::MockGLInterface;
@@ -198,21 +199,8 @@ class ProgramManagerWithShaderTest : public testing::Test {
static const size_t kNumUniforms;
protected:
- struct AttribInfo {
- const char* name;
- GLint size;
- GLenum type;
- GLint location;
- };
-
- struct UniformInfo {
- const char* name;
- const char* good_name;
- GLint size;
- GLenum type;
- GLint fake_location;
- GLint real_location;
- };
+ typedef TestHelper::AttribInfo AttribInfo;
+ typedef TestHelper::UniformInfo UniformInfo;
virtual void SetUp() {
gl_.reset(new StrictMock<gfx::MockGLInterface>());
@@ -243,99 +231,8 @@ class ProgramManagerWithShaderTest : public testing::Test {
void SetupShader(AttribInfo* attribs, size_t num_attribs,
UniformInfo* uniforms, size_t num_uniforms,
GLuint service_id) {
- InSequence s;
-
- EXPECT_CALL(*gl_,
- LinkProgram(service_id))
- .Times(1)
- .RetiresOnSaturation();
- EXPECT_CALL(*gl_,
- GetProgramiv(service_id, GL_LINK_STATUS, _))
- .WillOnce(SetArgumentPointee<2>(1))
- .RetiresOnSaturation();
- EXPECT_CALL(*gl_,
- GetProgramiv(service_id, GL_INFO_LOG_LENGTH, _))
- .WillOnce(SetArgumentPointee<2>(0))
- .RetiresOnSaturation();
- EXPECT_CALL(*gl_,
- GetProgramiv(service_id, GL_ACTIVE_ATTRIBUTES, _))
- .WillOnce(SetArgumentPointee<2>(num_attribs))
- .RetiresOnSaturation();
- size_t max_attrib_len = 0;
- for (size_t ii = 0; ii < num_attribs; ++ii) {
- size_t len = strlen(attribs[ii].name) + 1;
- max_attrib_len = std::max(max_attrib_len, len);
- }
- EXPECT_CALL(*gl_,
- GetProgramiv(service_id, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, _))
- .WillOnce(SetArgumentPointee<2>(max_attrib_len))
- .RetiresOnSaturation();
- for (size_t ii = 0; ii < num_attribs; ++ii) {
- const AttribInfo& info = attribs[ii];
- EXPECT_CALL(*gl_,
- GetActiveAttrib(service_id, ii,
- max_attrib_len, _, _, _, _))
- .WillOnce(DoAll(
- SetArgumentPointee<3>(strlen(info.name)),
- SetArgumentPointee<4>(info.size),
- SetArgumentPointee<5>(info.type),
- SetArrayArgument<6>(info.name,
- info.name + strlen(info.name) + 1)))
- .RetiresOnSaturation();
- if (!ProgramManager::IsInvalidPrefix(info.name, strlen(info.name))) {
- EXPECT_CALL(*gl_, GetAttribLocation(service_id,
- StrEq(info.name)))
- .WillOnce(Return(info.location))
- .RetiresOnSaturation();
- }
- }
- EXPECT_CALL(*gl_,
- GetProgramiv(service_id, GL_ACTIVE_UNIFORMS, _))
- .WillOnce(SetArgumentPointee<2>(num_uniforms))
- .RetiresOnSaturation();
- size_t max_uniform_len = 0;
- for (size_t ii = 0; ii < num_uniforms; ++ii) {
- size_t len = strlen(uniforms[ii].name) + 1;
- max_uniform_len = std::max(max_uniform_len, len);
- }
- EXPECT_CALL(*gl_,
- GetProgramiv(service_id, GL_ACTIVE_UNIFORM_MAX_LENGTH, _))
- .WillOnce(SetArgumentPointee<2>(max_uniform_len))
- .RetiresOnSaturation();
- for (size_t ii = 0; ii < num_uniforms; ++ii) {
- const UniformInfo& info = uniforms[ii];
- EXPECT_CALL(*gl_,
- GetActiveUniform(service_id, ii,
- max_uniform_len, _, _, _, _))
- .WillOnce(DoAll(
- SetArgumentPointee<3>(strlen(info.name)),
- SetArgumentPointee<4>(info.size),
- SetArgumentPointee<5>(info.type),
- SetArrayArgument<6>(info.name,
- info.name + strlen(info.name) + 1)))
- .RetiresOnSaturation();
- if (!ProgramManager::IsInvalidPrefix(info.name, strlen(info.name))) {
- EXPECT_CALL(*gl_, GetUniformLocation(service_id,
- StrEq(info.name)))
- .WillOnce(Return(info.real_location))
- .RetiresOnSaturation();
- if (info.size > 1) {
- std::string base_name = info.name;
- size_t array_pos = base_name.rfind("[0]");
- if (base_name.size() > 3 && array_pos == base_name.size() - 3) {
- base_name = base_name.substr(0, base_name.size() - 3);
- }
- for (GLsizei jj = 1; jj < info.size; ++jj) {
- std::string element_name(
- std::string(base_name) + "[" + base::IntToString(jj) + "]");
- EXPECT_CALL(*gl_, GetUniformLocation(service_id,
- StrEq(element_name)))
- .WillOnce(Return(info.real_location + jj * 2))
- .RetiresOnSaturation();
- }
- }
- }
- }
+ TestHelper::SetupShader(
+ gl_.get(), attribs, num_attribs, uniforms, num_uniforms, service_id);
}
void SetupDefaultShaderExpectations() {
@@ -345,81 +242,8 @@ class ProgramManagerWithShaderTest : public testing::Test {
void SetupExpectationsForClearingUniforms(
UniformInfo* uniforms, size_t num_uniforms) {
- for (size_t ii = 0; ii < num_uniforms; ++ii) {
- const UniformInfo& info = uniforms[ii];
- switch (info.type) {
- case GL_FLOAT:
- EXPECT_CALL(*gl_, Uniform1fv(info.real_location, info.size, _))
- .Times(1)
- .RetiresOnSaturation();
- break;
- case GL_FLOAT_VEC2:
- EXPECT_CALL(*gl_, Uniform2fv(info.real_location, info.size, _))
- .Times(1)
- .RetiresOnSaturation();
- break;
- case GL_FLOAT_VEC3:
- EXPECT_CALL(*gl_, Uniform3fv(info.real_location, info.size, _))
- .Times(1)
- .RetiresOnSaturation();
- break;
- case GL_FLOAT_VEC4:
- EXPECT_CALL(*gl_, Uniform4fv(info.real_location, info.size, _))
- .Times(1)
- .RetiresOnSaturation();
- break;
- case GL_INT:
- case GL_BOOL:
- case GL_SAMPLER_2D:
- case GL_SAMPLER_CUBE:
- case GL_SAMPLER_EXTERNAL_OES:
- case GL_SAMPLER_3D_OES:
- case GL_SAMPLER_2D_RECT_ARB:
- EXPECT_CALL(*gl_, Uniform1iv(info.real_location, info.size, _))
- .Times(1)
- .RetiresOnSaturation();
- break;
- case GL_INT_VEC2:
- case GL_BOOL_VEC2:
- EXPECT_CALL(*gl_, Uniform2iv(info.real_location, info.size, _))
- .Times(1)
- .RetiresOnSaturation();
- break;
- case GL_INT_VEC3:
- case GL_BOOL_VEC3:
- EXPECT_CALL(*gl_, Uniform3iv(info.real_location, info.size, _))
- .Times(1)
- .RetiresOnSaturation();
- break;
- case GL_INT_VEC4:
- case GL_BOOL_VEC4:
- EXPECT_CALL(*gl_, Uniform4iv(info.real_location, info.size, _))
- .Times(1)
- .RetiresOnSaturation();
- break;
- case GL_FLOAT_MAT2:
- EXPECT_CALL(*gl_, UniformMatrix2fv(
- info.real_location, info.size, false, _))
- .Times(1)
- .RetiresOnSaturation();
- break;
- case GL_FLOAT_MAT3:
- EXPECT_CALL(*gl_, UniformMatrix3fv(
- info.real_location, info.size, false, _))
- .Times(1)
- .RetiresOnSaturation();
- break;
- case GL_FLOAT_MAT4:
- EXPECT_CALL(*gl_, UniformMatrix4fv(
- info.real_location, info.size, false, _))
- .Times(1)
- .RetiresOnSaturation();
- break;
- default:
- NOTREACHED();
- break;
- }
- }
+ TestHelper::SetupExpectationsForClearingUniforms(
+ gl_.get(), uniforms, num_uniforms);
}
virtual void TearDown() {
@@ -499,25 +323,25 @@ const size_t ProgramManagerWithShaderTest::kNumAttribs =
ProgramManagerWithShaderTest::UniformInfo
ProgramManagerWithShaderTest::kUniforms[] = {
{ kUniform1Name,
- kUniform1Name,
kUniform1Size,
kUniform1Type,
kUniform1FakeLocation,
kUniform1RealLocation,
+ kUniform1Name,
},
{ kUniform2Name,
- kUniform2Name,
kUniform2Size,
kUniform2Type,
kUniform2FakeLocation,
kUniform2RealLocation,
+ kUniform2Name,
},
{ kUniform3BadName,
- kUniform3GoodName,
kUniform3Size,
kUniform3Type,
kUniform3FakeLocation,
kUniform3RealLocation,
+ kUniform3GoodName,
},
};
@@ -718,25 +542,25 @@ TEST_F(ProgramManagerWithShaderTest, GLDriverReturnsGLUnderscoreUniform) {
static const char* kUniform2Name = "gl_longNameWeCanCheckFor";
static ProgramManagerWithShaderTest::UniformInfo kUniforms[] = {
{ kUniform1Name,
- kUniform1Name,
kUniform1Size,
kUniform1Type,
kUniform1FakeLocation,
kUniform1RealLocation,
+ kUniform1Name,
},
{ kUniform2Name,
- kUniform2Name,
kUniform2Size,
kUniform2Type,
kUniform2FakeLocation,
kUniform2RealLocation,
+ kUniform2Name,
},
{ kUniform3BadName,
- kUniform3GoodName,
kUniform3Size,
kUniform3Type,
kUniform3FakeLocation,
kUniform3RealLocation,
+ kUniform3GoodName,
},
};
const size_t kNumUniforms = arraysize(kUniforms);
@@ -820,25 +644,25 @@ TEST_F(ProgramManagerWithShaderTest, GLDriverReturnsWrongTypeInfo) {
};
static ProgramManagerWithShaderTest::UniformInfo kUniforms[] = {
{ kUniform1Name,
- kUniform1Name,
kUniform1Size,
kUniform1Type,
kUniform1FakeLocation,
kUniform1RealLocation,
+ kUniform1Name,
},
{ kUniform2Name,
- kUniform2Name,
kUniform2Size,
kUniform2BadType,
kUniform2FakeLocation,
kUniform2RealLocation,
+ kUniform2Name,
},
{ kUniform3BadName,
- kUniform3GoodName,
kUniform3Size,
kUniform3Type,
kUniform3FakeLocation,
kUniform3RealLocation,
+ kUniform3GoodName,
},
};
const size_t kNumAttribs= arraysize(kAttribs);
@@ -1144,25 +968,25 @@ TEST_F(ProgramManagerWithShaderTest, ClearWithSamplerTypes) {
};
ProgramManagerWithShaderTest::UniformInfo kUniforms[] = {
{ kUniform1Name,
- kUniform1Name,
kUniform1Size,
kUniform1Type,
kUniform1FakeLocation,
kUniform1RealLocation,
+ kUniform1Name,
},
{ kUniform2Name,
- kUniform2Name,
kUniform2Size,
kSamplerTypes[ii],
kUniform2FakeLocation,
kUniform2RealLocation,
+ kUniform2Name,
},
{ kUniform3BadName,
- kUniform3GoodName,
kUniform3Size,
kUniform3Type,
kUniform3FakeLocation,
kUniform3RealLocation,
+ kUniform3GoodName,
},
};
const size_t kNumAttribs = arraysize(kAttribs);
« no previous file with comments | « gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc ('k') | gpu/command_buffer/service/test_helper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698