Index: gpu/command_buffer/client/gles2_implementation_unittest_autogen.h |
diff --git a/gpu/command_buffer/client/gles2_implementation_unittest_autogen.h b/gpu/command_buffer/client/gles2_implementation_unittest_autogen.h |
index 4d44ad73b9f1be533f34bb8705877a0eb0b3b42a..845ab06118275acdcfea9c6fd6fb0e755560dd0a 100644 |
--- a/gpu/command_buffer/client/gles2_implementation_unittest_autogen.h |
+++ b/gpu/command_buffer/client/gles2_implementation_unittest_autogen.h |
@@ -23,7 +23,7 @@ TEST_F(GLES2ImplementationTest, AttachShader) { |
gl_->AttachShader(1, 2); |
EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); |
} |
-// TODO: Implement unit test for BindAttribLocation |
+// TODO(zmo): Implement unit test for BindAttribLocation |
TEST_F(GLES2ImplementationTest, BindBuffer) { |
struct Cmds { |
@@ -309,8 +309,8 @@ TEST_F(GLES2ImplementationTest, CompileShader) { |
gl_->CompileShader(1); |
EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); |
} |
-// TODO: Implement unit test for CompressedTexImage2D |
-// TODO: Implement unit test for CompressedTexSubImage2D |
+// TODO(zmo): Implement unit test for CompressedTexImage2D |
+// TODO(zmo): Implement unit test for CompressedTexSubImage2D |
TEST_F(GLES2ImplementationTest, CopyBufferSubData) { |
struct Cmds { |
@@ -738,10 +738,10 @@ TEST_F(GLES2ImplementationTest, GenTransformFeedbacks) { |
EXPECT_EQ(kTransformFeedbacksStartId, ids[0]); |
EXPECT_EQ(kTransformFeedbacksStartId + 1, ids[1]); |
} |
-// TODO: Implement unit test for GetActiveAttrib |
-// TODO: Implement unit test for GetActiveUniform |
-// TODO: Implement unit test for GetAttachedShaders |
-// TODO: Implement unit test for GetAttribLocation |
+// TODO(zmo): Implement unit test for GetActiveAttrib |
+// TODO(zmo): Implement unit test for GetActiveUniform |
+// TODO(zmo): Implement unit test for GetAttachedShaders |
+// TODO(zmo): Implement unit test for GetAttribLocation |
TEST_F(GLES2ImplementationTest, GetBooleanv) { |
struct Cmds { |
@@ -793,6 +793,7 @@ TEST_F(GLES2ImplementationTest, GetFloatv) { |
EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); |
EXPECT_EQ(static_cast<Result::Type>(1), result); |
} |
+// TODO(zmo): Implement unit test for GetFragDataLocation |
TEST_F(GLES2ImplementationTest, GetFramebufferAttachmentParameteriv) { |
struct Cmds { |
@@ -866,7 +867,7 @@ TEST_F(GLES2ImplementationTest, GetProgramiv) { |
EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); |
EXPECT_EQ(static_cast<Result::Type>(1), result); |
} |
-// TODO: Implement unit test for GetProgramInfoLog |
+// TODO(zmo): Implement unit test for GetProgramInfoLog |
TEST_F(GLES2ImplementationTest, GetRenderbufferParameteriv) { |
struct Cmds { |
@@ -935,8 +936,8 @@ TEST_F(GLES2ImplementationTest, GetShaderiv) { |
EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); |
EXPECT_EQ(static_cast<Result::Type>(1), result); |
} |
-// TODO: Implement unit test for GetShaderInfoLog |
-// TODO: Implement unit test for GetShaderPrecisionFormat |
+// TODO(zmo): Implement unit test for GetShaderInfoLog |
+// TODO(zmo): Implement unit test for GetShaderPrecisionFormat |
TEST_F(GLES2ImplementationTest, GetTexParameterfv) { |
struct Cmds { |
@@ -971,9 +972,9 @@ TEST_F(GLES2ImplementationTest, GetTexParameteriv) { |
EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); |
EXPECT_EQ(static_cast<Result::Type>(1), result); |
} |
-// TODO: Implement unit test for GetUniformfv |
-// TODO: Implement unit test for GetUniformiv |
-// TODO: Implement unit test for GetUniformLocation |
+// TODO(zmo): Implement unit test for GetUniformfv |
+// TODO(zmo): Implement unit test for GetUniformiv |
+// TODO(zmo): Implement unit test for GetUniformLocation |
TEST_F(GLES2ImplementationTest, GetVertexAttribfv) { |
struct Cmds { |
@@ -1404,6 +1405,93 @@ TEST_F(GLES2ImplementationTest, Scissor) { |
EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); |
} |
+TEST_F(GLES2ImplementationTest, ShaderSource) { |
+ const uint32 kBucketId = GLES2Implementation::kResultBucketId; |
+ const char* kString1 = "happy"; |
+ const char* kString2 = "ending"; |
+ const size_t kString1Size = ::strlen(kString1) + 1; |
+ const size_t kString2Size = ::strlen(kString2) + 1; |
+ const size_t kHeaderSize = sizeof(GLint) * 3; |
+ const size_t kSourceSize = kHeaderSize + kString1Size + kString2Size; |
+ const size_t kPaddedHeaderSize = |
+ transfer_buffer_->RoundToAlignment(kHeaderSize); |
+ const size_t kPaddedString1Size = |
+ transfer_buffer_->RoundToAlignment(kString1Size); |
+ const size_t kPaddedString2Size = |
+ transfer_buffer_->RoundToAlignment(kString2Size); |
+ struct Cmds { |
+ cmd::SetBucketSize set_bucket_size; |
+ cmd::SetBucketData set_bucket_header; |
+ cmd::SetToken set_token1; |
+ cmd::SetBucketData set_bucket_data1; |
+ cmd::SetToken set_token2; |
+ cmd::SetBucketData set_bucket_data2; |
+ cmd::SetToken set_token3; |
+ cmds::ShaderSourceBucket shader_source_bucket; |
+ cmd::SetBucketSize clear_bucket_size; |
+ }; |
+ |
+ ExpectedMemoryInfo mem0 = GetExpectedMemory(kPaddedHeaderSize); |
+ ExpectedMemoryInfo mem1 = GetExpectedMemory(kPaddedString1Size); |
+ ExpectedMemoryInfo mem2 = GetExpectedMemory(kPaddedString2Size); |
+ |
+ Cmds expected; |
+ expected.set_bucket_size.Init(kBucketId, kSourceSize); |
+ expected.set_bucket_header.Init(kBucketId, 0, kHeaderSize, mem0.id, |
+ mem0.offset); |
+ expected.set_token1.Init(GetNextToken()); |
+ expected.set_bucket_data1.Init(kBucketId, kHeaderSize, kString1Size, mem1.id, |
+ mem1.offset); |
+ expected.set_token2.Init(GetNextToken()); |
+ expected.set_bucket_data2.Init(kBucketId, kHeaderSize + kString1Size, |
+ kString2Size, mem2.id, mem2.offset); |
+ expected.set_token3.Init(GetNextToken()); |
+ expected.shader_source_bucket.Init(1, kBucketId); |
+ expected.clear_bucket_size.Init(kBucketId, 0); |
+ const char* kStrings[] = {kString1, kString2}; |
+ gl_->ShaderSource(1, 2, kStrings, NULL); |
+ EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); |
+} |
+ |
+TEST_F(GLES2ImplementationTest, ShaderSourceWithLength) { |
+ const uint32 kBucketId = GLES2Implementation::kResultBucketId; |
+ const char* kString = "foobar******"; |
+ const size_t kStringSize = 6; // We only need "foobar". |
+ const size_t kHeaderSize = sizeof(GLint) * 2; |
+ const size_t kSourceSize = kHeaderSize + kStringSize + 1; |
+ const size_t kPaddedHeaderSize = |
+ transfer_buffer_->RoundToAlignment(kHeaderSize); |
+ const size_t kPaddedStringSize = |
+ transfer_buffer_->RoundToAlignment(kStringSize + 1); |
+ struct Cmds { |
+ cmd::SetBucketSize set_bucket_size; |
+ cmd::SetBucketData set_bucket_header; |
+ cmd::SetToken set_token1; |
+ cmd::SetBucketData set_bucket_data; |
+ cmd::SetToken set_token2; |
+ cmds::ShaderSourceBucket shader_source_bucket; |
+ cmd::SetBucketSize clear_bucket_size; |
+ }; |
+ |
+ ExpectedMemoryInfo mem0 = GetExpectedMemory(kPaddedHeaderSize); |
+ ExpectedMemoryInfo mem1 = GetExpectedMemory(kPaddedStringSize); |
+ |
+ Cmds expected; |
+ expected.set_bucket_size.Init(kBucketId, kSourceSize); |
+ expected.set_bucket_header.Init(kBucketId, 0, kHeaderSize, mem0.id, |
+ mem0.offset); |
+ expected.set_token1.Init(GetNextToken()); |
+ expected.set_bucket_data.Init(kBucketId, kHeaderSize, kStringSize + 1, |
+ mem1.id, mem1.offset); |
+ expected.set_token2.Init(GetNextToken()); |
+ expected.shader_source_bucket.Init(1, kBucketId); |
+ expected.clear_bucket_size.Init(kBucketId, 0); |
+ const char* kStrings[] = {kString}; |
+ const GLint kLength[] = {kStringSize}; |
+ gl_->ShaderSource(1, 1, kStrings, kLength); |
+ EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); |
+} |
+ |
TEST_F(GLES2ImplementationTest, StencilFunc) { |
struct Cmds { |
cmds::StencilFunc cmd; |
@@ -2447,7 +2535,7 @@ TEST_F(GLES2ImplementationTest, DeleteQueriesEXT) { |
gl_->DeleteQueriesEXT(arraysize(ids), &ids[0]); |
EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); |
} |
-// TODO: Implement unit test for BeginQueryEXT |
+// TODO(zmo): Implement unit test for BeginQueryEXT |
TEST_F(GLES2ImplementationTest, BeginTransformFeedback) { |
struct Cmds { |
@@ -2470,8 +2558,8 @@ TEST_F(GLES2ImplementationTest, EndTransformFeedback) { |
gl_->EndTransformFeedback(); |
EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); |
} |
-// TODO: Implement unit test for InsertEventMarkerEXT |
-// TODO: Implement unit test for PushGroupMarkerEXT |
+// TODO(zmo): Implement unit test for InsertEventMarkerEXT |
+// TODO(zmo): Implement unit test for PushGroupMarkerEXT |
TEST_F(GLES2ImplementationTest, PopGroupMarkerEXT) { |
struct Cmds { |
@@ -2534,7 +2622,7 @@ TEST_F(GLES2ImplementationTest, IsVertexArrayOES) { |
EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); |
EXPECT_TRUE(result); |
} |
-// TODO: Implement unit test for EnableFeatureCHROMIUM |
+// TODO(zmo): Implement unit test for EnableFeatureCHROMIUM |
TEST_F(GLES2ImplementationTest, ResizeCHROMIUM) { |
struct Cmds { |
@@ -2546,9 +2634,9 @@ TEST_F(GLES2ImplementationTest, ResizeCHROMIUM) { |
gl_->ResizeCHROMIUM(1, 2, 3); |
EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); |
} |
-// TODO: Implement unit test for GetRequestableExtensionsCHROMIUM |
-// TODO: Implement unit test for CreateStreamTextureCHROMIUM |
-// TODO: Implement unit test for GetTranslatedShaderSourceANGLE |
+// TODO(zmo): Implement unit test for GetRequestableExtensionsCHROMIUM |
+// TODO(zmo): Implement unit test for CreateStreamTextureCHROMIUM |
+// TODO(zmo): Implement unit test for GetTranslatedShaderSourceANGLE |
TEST_F(GLES2ImplementationTest, TexImageIOSurface2DCHROMIUM) { |
struct Cmds { |
@@ -2593,8 +2681,8 @@ TEST_F(GLES2ImplementationTest, VertexAttribDivisorANGLE) { |
gl_->VertexAttribDivisorANGLE(1, 2); |
EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); |
} |
-// TODO: Implement unit test for GenMailboxCHROMIUM |
-// TODO: Implement unit test for BindUniformLocationCHROMIUM |
+// TODO(zmo): Implement unit test for GenMailboxCHROMIUM |
+// TODO(zmo): Implement unit test for BindUniformLocationCHROMIUM |
TEST_F(GLES2ImplementationTest, GenValuebuffersCHROMIUM) { |
GLuint ids[2] = { |
@@ -2749,7 +2837,7 @@ TEST_F(GLES2ImplementationTest, LoseContextCHROMIUM) { |
GL_GUILTY_CONTEXT_RESET_ARB); |
EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); |
} |
-// TODO: Implement unit test for InsertSyncPointCHROMIUM |
+// TODO(zmo): Implement unit test for InsertSyncPointCHROMIUM |
TEST_F(GLES2ImplementationTest, WaitSyncPointCHROMIUM) { |
struct Cmds { |