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

Side by Side Diff: gpu/command_buffer/service/gles2_cmd_decoder_unittest_2_autogen.h

Issue 245923008: Optimize GLES2DecoderImpl::ApplyDirtyState. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase on refactored gles2_cmd_decoder_unittest.cc Created 6 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // This file is auto-generated from 5 // This file is auto-generated from
6 // gpu/command_buffer/build_gles2_cmd_buffer.py 6 // gpu/command_buffer/build_gles2_cmd_buffer.py
7 // It's formatted by clang-format using chromium coding style: 7 // It's formatted by clang-format using chromium coding style:
8 // clang-format -i -style=chromium filename 8 // clang-format -i -style=chromium filename
9 // DO NOT EDIT! 9 // DO NOT EDIT!
10 10
11 // It is included by gles2_cmd_decoder_unittest_2.cc 11 // It is included by gles2_cmd_decoder_unittest_2.cc
12 #ifndef GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_UNITTEST_2_AUTOGEN_H_ 12 #ifndef GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_UNITTEST_2_AUTOGEN_H_
13 #define GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_UNITTEST_2_AUTOGEN_H_ 13 #define GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_UNITTEST_2_AUTOGEN_H_
14 14
15 TEST_F(GLES2DecoderTest2, IsRenderbufferValidArgs) { 15 TEST_P(GLES2DecoderTest2, IsRenderbufferValidArgs) {
16 SpecializedSetup<cmds::IsRenderbuffer, 0>(true); 16 SpecializedSetup<cmds::IsRenderbuffer, 0>(true);
17 cmds::IsRenderbuffer cmd; 17 cmds::IsRenderbuffer cmd;
18 cmd.Init(client_renderbuffer_id_, shared_memory_id_, shared_memory_offset_); 18 cmd.Init(client_renderbuffer_id_, shared_memory_id_, shared_memory_offset_);
19 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 19 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
20 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 20 EXPECT_EQ(GL_NO_ERROR, GetGLError());
21 } 21 }
22 22
23 TEST_F(GLES2DecoderTest2, IsRenderbufferInvalidArgsBadSharedMemoryId) { 23 TEST_P(GLES2DecoderTest2, IsRenderbufferInvalidArgsBadSharedMemoryId) {
24 SpecializedSetup<cmds::IsRenderbuffer, 0>(false); 24 SpecializedSetup<cmds::IsRenderbuffer, 0>(false);
25 cmds::IsRenderbuffer cmd; 25 cmds::IsRenderbuffer cmd;
26 cmd.Init( 26 cmd.Init(
27 client_renderbuffer_id_, kInvalidSharedMemoryId, shared_memory_offset_); 27 client_renderbuffer_id_, kInvalidSharedMemoryId, shared_memory_offset_);
28 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 28 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
29 cmd.Init( 29 cmd.Init(
30 client_renderbuffer_id_, shared_memory_id_, kInvalidSharedMemoryOffset); 30 client_renderbuffer_id_, shared_memory_id_, kInvalidSharedMemoryOffset);
31 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 31 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
32 } 32 }
33 33
34 TEST_F(GLES2DecoderTest2, IsShaderValidArgs) { 34 TEST_P(GLES2DecoderTest2, IsShaderValidArgs) {
35 SpecializedSetup<cmds::IsShader, 0>(true); 35 SpecializedSetup<cmds::IsShader, 0>(true);
36 cmds::IsShader cmd; 36 cmds::IsShader cmd;
37 cmd.Init(client_shader_id_, shared_memory_id_, shared_memory_offset_); 37 cmd.Init(client_shader_id_, shared_memory_id_, shared_memory_offset_);
38 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 38 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
39 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 39 EXPECT_EQ(GL_NO_ERROR, GetGLError());
40 } 40 }
41 41
42 TEST_F(GLES2DecoderTest2, IsShaderInvalidArgsBadSharedMemoryId) { 42 TEST_P(GLES2DecoderTest2, IsShaderInvalidArgsBadSharedMemoryId) {
43 SpecializedSetup<cmds::IsShader, 0>(false); 43 SpecializedSetup<cmds::IsShader, 0>(false);
44 cmds::IsShader cmd; 44 cmds::IsShader cmd;
45 cmd.Init(client_shader_id_, kInvalidSharedMemoryId, shared_memory_offset_); 45 cmd.Init(client_shader_id_, kInvalidSharedMemoryId, shared_memory_offset_);
46 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 46 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
47 cmd.Init(client_shader_id_, shared_memory_id_, kInvalidSharedMemoryOffset); 47 cmd.Init(client_shader_id_, shared_memory_id_, kInvalidSharedMemoryOffset);
48 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 48 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
49 } 49 }
50 50
51 TEST_F(GLES2DecoderTest2, IsTextureValidArgs) { 51 TEST_P(GLES2DecoderTest2, IsTextureValidArgs) {
52 SpecializedSetup<cmds::IsTexture, 0>(true); 52 SpecializedSetup<cmds::IsTexture, 0>(true);
53 cmds::IsTexture cmd; 53 cmds::IsTexture cmd;
54 cmd.Init(client_texture_id_, shared_memory_id_, shared_memory_offset_); 54 cmd.Init(client_texture_id_, shared_memory_id_, shared_memory_offset_);
55 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 55 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
56 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 56 EXPECT_EQ(GL_NO_ERROR, GetGLError());
57 } 57 }
58 58
59 TEST_F(GLES2DecoderTest2, IsTextureInvalidArgsBadSharedMemoryId) { 59 TEST_P(GLES2DecoderTest2, IsTextureInvalidArgsBadSharedMemoryId) {
60 SpecializedSetup<cmds::IsTexture, 0>(false); 60 SpecializedSetup<cmds::IsTexture, 0>(false);
61 cmds::IsTexture cmd; 61 cmds::IsTexture cmd;
62 cmd.Init(client_texture_id_, kInvalidSharedMemoryId, shared_memory_offset_); 62 cmd.Init(client_texture_id_, kInvalidSharedMemoryId, shared_memory_offset_);
63 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 63 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
64 cmd.Init(client_texture_id_, shared_memory_id_, kInvalidSharedMemoryOffset); 64 cmd.Init(client_texture_id_, shared_memory_id_, kInvalidSharedMemoryOffset);
65 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 65 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
66 } 66 }
67 67
68 TEST_F(GLES2DecoderTest2, LineWidthValidArgs) { 68 TEST_P(GLES2DecoderTest2, LineWidthValidArgs) {
69 EXPECT_CALL(*gl_, LineWidth(0.5f)); 69 EXPECT_CALL(*gl_, LineWidth(0.5f));
70 SpecializedSetup<cmds::LineWidth, 0>(true); 70 SpecializedSetup<cmds::LineWidth, 0>(true);
71 cmds::LineWidth cmd; 71 cmds::LineWidth cmd;
72 cmd.Init(0.5f); 72 cmd.Init(0.5f);
73 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 73 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
74 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 74 EXPECT_EQ(GL_NO_ERROR, GetGLError());
75 } 75 }
76 76
77 TEST_F(GLES2DecoderTest2, LineWidthInvalidValue0_0) { 77 TEST_P(GLES2DecoderTest2, LineWidthInvalidValue0_0) {
78 SpecializedSetup<cmds::LineWidth, 0>(false); 78 SpecializedSetup<cmds::LineWidth, 0>(false);
79 cmds::LineWidth cmd; 79 cmds::LineWidth cmd;
80 cmd.Init(0.0f); 80 cmd.Init(0.0f);
81 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 81 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
82 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 82 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
83 } 83 }
84 84
85 TEST_F(GLES2DecoderTest2, LinkProgramValidArgs) { 85 TEST_P(GLES2DecoderTest2, LinkProgramValidArgs) {
86 EXPECT_CALL(*gl_, LinkProgram(kServiceProgramId)); 86 EXPECT_CALL(*gl_, LinkProgram(kServiceProgramId));
87 SpecializedSetup<cmds::LinkProgram, 0>(true); 87 SpecializedSetup<cmds::LinkProgram, 0>(true);
88 cmds::LinkProgram cmd; 88 cmds::LinkProgram cmd;
89 cmd.Init(client_program_id_); 89 cmd.Init(client_program_id_);
90 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 90 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
91 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 91 EXPECT_EQ(GL_NO_ERROR, GetGLError());
92 } 92 }
93 // TODO(gman): PixelStorei 93 // TODO(gman): PixelStorei
94 94
95 TEST_F(GLES2DecoderTest2, PolygonOffsetValidArgs) { 95 TEST_P(GLES2DecoderTest2, PolygonOffsetValidArgs) {
96 EXPECT_CALL(*gl_, PolygonOffset(1, 2)); 96 EXPECT_CALL(*gl_, PolygonOffset(1, 2));
97 SpecializedSetup<cmds::PolygonOffset, 0>(true); 97 SpecializedSetup<cmds::PolygonOffset, 0>(true);
98 cmds::PolygonOffset cmd; 98 cmds::PolygonOffset cmd;
99 cmd.Init(1, 2); 99 cmd.Init(1, 2);
100 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 100 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
101 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 101 EXPECT_EQ(GL_NO_ERROR, GetGLError());
102 } 102 }
103 // TODO(gman): ReadPixels 103 // TODO(gman): ReadPixels
104 104
105 // TODO(gman): ReleaseShaderCompiler 105 // TODO(gman): ReleaseShaderCompiler
106 106
107 TEST_F(GLES2DecoderTest2, RenderbufferStorageValidArgs) { 107 TEST_P(GLES2DecoderTest2, RenderbufferStorageValidArgs) {
108 SpecializedSetup<cmds::RenderbufferStorage, 0>(true); 108 SpecializedSetup<cmds::RenderbufferStorage, 0>(true);
109 cmds::RenderbufferStorage cmd; 109 cmds::RenderbufferStorage cmd;
110 cmd.Init(GL_RENDERBUFFER, GL_RGBA4, 3, 4); 110 cmd.Init(GL_RENDERBUFFER, GL_RGBA4, 3, 4);
111 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 111 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
112 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 112 EXPECT_EQ(GL_NO_ERROR, GetGLError());
113 } 113 }
114 114
115 TEST_F(GLES2DecoderTest2, RenderbufferStorageInvalidArgs0_0) { 115 TEST_P(GLES2DecoderTest2, RenderbufferStorageInvalidArgs0_0) {
116 EXPECT_CALL(*gl_, RenderbufferStorageEXT(_, _, _, _)).Times(0); 116 EXPECT_CALL(*gl_, RenderbufferStorageEXT(_, _, _, _)).Times(0);
117 SpecializedSetup<cmds::RenderbufferStorage, 0>(false); 117 SpecializedSetup<cmds::RenderbufferStorage, 0>(false);
118 cmds::RenderbufferStorage cmd; 118 cmds::RenderbufferStorage cmd;
119 cmd.Init(GL_FRAMEBUFFER, GL_RGBA4, 3, 4); 119 cmd.Init(GL_FRAMEBUFFER, GL_RGBA4, 3, 4);
120 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 120 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
121 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 121 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
122 } 122 }
123 123
124 TEST_F(GLES2DecoderTest2, RenderbufferStorageInvalidArgs2_0) { 124 TEST_P(GLES2DecoderTest2, RenderbufferStorageInvalidArgs2_0) {
125 EXPECT_CALL(*gl_, RenderbufferStorageEXT(_, _, _, _)).Times(0); 125 EXPECT_CALL(*gl_, RenderbufferStorageEXT(_, _, _, _)).Times(0);
126 SpecializedSetup<cmds::RenderbufferStorage, 0>(false); 126 SpecializedSetup<cmds::RenderbufferStorage, 0>(false);
127 cmds::RenderbufferStorage cmd; 127 cmds::RenderbufferStorage cmd;
128 cmd.Init(GL_RENDERBUFFER, GL_RGBA4, -1, 4); 128 cmd.Init(GL_RENDERBUFFER, GL_RGBA4, -1, 4);
129 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 129 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
130 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 130 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
131 } 131 }
132 132
133 TEST_F(GLES2DecoderTest2, RenderbufferStorageInvalidArgs3_0) { 133 TEST_P(GLES2DecoderTest2, RenderbufferStorageInvalidArgs3_0) {
134 EXPECT_CALL(*gl_, RenderbufferStorageEXT(_, _, _, _)).Times(0); 134 EXPECT_CALL(*gl_, RenderbufferStorageEXT(_, _, _, _)).Times(0);
135 SpecializedSetup<cmds::RenderbufferStorage, 0>(false); 135 SpecializedSetup<cmds::RenderbufferStorage, 0>(false);
136 cmds::RenderbufferStorage cmd; 136 cmds::RenderbufferStorage cmd;
137 cmd.Init(GL_RENDERBUFFER, GL_RGBA4, 3, -1); 137 cmd.Init(GL_RENDERBUFFER, GL_RGBA4, 3, -1);
138 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 138 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
139 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 139 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
140 } 140 }
141 141
142 TEST_F(GLES2DecoderTest2, SampleCoverageValidArgs) { 142 TEST_P(GLES2DecoderTest2, SampleCoverageValidArgs) {
143 EXPECT_CALL(*gl_, SampleCoverage(1, true)); 143 EXPECT_CALL(*gl_, SampleCoverage(1, true));
144 SpecializedSetup<cmds::SampleCoverage, 0>(true); 144 SpecializedSetup<cmds::SampleCoverage, 0>(true);
145 cmds::SampleCoverage cmd; 145 cmds::SampleCoverage cmd;
146 cmd.Init(1, true); 146 cmd.Init(1, true);
147 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 147 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
148 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 148 EXPECT_EQ(GL_NO_ERROR, GetGLError());
149 } 149 }
150 150
151 TEST_F(GLES2DecoderTest2, ScissorValidArgs) { 151 TEST_P(GLES2DecoderTest2, ScissorValidArgs) {
152 EXPECT_CALL(*gl_, Scissor(1, 2, 3, 4)); 152 EXPECT_CALL(*gl_, Scissor(1, 2, 3, 4));
153 SpecializedSetup<cmds::Scissor, 0>(true); 153 SpecializedSetup<cmds::Scissor, 0>(true);
154 cmds::Scissor cmd; 154 cmds::Scissor cmd;
155 cmd.Init(1, 2, 3, 4); 155 cmd.Init(1, 2, 3, 4);
156 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 156 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
157 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 157 EXPECT_EQ(GL_NO_ERROR, GetGLError());
158 } 158 }
159 159
160 TEST_F(GLES2DecoderTest2, ScissorInvalidArgs2_0) { 160 TEST_P(GLES2DecoderTest2, ScissorInvalidArgs2_0) {
161 EXPECT_CALL(*gl_, Scissor(_, _, _, _)).Times(0); 161 EXPECT_CALL(*gl_, Scissor(_, _, _, _)).Times(0);
162 SpecializedSetup<cmds::Scissor, 0>(false); 162 SpecializedSetup<cmds::Scissor, 0>(false);
163 cmds::Scissor cmd; 163 cmds::Scissor cmd;
164 cmd.Init(1, 2, -1, 4); 164 cmd.Init(1, 2, -1, 4);
165 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 165 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
166 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 166 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
167 } 167 }
168 168
169 TEST_F(GLES2DecoderTest2, ScissorInvalidArgs3_0) { 169 TEST_P(GLES2DecoderTest2, ScissorInvalidArgs3_0) {
170 EXPECT_CALL(*gl_, Scissor(_, _, _, _)).Times(0); 170 EXPECT_CALL(*gl_, Scissor(_, _, _, _)).Times(0);
171 SpecializedSetup<cmds::Scissor, 0>(false); 171 SpecializedSetup<cmds::Scissor, 0>(false);
172 cmds::Scissor cmd; 172 cmds::Scissor cmd;
173 cmd.Init(1, 2, 3, -1); 173 cmd.Init(1, 2, 3, -1);
174 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 174 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
175 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 175 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
176 } 176 }
177 // TODO(gman): ShaderBinary 177 // TODO(gman): ShaderBinary
178 178
179 // TODO(gman): ShaderSource 179 // TODO(gman): ShaderSource
180 180
181 // TODO(gman): ShaderSourceBucket 181 // TODO(gman): ShaderSourceBucket
182 182
183 TEST_F(GLES2DecoderTest2, StencilFuncValidArgs) { 183 TEST_P(GLES2DecoderTest2, StencilFuncValidArgs) {
184 EXPECT_CALL(*gl_, StencilFunc(GL_NEVER, 2, 3)); 184 EXPECT_CALL(*gl_, StencilFunc(GL_NEVER, 2, 3));
185 SpecializedSetup<cmds::StencilFunc, 0>(true); 185 SpecializedSetup<cmds::StencilFunc, 0>(true);
186 cmds::StencilFunc cmd; 186 cmds::StencilFunc cmd;
187 cmd.Init(GL_NEVER, 2, 3); 187 cmd.Init(GL_NEVER, 2, 3);
188 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 188 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
189 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 189 EXPECT_EQ(GL_NO_ERROR, GetGLError());
190 } 190 }
191 191
192 TEST_F(GLES2DecoderTest2, StencilFuncSeparateValidArgs) { 192 TEST_P(GLES2DecoderTest2, StencilFuncSeparateValidArgs) {
193 EXPECT_CALL(*gl_, StencilFuncSeparate(GL_FRONT, GL_NEVER, 3, 4)); 193 EXPECT_CALL(*gl_, StencilFuncSeparate(GL_FRONT, GL_NEVER, 3, 4));
194 SpecializedSetup<cmds::StencilFuncSeparate, 0>(true); 194 SpecializedSetup<cmds::StencilFuncSeparate, 0>(true);
195 cmds::StencilFuncSeparate cmd; 195 cmds::StencilFuncSeparate cmd;
196 cmd.Init(GL_FRONT, GL_NEVER, 3, 4); 196 cmd.Init(GL_FRONT, GL_NEVER, 3, 4);
197 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 197 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
198 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 198 EXPECT_EQ(GL_NO_ERROR, GetGLError());
199 } 199 }
200 200
201 TEST_F(GLES2DecoderTest2, StencilMaskValidArgs) { 201 TEST_P(GLES2DecoderTest2, StencilMaskValidArgs) {
202 SpecializedSetup<cmds::StencilMask, 0>(true); 202 SpecializedSetup<cmds::StencilMask, 0>(true);
203 cmds::StencilMask cmd; 203 cmds::StencilMask cmd;
204 cmd.Init(1); 204 cmd.Init(1);
205 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 205 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
206 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 206 EXPECT_EQ(GL_NO_ERROR, GetGLError());
207 } 207 }
208 208
209 TEST_F(GLES2DecoderTest2, StencilMaskSeparateValidArgs) { 209 TEST_P(GLES2DecoderTest2, StencilMaskSeparateValidArgs) {
210 SpecializedSetup<cmds::StencilMaskSeparate, 0>(true); 210 SpecializedSetup<cmds::StencilMaskSeparate, 0>(true);
211 cmds::StencilMaskSeparate cmd; 211 cmds::StencilMaskSeparate cmd;
212 cmd.Init(GL_FRONT, 2); 212 cmd.Init(GL_FRONT, 2);
213 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 213 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
214 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 214 EXPECT_EQ(GL_NO_ERROR, GetGLError());
215 } 215 }
216 216
217 TEST_F(GLES2DecoderTest2, StencilOpValidArgs) { 217 TEST_P(GLES2DecoderTest2, StencilOpValidArgs) {
218 EXPECT_CALL(*gl_, StencilOp(GL_KEEP, GL_INCR, GL_KEEP)); 218 EXPECT_CALL(*gl_, StencilOp(GL_KEEP, GL_INCR, GL_KEEP));
219 SpecializedSetup<cmds::StencilOp, 0>(true); 219 SpecializedSetup<cmds::StencilOp, 0>(true);
220 cmds::StencilOp cmd; 220 cmds::StencilOp cmd;
221 cmd.Init(GL_KEEP, GL_INCR, GL_KEEP); 221 cmd.Init(GL_KEEP, GL_INCR, GL_KEEP);
222 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 222 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
223 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 223 EXPECT_EQ(GL_NO_ERROR, GetGLError());
224 } 224 }
225 225
226 TEST_F(GLES2DecoderTest2, StencilOpSeparateValidArgs) { 226 TEST_P(GLES2DecoderTest2, StencilOpSeparateValidArgs) {
227 EXPECT_CALL(*gl_, StencilOpSeparate(GL_FRONT, GL_INCR, GL_KEEP, GL_KEEP)); 227 EXPECT_CALL(*gl_, StencilOpSeparate(GL_FRONT, GL_INCR, GL_KEEP, GL_KEEP));
228 SpecializedSetup<cmds::StencilOpSeparate, 0>(true); 228 SpecializedSetup<cmds::StencilOpSeparate, 0>(true);
229 cmds::StencilOpSeparate cmd; 229 cmds::StencilOpSeparate cmd;
230 cmd.Init(GL_FRONT, GL_INCR, GL_KEEP, GL_KEEP); 230 cmd.Init(GL_FRONT, GL_INCR, GL_KEEP, GL_KEEP);
231 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 231 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
232 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 232 EXPECT_EQ(GL_NO_ERROR, GetGLError());
233 } 233 }
234 // TODO(gman): TexImage2D 234 // TODO(gman): TexImage2D
235 235
236 TEST_F(GLES2DecoderTest2, TexParameterfValidArgs) { 236 TEST_P(GLES2DecoderTest2, TexParameterfValidArgs) {
237 EXPECT_CALL(*gl_, 237 EXPECT_CALL(*gl_,
238 TexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST)); 238 TexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST));
239 SpecializedSetup<cmds::TexParameterf, 0>(true); 239 SpecializedSetup<cmds::TexParameterf, 0>(true);
240 cmds::TexParameterf cmd; 240 cmds::TexParameterf cmd;
241 cmd.Init(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); 241 cmd.Init(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
242 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 242 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
243 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 243 EXPECT_EQ(GL_NO_ERROR, GetGLError());
244 } 244 }
245 245
246 TEST_F(GLES2DecoderTest2, TexParameterfInvalidArgs0_0) { 246 TEST_P(GLES2DecoderTest2, TexParameterfInvalidArgs0_0) {
247 EXPECT_CALL(*gl_, TexParameterf(_, _, _)).Times(0); 247 EXPECT_CALL(*gl_, TexParameterf(_, _, _)).Times(0);
248 SpecializedSetup<cmds::TexParameterf, 0>(false); 248 SpecializedSetup<cmds::TexParameterf, 0>(false);
249 cmds::TexParameterf cmd; 249 cmds::TexParameterf cmd;
250 cmd.Init(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); 250 cmd.Init(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
251 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 251 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
252 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 252 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
253 } 253 }
254 254
255 TEST_F(GLES2DecoderTest2, TexParameterfInvalidArgs0_1) { 255 TEST_P(GLES2DecoderTest2, TexParameterfInvalidArgs0_1) {
256 EXPECT_CALL(*gl_, TexParameterf(_, _, _)).Times(0); 256 EXPECT_CALL(*gl_, TexParameterf(_, _, _)).Times(0);
257 SpecializedSetup<cmds::TexParameterf, 0>(false); 257 SpecializedSetup<cmds::TexParameterf, 0>(false);
258 cmds::TexParameterf cmd; 258 cmds::TexParameterf cmd;
259 cmd.Init(GL_TEXTURE_3D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); 259 cmd.Init(GL_TEXTURE_3D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
260 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 260 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
261 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 261 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
262 } 262 }
263 263
264 TEST_F(GLES2DecoderTest2, TexParameterfInvalidArgs1_0) { 264 TEST_P(GLES2DecoderTest2, TexParameterfInvalidArgs1_0) {
265 EXPECT_CALL(*gl_, TexParameterf(_, _, _)).Times(0); 265 EXPECT_CALL(*gl_, TexParameterf(_, _, _)).Times(0);
266 SpecializedSetup<cmds::TexParameterf, 0>(false); 266 SpecializedSetup<cmds::TexParameterf, 0>(false);
267 cmds::TexParameterf cmd; 267 cmds::TexParameterf cmd;
268 cmd.Init(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, GL_NEAREST); 268 cmd.Init(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, GL_NEAREST);
269 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 269 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
270 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 270 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
271 } 271 }
272 272
273 TEST_F(GLES2DecoderTest2, TexParameterfvValidArgs) { 273 TEST_P(GLES2DecoderTest2, TexParameterfvValidArgs) {
274 SpecializedSetup<cmds::TexParameterfv, 0>(true); 274 SpecializedSetup<cmds::TexParameterfv, 0>(true);
275 cmds::TexParameterfv cmd; 275 cmds::TexParameterfv cmd;
276 cmd.Init(GL_TEXTURE_2D, 276 cmd.Init(GL_TEXTURE_2D,
277 GL_TEXTURE_MAG_FILTER, 277 GL_TEXTURE_MAG_FILTER,
278 shared_memory_id_, 278 shared_memory_id_,
279 shared_memory_offset_); 279 shared_memory_offset_);
280 GetSharedMemoryAs<GLfloat*>()[0] = GL_NEAREST; 280 GetSharedMemoryAs<GLfloat*>()[0] = GL_NEAREST;
281 EXPECT_CALL( 281 EXPECT_CALL(
282 *gl_, 282 *gl_,
283 TexParameterf(GL_TEXTURE_2D, 283 TexParameterf(GL_TEXTURE_2D,
284 GL_TEXTURE_MAG_FILTER, 284 GL_TEXTURE_MAG_FILTER,
285 *reinterpret_cast<const GLfloat*>(shared_memory_address_))); 285 *reinterpret_cast<const GLfloat*>(shared_memory_address_)));
286 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 286 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
287 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 287 EXPECT_EQ(GL_NO_ERROR, GetGLError());
288 } 288 }
289 289
290 TEST_F(GLES2DecoderTest2, TexParameterfvInvalidArgs0_0) { 290 TEST_P(GLES2DecoderTest2, TexParameterfvInvalidArgs0_0) {
291 EXPECT_CALL(*gl_, TexParameterf(_, _, _)).Times(0); 291 EXPECT_CALL(*gl_, TexParameterf(_, _, _)).Times(0);
292 SpecializedSetup<cmds::TexParameterfv, 0>(false); 292 SpecializedSetup<cmds::TexParameterfv, 0>(false);
293 cmds::TexParameterfv cmd; 293 cmds::TexParameterfv cmd;
294 cmd.Init(GL_TEXTURE_1D, 294 cmd.Init(GL_TEXTURE_1D,
295 GL_TEXTURE_MAG_FILTER, 295 GL_TEXTURE_MAG_FILTER,
296 shared_memory_id_, 296 shared_memory_id_,
297 shared_memory_offset_); 297 shared_memory_offset_);
298 GetSharedMemoryAs<GLfloat*>()[0] = GL_NEAREST; 298 GetSharedMemoryAs<GLfloat*>()[0] = GL_NEAREST;
299 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 299 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
300 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 300 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
301 } 301 }
302 302
303 TEST_F(GLES2DecoderTest2, TexParameterfvInvalidArgs0_1) { 303 TEST_P(GLES2DecoderTest2, TexParameterfvInvalidArgs0_1) {
304 EXPECT_CALL(*gl_, TexParameterf(_, _, _)).Times(0); 304 EXPECT_CALL(*gl_, TexParameterf(_, _, _)).Times(0);
305 SpecializedSetup<cmds::TexParameterfv, 0>(false); 305 SpecializedSetup<cmds::TexParameterfv, 0>(false);
306 cmds::TexParameterfv cmd; 306 cmds::TexParameterfv cmd;
307 cmd.Init(GL_TEXTURE_3D, 307 cmd.Init(GL_TEXTURE_3D,
308 GL_TEXTURE_MAG_FILTER, 308 GL_TEXTURE_MAG_FILTER,
309 shared_memory_id_, 309 shared_memory_id_,
310 shared_memory_offset_); 310 shared_memory_offset_);
311 GetSharedMemoryAs<GLfloat*>()[0] = GL_NEAREST; 311 GetSharedMemoryAs<GLfloat*>()[0] = GL_NEAREST;
312 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 312 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
313 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 313 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
314 } 314 }
315 315
316 TEST_F(GLES2DecoderTest2, TexParameterfvInvalidArgs1_0) { 316 TEST_P(GLES2DecoderTest2, TexParameterfvInvalidArgs1_0) {
317 EXPECT_CALL(*gl_, TexParameterf(_, _, _)).Times(0); 317 EXPECT_CALL(*gl_, TexParameterf(_, _, _)).Times(0);
318 SpecializedSetup<cmds::TexParameterfv, 0>(false); 318 SpecializedSetup<cmds::TexParameterfv, 0>(false);
319 cmds::TexParameterfv cmd; 319 cmds::TexParameterfv cmd;
320 cmd.Init(GL_TEXTURE_2D, 320 cmd.Init(GL_TEXTURE_2D,
321 GL_GENERATE_MIPMAP, 321 GL_GENERATE_MIPMAP,
322 shared_memory_id_, 322 shared_memory_id_,
323 shared_memory_offset_); 323 shared_memory_offset_);
324 GetSharedMemoryAs<GLfloat*>()[0] = GL_NEAREST; 324 GetSharedMemoryAs<GLfloat*>()[0] = GL_NEAREST;
325 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 325 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
326 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 326 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
327 } 327 }
328 328
329 TEST_F(GLES2DecoderTest2, TexParameterfvInvalidArgs2_0) { 329 TEST_P(GLES2DecoderTest2, TexParameterfvInvalidArgs2_0) {
330 EXPECT_CALL(*gl_, TexParameterf(_, _, _)).Times(0); 330 EXPECT_CALL(*gl_, TexParameterf(_, _, _)).Times(0);
331 SpecializedSetup<cmds::TexParameterfv, 0>(false); 331 SpecializedSetup<cmds::TexParameterfv, 0>(false);
332 cmds::TexParameterfv cmd; 332 cmds::TexParameterfv cmd;
333 cmd.Init(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, kInvalidSharedMemoryId, 0); 333 cmd.Init(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, kInvalidSharedMemoryId, 0);
334 GetSharedMemoryAs<GLfloat*>()[0] = GL_NEAREST; 334 GetSharedMemoryAs<GLfloat*>()[0] = GL_NEAREST;
335 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 335 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
336 } 336 }
337 337
338 TEST_F(GLES2DecoderTest2, TexParameterfvInvalidArgs2_1) { 338 TEST_P(GLES2DecoderTest2, TexParameterfvInvalidArgs2_1) {
339 EXPECT_CALL(*gl_, TexParameterf(_, _, _)).Times(0); 339 EXPECT_CALL(*gl_, TexParameterf(_, _, _)).Times(0);
340 SpecializedSetup<cmds::TexParameterfv, 0>(false); 340 SpecializedSetup<cmds::TexParameterfv, 0>(false);
341 cmds::TexParameterfv cmd; 341 cmds::TexParameterfv cmd;
342 cmd.Init(GL_TEXTURE_2D, 342 cmd.Init(GL_TEXTURE_2D,
343 GL_TEXTURE_MAG_FILTER, 343 GL_TEXTURE_MAG_FILTER,
344 shared_memory_id_, 344 shared_memory_id_,
345 kInvalidSharedMemoryOffset); 345 kInvalidSharedMemoryOffset);
346 GetSharedMemoryAs<GLfloat*>()[0] = GL_NEAREST; 346 GetSharedMemoryAs<GLfloat*>()[0] = GL_NEAREST;
347 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 347 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
348 } 348 }
349 349
350 TEST_F(GLES2DecoderTest2, TexParameterfvImmediateValidArgs) { 350 TEST_P(GLES2DecoderTest2, TexParameterfvImmediateValidArgs) {
351 cmds::TexParameterfvImmediate& cmd = 351 cmds::TexParameterfvImmediate& cmd =
352 *GetImmediateAs<cmds::TexParameterfvImmediate>(); 352 *GetImmediateAs<cmds::TexParameterfvImmediate>();
353 SpecializedSetup<cmds::TexParameterfvImmediate, 0>(true); 353 SpecializedSetup<cmds::TexParameterfvImmediate, 0>(true);
354 GLfloat temp[1] = { 354 GLfloat temp[1] = {
355 GL_NEAREST, 355 GL_NEAREST,
356 }; 356 };
357 cmd.Init(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, &temp[0]); 357 cmd.Init(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, &temp[0]);
358 EXPECT_CALL( 358 EXPECT_CALL(
359 *gl_, 359 *gl_,
360 TexParameterf(GL_TEXTURE_2D, 360 TexParameterf(GL_TEXTURE_2D,
361 GL_TEXTURE_MAG_FILTER, 361 GL_TEXTURE_MAG_FILTER,
362 *reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd)))); 362 *reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd))));
363 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 363 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
364 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 364 EXPECT_EQ(GL_NO_ERROR, GetGLError());
365 } 365 }
366 366
367 TEST_F(GLES2DecoderTest2, TexParameterfvImmediateInvalidArgs0_0) { 367 TEST_P(GLES2DecoderTest2, TexParameterfvImmediateInvalidArgs0_0) {
368 cmds::TexParameterfvImmediate& cmd = 368 cmds::TexParameterfvImmediate& cmd =
369 *GetImmediateAs<cmds::TexParameterfvImmediate>(); 369 *GetImmediateAs<cmds::TexParameterfvImmediate>();
370 EXPECT_CALL(*gl_, TexParameterf(_, _, _)).Times(0); 370 EXPECT_CALL(*gl_, TexParameterf(_, _, _)).Times(0);
371 SpecializedSetup<cmds::TexParameterfvImmediate, 0>(false); 371 SpecializedSetup<cmds::TexParameterfvImmediate, 0>(false);
372 GLfloat temp[1] = { 372 GLfloat temp[1] = {
373 GL_NEAREST, 373 GL_NEAREST,
374 }; 374 };
375 cmd.Init(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, &temp[0]); 375 cmd.Init(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, &temp[0]);
376 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 376 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
377 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 377 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
378 } 378 }
379 379
380 TEST_F(GLES2DecoderTest2, TexParameterfvImmediateInvalidArgs0_1) { 380 TEST_P(GLES2DecoderTest2, TexParameterfvImmediateInvalidArgs0_1) {
381 cmds::TexParameterfvImmediate& cmd = 381 cmds::TexParameterfvImmediate& cmd =
382 *GetImmediateAs<cmds::TexParameterfvImmediate>(); 382 *GetImmediateAs<cmds::TexParameterfvImmediate>();
383 EXPECT_CALL(*gl_, TexParameterf(_, _, _)).Times(0); 383 EXPECT_CALL(*gl_, TexParameterf(_, _, _)).Times(0);
384 SpecializedSetup<cmds::TexParameterfvImmediate, 0>(false); 384 SpecializedSetup<cmds::TexParameterfvImmediate, 0>(false);
385 GLfloat temp[1] = { 385 GLfloat temp[1] = {
386 GL_NEAREST, 386 GL_NEAREST,
387 }; 387 };
388 cmd.Init(GL_TEXTURE_3D, GL_TEXTURE_MAG_FILTER, &temp[0]); 388 cmd.Init(GL_TEXTURE_3D, GL_TEXTURE_MAG_FILTER, &temp[0]);
389 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 389 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
390 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 390 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
391 } 391 }
392 392
393 TEST_F(GLES2DecoderTest2, TexParameterfvImmediateInvalidArgs1_0) { 393 TEST_P(GLES2DecoderTest2, TexParameterfvImmediateInvalidArgs1_0) {
394 cmds::TexParameterfvImmediate& cmd = 394 cmds::TexParameterfvImmediate& cmd =
395 *GetImmediateAs<cmds::TexParameterfvImmediate>(); 395 *GetImmediateAs<cmds::TexParameterfvImmediate>();
396 EXPECT_CALL(*gl_, TexParameterf(_, _, _)).Times(0); 396 EXPECT_CALL(*gl_, TexParameterf(_, _, _)).Times(0);
397 SpecializedSetup<cmds::TexParameterfvImmediate, 0>(false); 397 SpecializedSetup<cmds::TexParameterfvImmediate, 0>(false);
398 GLfloat temp[1] = { 398 GLfloat temp[1] = {
399 GL_NEAREST, 399 GL_NEAREST,
400 }; 400 };
401 cmd.Init(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, &temp[0]); 401 cmd.Init(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, &temp[0]);
402 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 402 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
403 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 403 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
404 } 404 }
405 405
406 TEST_F(GLES2DecoderTest2, TexParameteriValidArgs) { 406 TEST_P(GLES2DecoderTest2, TexParameteriValidArgs) {
407 EXPECT_CALL(*gl_, 407 EXPECT_CALL(*gl_,
408 TexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST)); 408 TexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST));
409 SpecializedSetup<cmds::TexParameteri, 0>(true); 409 SpecializedSetup<cmds::TexParameteri, 0>(true);
410 cmds::TexParameteri cmd; 410 cmds::TexParameteri cmd;
411 cmd.Init(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); 411 cmd.Init(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
412 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 412 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
413 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 413 EXPECT_EQ(GL_NO_ERROR, GetGLError());
414 } 414 }
415 415
416 TEST_F(GLES2DecoderTest2, TexParameteriInvalidArgs0_0) { 416 TEST_P(GLES2DecoderTest2, TexParameteriInvalidArgs0_0) {
417 EXPECT_CALL(*gl_, TexParameteri(_, _, _)).Times(0); 417 EXPECT_CALL(*gl_, TexParameteri(_, _, _)).Times(0);
418 SpecializedSetup<cmds::TexParameteri, 0>(false); 418 SpecializedSetup<cmds::TexParameteri, 0>(false);
419 cmds::TexParameteri cmd; 419 cmds::TexParameteri cmd;
420 cmd.Init(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); 420 cmd.Init(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
421 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 421 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
422 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 422 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
423 } 423 }
424 424
425 TEST_F(GLES2DecoderTest2, TexParameteriInvalidArgs0_1) { 425 TEST_P(GLES2DecoderTest2, TexParameteriInvalidArgs0_1) {
426 EXPECT_CALL(*gl_, TexParameteri(_, _, _)).Times(0); 426 EXPECT_CALL(*gl_, TexParameteri(_, _, _)).Times(0);
427 SpecializedSetup<cmds::TexParameteri, 0>(false); 427 SpecializedSetup<cmds::TexParameteri, 0>(false);
428 cmds::TexParameteri cmd; 428 cmds::TexParameteri cmd;
429 cmd.Init(GL_TEXTURE_3D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); 429 cmd.Init(GL_TEXTURE_3D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
430 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 430 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
431 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 431 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
432 } 432 }
433 433
434 TEST_F(GLES2DecoderTest2, TexParameteriInvalidArgs1_0) { 434 TEST_P(GLES2DecoderTest2, TexParameteriInvalidArgs1_0) {
435 EXPECT_CALL(*gl_, TexParameteri(_, _, _)).Times(0); 435 EXPECT_CALL(*gl_, TexParameteri(_, _, _)).Times(0);
436 SpecializedSetup<cmds::TexParameteri, 0>(false); 436 SpecializedSetup<cmds::TexParameteri, 0>(false);
437 cmds::TexParameteri cmd; 437 cmds::TexParameteri cmd;
438 cmd.Init(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, GL_NEAREST); 438 cmd.Init(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, GL_NEAREST);
439 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 439 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
440 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 440 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
441 } 441 }
442 442
443 TEST_F(GLES2DecoderTest2, TexParameterivValidArgs) { 443 TEST_P(GLES2DecoderTest2, TexParameterivValidArgs) {
444 SpecializedSetup<cmds::TexParameteriv, 0>(true); 444 SpecializedSetup<cmds::TexParameteriv, 0>(true);
445 cmds::TexParameteriv cmd; 445 cmds::TexParameteriv cmd;
446 cmd.Init(GL_TEXTURE_2D, 446 cmd.Init(GL_TEXTURE_2D,
447 GL_TEXTURE_MAG_FILTER, 447 GL_TEXTURE_MAG_FILTER,
448 shared_memory_id_, 448 shared_memory_id_,
449 shared_memory_offset_); 449 shared_memory_offset_);
450 GetSharedMemoryAs<GLint*>()[0] = GL_NEAREST; 450 GetSharedMemoryAs<GLint*>()[0] = GL_NEAREST;
451 EXPECT_CALL( 451 EXPECT_CALL(
452 *gl_, 452 *gl_,
453 TexParameteri(GL_TEXTURE_2D, 453 TexParameteri(GL_TEXTURE_2D,
454 GL_TEXTURE_MAG_FILTER, 454 GL_TEXTURE_MAG_FILTER,
455 *reinterpret_cast<const GLint*>(shared_memory_address_))); 455 *reinterpret_cast<const GLint*>(shared_memory_address_)));
456 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 456 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
457 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 457 EXPECT_EQ(GL_NO_ERROR, GetGLError());
458 } 458 }
459 459
460 TEST_F(GLES2DecoderTest2, TexParameterivInvalidArgs0_0) { 460 TEST_P(GLES2DecoderTest2, TexParameterivInvalidArgs0_0) {
461 EXPECT_CALL(*gl_, TexParameteri(_, _, _)).Times(0); 461 EXPECT_CALL(*gl_, TexParameteri(_, _, _)).Times(0);
462 SpecializedSetup<cmds::TexParameteriv, 0>(false); 462 SpecializedSetup<cmds::TexParameteriv, 0>(false);
463 cmds::TexParameteriv cmd; 463 cmds::TexParameteriv cmd;
464 cmd.Init(GL_TEXTURE_1D, 464 cmd.Init(GL_TEXTURE_1D,
465 GL_TEXTURE_MAG_FILTER, 465 GL_TEXTURE_MAG_FILTER,
466 shared_memory_id_, 466 shared_memory_id_,
467 shared_memory_offset_); 467 shared_memory_offset_);
468 GetSharedMemoryAs<GLint*>()[0] = GL_NEAREST; 468 GetSharedMemoryAs<GLint*>()[0] = GL_NEAREST;
469 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 469 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
470 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 470 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
471 } 471 }
472 472
473 TEST_F(GLES2DecoderTest2, TexParameterivInvalidArgs0_1) { 473 TEST_P(GLES2DecoderTest2, TexParameterivInvalidArgs0_1) {
474 EXPECT_CALL(*gl_, TexParameteri(_, _, _)).Times(0); 474 EXPECT_CALL(*gl_, TexParameteri(_, _, _)).Times(0);
475 SpecializedSetup<cmds::TexParameteriv, 0>(false); 475 SpecializedSetup<cmds::TexParameteriv, 0>(false);
476 cmds::TexParameteriv cmd; 476 cmds::TexParameteriv cmd;
477 cmd.Init(GL_TEXTURE_3D, 477 cmd.Init(GL_TEXTURE_3D,
478 GL_TEXTURE_MAG_FILTER, 478 GL_TEXTURE_MAG_FILTER,
479 shared_memory_id_, 479 shared_memory_id_,
480 shared_memory_offset_); 480 shared_memory_offset_);
481 GetSharedMemoryAs<GLint*>()[0] = GL_NEAREST; 481 GetSharedMemoryAs<GLint*>()[0] = GL_NEAREST;
482 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 482 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
483 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 483 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
484 } 484 }
485 485
486 TEST_F(GLES2DecoderTest2, TexParameterivInvalidArgs1_0) { 486 TEST_P(GLES2DecoderTest2, TexParameterivInvalidArgs1_0) {
487 EXPECT_CALL(*gl_, TexParameteri(_, _, _)).Times(0); 487 EXPECT_CALL(*gl_, TexParameteri(_, _, _)).Times(0);
488 SpecializedSetup<cmds::TexParameteriv, 0>(false); 488 SpecializedSetup<cmds::TexParameteriv, 0>(false);
489 cmds::TexParameteriv cmd; 489 cmds::TexParameteriv cmd;
490 cmd.Init(GL_TEXTURE_2D, 490 cmd.Init(GL_TEXTURE_2D,
491 GL_GENERATE_MIPMAP, 491 GL_GENERATE_MIPMAP,
492 shared_memory_id_, 492 shared_memory_id_,
493 shared_memory_offset_); 493 shared_memory_offset_);
494 GetSharedMemoryAs<GLint*>()[0] = GL_NEAREST; 494 GetSharedMemoryAs<GLint*>()[0] = GL_NEAREST;
495 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 495 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
496 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 496 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
497 } 497 }
498 498
499 TEST_F(GLES2DecoderTest2, TexParameterivInvalidArgs2_0) { 499 TEST_P(GLES2DecoderTest2, TexParameterivInvalidArgs2_0) {
500 EXPECT_CALL(*gl_, TexParameteri(_, _, _)).Times(0); 500 EXPECT_CALL(*gl_, TexParameteri(_, _, _)).Times(0);
501 SpecializedSetup<cmds::TexParameteriv, 0>(false); 501 SpecializedSetup<cmds::TexParameteriv, 0>(false);
502 cmds::TexParameteriv cmd; 502 cmds::TexParameteriv cmd;
503 cmd.Init(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, kInvalidSharedMemoryId, 0); 503 cmd.Init(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, kInvalidSharedMemoryId, 0);
504 GetSharedMemoryAs<GLint*>()[0] = GL_NEAREST; 504 GetSharedMemoryAs<GLint*>()[0] = GL_NEAREST;
505 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 505 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
506 } 506 }
507 507
508 TEST_F(GLES2DecoderTest2, TexParameterivInvalidArgs2_1) { 508 TEST_P(GLES2DecoderTest2, TexParameterivInvalidArgs2_1) {
509 EXPECT_CALL(*gl_, TexParameteri(_, _, _)).Times(0); 509 EXPECT_CALL(*gl_, TexParameteri(_, _, _)).Times(0);
510 SpecializedSetup<cmds::TexParameteriv, 0>(false); 510 SpecializedSetup<cmds::TexParameteriv, 0>(false);
511 cmds::TexParameteriv cmd; 511 cmds::TexParameteriv cmd;
512 cmd.Init(GL_TEXTURE_2D, 512 cmd.Init(GL_TEXTURE_2D,
513 GL_TEXTURE_MAG_FILTER, 513 GL_TEXTURE_MAG_FILTER,
514 shared_memory_id_, 514 shared_memory_id_,
515 kInvalidSharedMemoryOffset); 515 kInvalidSharedMemoryOffset);
516 GetSharedMemoryAs<GLint*>()[0] = GL_NEAREST; 516 GetSharedMemoryAs<GLint*>()[0] = GL_NEAREST;
517 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 517 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
518 } 518 }
519 519
520 TEST_F(GLES2DecoderTest2, TexParameterivImmediateValidArgs) { 520 TEST_P(GLES2DecoderTest2, TexParameterivImmediateValidArgs) {
521 cmds::TexParameterivImmediate& cmd = 521 cmds::TexParameterivImmediate& cmd =
522 *GetImmediateAs<cmds::TexParameterivImmediate>(); 522 *GetImmediateAs<cmds::TexParameterivImmediate>();
523 SpecializedSetup<cmds::TexParameterivImmediate, 0>(true); 523 SpecializedSetup<cmds::TexParameterivImmediate, 0>(true);
524 GLint temp[1] = { 524 GLint temp[1] = {
525 GL_NEAREST, 525 GL_NEAREST,
526 }; 526 };
527 cmd.Init(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, &temp[0]); 527 cmd.Init(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, &temp[0]);
528 EXPECT_CALL( 528 EXPECT_CALL(
529 *gl_, 529 *gl_,
530 TexParameteri(GL_TEXTURE_2D, 530 TexParameteri(GL_TEXTURE_2D,
531 GL_TEXTURE_MAG_FILTER, 531 GL_TEXTURE_MAG_FILTER,
532 *reinterpret_cast<GLint*>(ImmediateDataAddress(&cmd)))); 532 *reinterpret_cast<GLint*>(ImmediateDataAddress(&cmd))));
533 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 533 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
534 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 534 EXPECT_EQ(GL_NO_ERROR, GetGLError());
535 } 535 }
536 536
537 TEST_F(GLES2DecoderTest2, TexParameterivImmediateInvalidArgs0_0) { 537 TEST_P(GLES2DecoderTest2, TexParameterivImmediateInvalidArgs0_0) {
538 cmds::TexParameterivImmediate& cmd = 538 cmds::TexParameterivImmediate& cmd =
539 *GetImmediateAs<cmds::TexParameterivImmediate>(); 539 *GetImmediateAs<cmds::TexParameterivImmediate>();
540 EXPECT_CALL(*gl_, TexParameteri(_, _, _)).Times(0); 540 EXPECT_CALL(*gl_, TexParameteri(_, _, _)).Times(0);
541 SpecializedSetup<cmds::TexParameterivImmediate, 0>(false); 541 SpecializedSetup<cmds::TexParameterivImmediate, 0>(false);
542 GLint temp[1] = { 542 GLint temp[1] = {
543 GL_NEAREST, 543 GL_NEAREST,
544 }; 544 };
545 cmd.Init(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, &temp[0]); 545 cmd.Init(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, &temp[0]);
546 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 546 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
547 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 547 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
548 } 548 }
549 549
550 TEST_F(GLES2DecoderTest2, TexParameterivImmediateInvalidArgs0_1) { 550 TEST_P(GLES2DecoderTest2, TexParameterivImmediateInvalidArgs0_1) {
551 cmds::TexParameterivImmediate& cmd = 551 cmds::TexParameterivImmediate& cmd =
552 *GetImmediateAs<cmds::TexParameterivImmediate>(); 552 *GetImmediateAs<cmds::TexParameterivImmediate>();
553 EXPECT_CALL(*gl_, TexParameteri(_, _, _)).Times(0); 553 EXPECT_CALL(*gl_, TexParameteri(_, _, _)).Times(0);
554 SpecializedSetup<cmds::TexParameterivImmediate, 0>(false); 554 SpecializedSetup<cmds::TexParameterivImmediate, 0>(false);
555 GLint temp[1] = { 555 GLint temp[1] = {
556 GL_NEAREST, 556 GL_NEAREST,
557 }; 557 };
558 cmd.Init(GL_TEXTURE_3D, GL_TEXTURE_MAG_FILTER, &temp[0]); 558 cmd.Init(GL_TEXTURE_3D, GL_TEXTURE_MAG_FILTER, &temp[0]);
559 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 559 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
560 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 560 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
561 } 561 }
562 562
563 TEST_F(GLES2DecoderTest2, TexParameterivImmediateInvalidArgs1_0) { 563 TEST_P(GLES2DecoderTest2, TexParameterivImmediateInvalidArgs1_0) {
564 cmds::TexParameterivImmediate& cmd = 564 cmds::TexParameterivImmediate& cmd =
565 *GetImmediateAs<cmds::TexParameterivImmediate>(); 565 *GetImmediateAs<cmds::TexParameterivImmediate>();
566 EXPECT_CALL(*gl_, TexParameteri(_, _, _)).Times(0); 566 EXPECT_CALL(*gl_, TexParameteri(_, _, _)).Times(0);
567 SpecializedSetup<cmds::TexParameterivImmediate, 0>(false); 567 SpecializedSetup<cmds::TexParameterivImmediate, 0>(false);
568 GLint temp[1] = { 568 GLint temp[1] = {
569 GL_NEAREST, 569 GL_NEAREST,
570 }; 570 };
571 cmd.Init(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, &temp[0]); 571 cmd.Init(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, &temp[0]);
572 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 572 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
573 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 573 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
574 } 574 }
575 // TODO(gman): TexSubImage2D 575 // TODO(gman): TexSubImage2D
576 576
577 TEST_F(GLES2DecoderTest2, Uniform1fValidArgs) { 577 TEST_P(GLES2DecoderTest2, Uniform1fValidArgs) {
578 EXPECT_CALL(*gl_, Uniform1fv(1, 1, _)); 578 EXPECT_CALL(*gl_, Uniform1fv(1, 1, _));
579 SpecializedSetup<cmds::Uniform1f, 0>(true); 579 SpecializedSetup<cmds::Uniform1f, 0>(true);
580 cmds::Uniform1f cmd; 580 cmds::Uniform1f cmd;
581 cmd.Init(1, 2); 581 cmd.Init(1, 2);
582 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 582 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
583 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 583 EXPECT_EQ(GL_NO_ERROR, GetGLError());
584 } 584 }
585 585
586 TEST_F(GLES2DecoderTest2, Uniform1fvValidArgs) { 586 TEST_P(GLES2DecoderTest2, Uniform1fvValidArgs) {
587 EXPECT_CALL( 587 EXPECT_CALL(
588 *gl_, 588 *gl_,
589 Uniform1fv( 589 Uniform1fv(
590 1, 2, reinterpret_cast<const GLfloat*>(shared_memory_address_))); 590 1, 2, reinterpret_cast<const GLfloat*>(shared_memory_address_)));
591 SpecializedSetup<cmds::Uniform1fv, 0>(true); 591 SpecializedSetup<cmds::Uniform1fv, 0>(true);
592 cmds::Uniform1fv cmd; 592 cmds::Uniform1fv cmd;
593 cmd.Init(1, 2, shared_memory_id_, shared_memory_offset_); 593 cmd.Init(1, 2, shared_memory_id_, shared_memory_offset_);
594 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 594 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
595 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 595 EXPECT_EQ(GL_NO_ERROR, GetGLError());
596 } 596 }
597 597
598 TEST_F(GLES2DecoderTest2, Uniform1fvInvalidArgs1_0) { 598 TEST_P(GLES2DecoderTest2, Uniform1fvInvalidArgs1_0) {
599 EXPECT_CALL(*gl_, Uniform1fv(_, _, _)).Times(0); 599 EXPECT_CALL(*gl_, Uniform1fv(_, _, _)).Times(0);
600 SpecializedSetup<cmds::Uniform1fv, 0>(false); 600 SpecializedSetup<cmds::Uniform1fv, 0>(false);
601 cmds::Uniform1fv cmd; 601 cmds::Uniform1fv cmd;
602 cmd.Init(1, -1, shared_memory_id_, shared_memory_offset_); 602 cmd.Init(1, -1, shared_memory_id_, shared_memory_offset_);
603 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 603 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
604 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 604 EXPECT_EQ(GL_NO_ERROR, GetGLError());
605 } 605 }
606 606
607 TEST_F(GLES2DecoderTest2, Uniform1fvInvalidArgs2_0) { 607 TEST_P(GLES2DecoderTest2, Uniform1fvInvalidArgs2_0) {
608 EXPECT_CALL(*gl_, Uniform1fv(_, _, _)).Times(0); 608 EXPECT_CALL(*gl_, Uniform1fv(_, _, _)).Times(0);
609 SpecializedSetup<cmds::Uniform1fv, 0>(false); 609 SpecializedSetup<cmds::Uniform1fv, 0>(false);
610 cmds::Uniform1fv cmd; 610 cmds::Uniform1fv cmd;
611 cmd.Init(1, 2, kInvalidSharedMemoryId, 0); 611 cmd.Init(1, 2, kInvalidSharedMemoryId, 0);
612 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 612 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
613 } 613 }
614 614
615 TEST_F(GLES2DecoderTest2, Uniform1fvInvalidArgs2_1) { 615 TEST_P(GLES2DecoderTest2, Uniform1fvInvalidArgs2_1) {
616 EXPECT_CALL(*gl_, Uniform1fv(_, _, _)).Times(0); 616 EXPECT_CALL(*gl_, Uniform1fv(_, _, _)).Times(0);
617 SpecializedSetup<cmds::Uniform1fv, 0>(false); 617 SpecializedSetup<cmds::Uniform1fv, 0>(false);
618 cmds::Uniform1fv cmd; 618 cmds::Uniform1fv cmd;
619 cmd.Init(1, 2, shared_memory_id_, kInvalidSharedMemoryOffset); 619 cmd.Init(1, 2, shared_memory_id_, kInvalidSharedMemoryOffset);
620 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 620 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
621 } 621 }
622 622
623 TEST_F(GLES2DecoderTest2, Uniform1fvValidArgsCountTooLarge) { 623 TEST_P(GLES2DecoderTest2, Uniform1fvValidArgsCountTooLarge) {
624 EXPECT_CALL( 624 EXPECT_CALL(
625 *gl_, 625 *gl_,
626 Uniform1fv( 626 Uniform1fv(
627 3, 3, reinterpret_cast<const GLfloat*>(shared_memory_address_))); 627 3, 3, reinterpret_cast<const GLfloat*>(shared_memory_address_)));
628 SpecializedSetup<cmds::Uniform1fv, 0>(true); 628 SpecializedSetup<cmds::Uniform1fv, 0>(true);
629 cmds::Uniform1fv cmd; 629 cmds::Uniform1fv cmd;
630 cmd.Init(ProgramManager::MakeFakeLocation(1, 1), 630 cmd.Init(ProgramManager::MakeFakeLocation(1, 1),
631 5, 631 5,
632 shared_memory_id_, 632 shared_memory_id_,
633 shared_memory_offset_); 633 shared_memory_offset_);
634 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 634 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
635 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 635 EXPECT_EQ(GL_NO_ERROR, GetGLError());
636 } 636 }
637 637
638 TEST_F(GLES2DecoderTest2, Uniform1fvImmediateValidArgs) { 638 TEST_P(GLES2DecoderTest2, Uniform1fvImmediateValidArgs) {
639 cmds::Uniform1fvImmediate& cmd = *GetImmediateAs<cmds::Uniform1fvImmediate>(); 639 cmds::Uniform1fvImmediate& cmd = *GetImmediateAs<cmds::Uniform1fvImmediate>();
640 EXPECT_CALL( 640 EXPECT_CALL(
641 *gl_, 641 *gl_,
642 Uniform1fv(1, 2, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd)))); 642 Uniform1fv(1, 2, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd))));
643 SpecializedSetup<cmds::Uniform1fvImmediate, 0>(true); 643 SpecializedSetup<cmds::Uniform1fvImmediate, 0>(true);
644 GLfloat temp[1 * 2] = { 644 GLfloat temp[1 * 2] = {
645 0, 645 0,
646 }; 646 };
647 cmd.Init(1, 2, &temp[0]); 647 cmd.Init(1, 2, &temp[0]);
648 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 648 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
649 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 649 EXPECT_EQ(GL_NO_ERROR, GetGLError());
650 } 650 }
651 // TODO(gman): Uniform1i 651 // TODO(gman): Uniform1i
652 // TODO(gman): Uniform1iv 652 // TODO(gman): Uniform1iv
653 // TODO(gman): Uniform1ivImmediate 653 // TODO(gman): Uniform1ivImmediate
654 654
655 TEST_F(GLES2DecoderTest2, Uniform2fValidArgs) { 655 TEST_P(GLES2DecoderTest2, Uniform2fValidArgs) {
656 EXPECT_CALL(*gl_, Uniform2fv(1, 1, _)); 656 EXPECT_CALL(*gl_, Uniform2fv(1, 1, _));
657 SpecializedSetup<cmds::Uniform2f, 0>(true); 657 SpecializedSetup<cmds::Uniform2f, 0>(true);
658 cmds::Uniform2f cmd; 658 cmds::Uniform2f cmd;
659 cmd.Init(1, 2, 3); 659 cmd.Init(1, 2, 3);
660 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 660 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
661 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 661 EXPECT_EQ(GL_NO_ERROR, GetGLError());
662 } 662 }
663 663
664 TEST_F(GLES2DecoderTest2, Uniform2fvValidArgs) { 664 TEST_P(GLES2DecoderTest2, Uniform2fvValidArgs) {
665 EXPECT_CALL( 665 EXPECT_CALL(
666 *gl_, 666 *gl_,
667 Uniform2fv( 667 Uniform2fv(
668 1, 2, reinterpret_cast<const GLfloat*>(shared_memory_address_))); 668 1, 2, reinterpret_cast<const GLfloat*>(shared_memory_address_)));
669 SpecializedSetup<cmds::Uniform2fv, 0>(true); 669 SpecializedSetup<cmds::Uniform2fv, 0>(true);
670 cmds::Uniform2fv cmd; 670 cmds::Uniform2fv cmd;
671 cmd.Init(1, 2, shared_memory_id_, shared_memory_offset_); 671 cmd.Init(1, 2, shared_memory_id_, shared_memory_offset_);
672 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 672 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
673 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 673 EXPECT_EQ(GL_NO_ERROR, GetGLError());
674 } 674 }
675 675
676 TEST_F(GLES2DecoderTest2, Uniform2fvInvalidArgs1_0) { 676 TEST_P(GLES2DecoderTest2, Uniform2fvInvalidArgs1_0) {
677 EXPECT_CALL(*gl_, Uniform2fv(_, _, _)).Times(0); 677 EXPECT_CALL(*gl_, Uniform2fv(_, _, _)).Times(0);
678 SpecializedSetup<cmds::Uniform2fv, 0>(false); 678 SpecializedSetup<cmds::Uniform2fv, 0>(false);
679 cmds::Uniform2fv cmd; 679 cmds::Uniform2fv cmd;
680 cmd.Init(1, -1, shared_memory_id_, shared_memory_offset_); 680 cmd.Init(1, -1, shared_memory_id_, shared_memory_offset_);
681 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 681 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
682 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 682 EXPECT_EQ(GL_NO_ERROR, GetGLError());
683 } 683 }
684 684
685 TEST_F(GLES2DecoderTest2, Uniform2fvInvalidArgs2_0) { 685 TEST_P(GLES2DecoderTest2, Uniform2fvInvalidArgs2_0) {
686 EXPECT_CALL(*gl_, Uniform2fv(_, _, _)).Times(0); 686 EXPECT_CALL(*gl_, Uniform2fv(_, _, _)).Times(0);
687 SpecializedSetup<cmds::Uniform2fv, 0>(false); 687 SpecializedSetup<cmds::Uniform2fv, 0>(false);
688 cmds::Uniform2fv cmd; 688 cmds::Uniform2fv cmd;
689 cmd.Init(1, 2, kInvalidSharedMemoryId, 0); 689 cmd.Init(1, 2, kInvalidSharedMemoryId, 0);
690 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 690 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
691 } 691 }
692 692
693 TEST_F(GLES2DecoderTest2, Uniform2fvInvalidArgs2_1) { 693 TEST_P(GLES2DecoderTest2, Uniform2fvInvalidArgs2_1) {
694 EXPECT_CALL(*gl_, Uniform2fv(_, _, _)).Times(0); 694 EXPECT_CALL(*gl_, Uniform2fv(_, _, _)).Times(0);
695 SpecializedSetup<cmds::Uniform2fv, 0>(false); 695 SpecializedSetup<cmds::Uniform2fv, 0>(false);
696 cmds::Uniform2fv cmd; 696 cmds::Uniform2fv cmd;
697 cmd.Init(1, 2, shared_memory_id_, kInvalidSharedMemoryOffset); 697 cmd.Init(1, 2, shared_memory_id_, kInvalidSharedMemoryOffset);
698 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 698 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
699 } 699 }
700 700
701 TEST_F(GLES2DecoderTest2, Uniform2fvValidArgsCountTooLarge) { 701 TEST_P(GLES2DecoderTest2, Uniform2fvValidArgsCountTooLarge) {
702 EXPECT_CALL( 702 EXPECT_CALL(
703 *gl_, 703 *gl_,
704 Uniform2fv( 704 Uniform2fv(
705 3, 3, reinterpret_cast<const GLfloat*>(shared_memory_address_))); 705 3, 3, reinterpret_cast<const GLfloat*>(shared_memory_address_)));
706 SpecializedSetup<cmds::Uniform2fv, 0>(true); 706 SpecializedSetup<cmds::Uniform2fv, 0>(true);
707 cmds::Uniform2fv cmd; 707 cmds::Uniform2fv cmd;
708 cmd.Init(ProgramManager::MakeFakeLocation(1, 1), 708 cmd.Init(ProgramManager::MakeFakeLocation(1, 1),
709 5, 709 5,
710 shared_memory_id_, 710 shared_memory_id_,
711 shared_memory_offset_); 711 shared_memory_offset_);
712 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 712 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
713 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 713 EXPECT_EQ(GL_NO_ERROR, GetGLError());
714 } 714 }
715 715
716 TEST_F(GLES2DecoderTest2, Uniform2fvImmediateValidArgs) { 716 TEST_P(GLES2DecoderTest2, Uniform2fvImmediateValidArgs) {
717 cmds::Uniform2fvImmediate& cmd = *GetImmediateAs<cmds::Uniform2fvImmediate>(); 717 cmds::Uniform2fvImmediate& cmd = *GetImmediateAs<cmds::Uniform2fvImmediate>();
718 EXPECT_CALL( 718 EXPECT_CALL(
719 *gl_, 719 *gl_,
720 Uniform2fv(1, 2, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd)))); 720 Uniform2fv(1, 2, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd))));
721 SpecializedSetup<cmds::Uniform2fvImmediate, 0>(true); 721 SpecializedSetup<cmds::Uniform2fvImmediate, 0>(true);
722 GLfloat temp[2 * 2] = { 722 GLfloat temp[2 * 2] = {
723 0, 723 0,
724 }; 724 };
725 cmd.Init(1, 2, &temp[0]); 725 cmd.Init(1, 2, &temp[0]);
726 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 726 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
727 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 727 EXPECT_EQ(GL_NO_ERROR, GetGLError());
728 } 728 }
729 729
730 TEST_F(GLES2DecoderTest2, Uniform2iValidArgs) { 730 TEST_P(GLES2DecoderTest2, Uniform2iValidArgs) {
731 EXPECT_CALL(*gl_, Uniform2iv(1, 1, _)); 731 EXPECT_CALL(*gl_, Uniform2iv(1, 1, _));
732 SpecializedSetup<cmds::Uniform2i, 0>(true); 732 SpecializedSetup<cmds::Uniform2i, 0>(true);
733 cmds::Uniform2i cmd; 733 cmds::Uniform2i cmd;
734 cmd.Init(1, 2, 3); 734 cmd.Init(1, 2, 3);
735 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 735 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
736 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 736 EXPECT_EQ(GL_NO_ERROR, GetGLError());
737 } 737 }
738 738
739 TEST_F(GLES2DecoderTest2, Uniform2ivValidArgs) { 739 TEST_P(GLES2DecoderTest2, Uniform2ivValidArgs) {
740 EXPECT_CALL( 740 EXPECT_CALL(
741 *gl_, 741 *gl_,
742 Uniform2iv(1, 2, reinterpret_cast<const GLint*>(shared_memory_address_))); 742 Uniform2iv(1, 2, reinterpret_cast<const GLint*>(shared_memory_address_)));
743 SpecializedSetup<cmds::Uniform2iv, 0>(true); 743 SpecializedSetup<cmds::Uniform2iv, 0>(true);
744 cmds::Uniform2iv cmd; 744 cmds::Uniform2iv cmd;
745 cmd.Init(1, 2, shared_memory_id_, shared_memory_offset_); 745 cmd.Init(1, 2, shared_memory_id_, shared_memory_offset_);
746 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 746 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
747 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 747 EXPECT_EQ(GL_NO_ERROR, GetGLError());
748 } 748 }
749 749
750 TEST_F(GLES2DecoderTest2, Uniform2ivInvalidArgs1_0) { 750 TEST_P(GLES2DecoderTest2, Uniform2ivInvalidArgs1_0) {
751 EXPECT_CALL(*gl_, Uniform2iv(_, _, _)).Times(0); 751 EXPECT_CALL(*gl_, Uniform2iv(_, _, _)).Times(0);
752 SpecializedSetup<cmds::Uniform2iv, 0>(false); 752 SpecializedSetup<cmds::Uniform2iv, 0>(false);
753 cmds::Uniform2iv cmd; 753 cmds::Uniform2iv cmd;
754 cmd.Init(1, -1, shared_memory_id_, shared_memory_offset_); 754 cmd.Init(1, -1, shared_memory_id_, shared_memory_offset_);
755 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 755 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
756 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 756 EXPECT_EQ(GL_NO_ERROR, GetGLError());
757 } 757 }
758 758
759 TEST_F(GLES2DecoderTest2, Uniform2ivInvalidArgs2_0) { 759 TEST_P(GLES2DecoderTest2, Uniform2ivInvalidArgs2_0) {
760 EXPECT_CALL(*gl_, Uniform2iv(_, _, _)).Times(0); 760 EXPECT_CALL(*gl_, Uniform2iv(_, _, _)).Times(0);
761 SpecializedSetup<cmds::Uniform2iv, 0>(false); 761 SpecializedSetup<cmds::Uniform2iv, 0>(false);
762 cmds::Uniform2iv cmd; 762 cmds::Uniform2iv cmd;
763 cmd.Init(1, 2, kInvalidSharedMemoryId, 0); 763 cmd.Init(1, 2, kInvalidSharedMemoryId, 0);
764 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 764 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
765 } 765 }
766 766
767 TEST_F(GLES2DecoderTest2, Uniform2ivInvalidArgs2_1) { 767 TEST_P(GLES2DecoderTest2, Uniform2ivInvalidArgs2_1) {
768 EXPECT_CALL(*gl_, Uniform2iv(_, _, _)).Times(0); 768 EXPECT_CALL(*gl_, Uniform2iv(_, _, _)).Times(0);
769 SpecializedSetup<cmds::Uniform2iv, 0>(false); 769 SpecializedSetup<cmds::Uniform2iv, 0>(false);
770 cmds::Uniform2iv cmd; 770 cmds::Uniform2iv cmd;
771 cmd.Init(1, 2, shared_memory_id_, kInvalidSharedMemoryOffset); 771 cmd.Init(1, 2, shared_memory_id_, kInvalidSharedMemoryOffset);
772 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 772 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
773 } 773 }
774 774
775 TEST_F(GLES2DecoderTest2, Uniform2ivValidArgsCountTooLarge) { 775 TEST_P(GLES2DecoderTest2, Uniform2ivValidArgsCountTooLarge) {
776 EXPECT_CALL( 776 EXPECT_CALL(
777 *gl_, 777 *gl_,
778 Uniform2iv(3, 3, reinterpret_cast<const GLint*>(shared_memory_address_))); 778 Uniform2iv(3, 3, reinterpret_cast<const GLint*>(shared_memory_address_)));
779 SpecializedSetup<cmds::Uniform2iv, 0>(true); 779 SpecializedSetup<cmds::Uniform2iv, 0>(true);
780 cmds::Uniform2iv cmd; 780 cmds::Uniform2iv cmd;
781 cmd.Init(ProgramManager::MakeFakeLocation(1, 1), 781 cmd.Init(ProgramManager::MakeFakeLocation(1, 1),
782 5, 782 5,
783 shared_memory_id_, 783 shared_memory_id_,
784 shared_memory_offset_); 784 shared_memory_offset_);
785 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 785 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
786 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 786 EXPECT_EQ(GL_NO_ERROR, GetGLError());
787 } 787 }
788 788
789 TEST_F(GLES2DecoderTest2, Uniform2ivImmediateValidArgs) { 789 TEST_P(GLES2DecoderTest2, Uniform2ivImmediateValidArgs) {
790 cmds::Uniform2ivImmediate& cmd = *GetImmediateAs<cmds::Uniform2ivImmediate>(); 790 cmds::Uniform2ivImmediate& cmd = *GetImmediateAs<cmds::Uniform2ivImmediate>();
791 EXPECT_CALL( 791 EXPECT_CALL(
792 *gl_, 792 *gl_,
793 Uniform2iv(1, 2, reinterpret_cast<GLint*>(ImmediateDataAddress(&cmd)))); 793 Uniform2iv(1, 2, reinterpret_cast<GLint*>(ImmediateDataAddress(&cmd))));
794 SpecializedSetup<cmds::Uniform2ivImmediate, 0>(true); 794 SpecializedSetup<cmds::Uniform2ivImmediate, 0>(true);
795 GLint temp[2 * 2] = { 795 GLint temp[2 * 2] = {
796 0, 796 0,
797 }; 797 };
798 cmd.Init(1, 2, &temp[0]); 798 cmd.Init(1, 2, &temp[0]);
799 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 799 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
800 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 800 EXPECT_EQ(GL_NO_ERROR, GetGLError());
801 } 801 }
802 802
803 TEST_F(GLES2DecoderTest2, Uniform3fValidArgs) { 803 TEST_P(GLES2DecoderTest2, Uniform3fValidArgs) {
804 EXPECT_CALL(*gl_, Uniform3fv(1, 1, _)); 804 EXPECT_CALL(*gl_, Uniform3fv(1, 1, _));
805 SpecializedSetup<cmds::Uniform3f, 0>(true); 805 SpecializedSetup<cmds::Uniform3f, 0>(true);
806 cmds::Uniform3f cmd; 806 cmds::Uniform3f cmd;
807 cmd.Init(1, 2, 3, 4); 807 cmd.Init(1, 2, 3, 4);
808 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 808 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
809 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 809 EXPECT_EQ(GL_NO_ERROR, GetGLError());
810 } 810 }
811 811
812 TEST_F(GLES2DecoderTest2, Uniform3fvValidArgs) { 812 TEST_P(GLES2DecoderTest2, Uniform3fvValidArgs) {
813 EXPECT_CALL( 813 EXPECT_CALL(
814 *gl_, 814 *gl_,
815 Uniform3fv( 815 Uniform3fv(
816 1, 2, reinterpret_cast<const GLfloat*>(shared_memory_address_))); 816 1, 2, reinterpret_cast<const GLfloat*>(shared_memory_address_)));
817 SpecializedSetup<cmds::Uniform3fv, 0>(true); 817 SpecializedSetup<cmds::Uniform3fv, 0>(true);
818 cmds::Uniform3fv cmd; 818 cmds::Uniform3fv cmd;
819 cmd.Init(1, 2, shared_memory_id_, shared_memory_offset_); 819 cmd.Init(1, 2, shared_memory_id_, shared_memory_offset_);
820 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 820 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
821 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 821 EXPECT_EQ(GL_NO_ERROR, GetGLError());
822 } 822 }
823 823
824 TEST_F(GLES2DecoderTest2, Uniform3fvInvalidArgs1_0) { 824 TEST_P(GLES2DecoderTest2, Uniform3fvInvalidArgs1_0) {
825 EXPECT_CALL(*gl_, Uniform3fv(_, _, _)).Times(0); 825 EXPECT_CALL(*gl_, Uniform3fv(_, _, _)).Times(0);
826 SpecializedSetup<cmds::Uniform3fv, 0>(false); 826 SpecializedSetup<cmds::Uniform3fv, 0>(false);
827 cmds::Uniform3fv cmd; 827 cmds::Uniform3fv cmd;
828 cmd.Init(1, -1, shared_memory_id_, shared_memory_offset_); 828 cmd.Init(1, -1, shared_memory_id_, shared_memory_offset_);
829 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 829 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
830 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 830 EXPECT_EQ(GL_NO_ERROR, GetGLError());
831 } 831 }
832 832
833 TEST_F(GLES2DecoderTest2, Uniform3fvInvalidArgs2_0) { 833 TEST_P(GLES2DecoderTest2, Uniform3fvInvalidArgs2_0) {
834 EXPECT_CALL(*gl_, Uniform3fv(_, _, _)).Times(0); 834 EXPECT_CALL(*gl_, Uniform3fv(_, _, _)).Times(0);
835 SpecializedSetup<cmds::Uniform3fv, 0>(false); 835 SpecializedSetup<cmds::Uniform3fv, 0>(false);
836 cmds::Uniform3fv cmd; 836 cmds::Uniform3fv cmd;
837 cmd.Init(1, 2, kInvalidSharedMemoryId, 0); 837 cmd.Init(1, 2, kInvalidSharedMemoryId, 0);
838 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 838 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
839 } 839 }
840 840
841 TEST_F(GLES2DecoderTest2, Uniform3fvInvalidArgs2_1) { 841 TEST_P(GLES2DecoderTest2, Uniform3fvInvalidArgs2_1) {
842 EXPECT_CALL(*gl_, Uniform3fv(_, _, _)).Times(0); 842 EXPECT_CALL(*gl_, Uniform3fv(_, _, _)).Times(0);
843 SpecializedSetup<cmds::Uniform3fv, 0>(false); 843 SpecializedSetup<cmds::Uniform3fv, 0>(false);
844 cmds::Uniform3fv cmd; 844 cmds::Uniform3fv cmd;
845 cmd.Init(1, 2, shared_memory_id_, kInvalidSharedMemoryOffset); 845 cmd.Init(1, 2, shared_memory_id_, kInvalidSharedMemoryOffset);
846 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 846 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
847 } 847 }
848 848
849 TEST_F(GLES2DecoderTest2, Uniform3fvValidArgsCountTooLarge) { 849 TEST_P(GLES2DecoderTest2, Uniform3fvValidArgsCountTooLarge) {
850 EXPECT_CALL( 850 EXPECT_CALL(
851 *gl_, 851 *gl_,
852 Uniform3fv( 852 Uniform3fv(
853 3, 3, reinterpret_cast<const GLfloat*>(shared_memory_address_))); 853 3, 3, reinterpret_cast<const GLfloat*>(shared_memory_address_)));
854 SpecializedSetup<cmds::Uniform3fv, 0>(true); 854 SpecializedSetup<cmds::Uniform3fv, 0>(true);
855 cmds::Uniform3fv cmd; 855 cmds::Uniform3fv cmd;
856 cmd.Init(ProgramManager::MakeFakeLocation(1, 1), 856 cmd.Init(ProgramManager::MakeFakeLocation(1, 1),
857 5, 857 5,
858 shared_memory_id_, 858 shared_memory_id_,
859 shared_memory_offset_); 859 shared_memory_offset_);
860 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 860 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
861 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 861 EXPECT_EQ(GL_NO_ERROR, GetGLError());
862 } 862 }
863 863
864 TEST_F(GLES2DecoderTest2, Uniform3fvImmediateValidArgs) { 864 TEST_P(GLES2DecoderTest2, Uniform3fvImmediateValidArgs) {
865 cmds::Uniform3fvImmediate& cmd = *GetImmediateAs<cmds::Uniform3fvImmediate>(); 865 cmds::Uniform3fvImmediate& cmd = *GetImmediateAs<cmds::Uniform3fvImmediate>();
866 EXPECT_CALL( 866 EXPECT_CALL(
867 *gl_, 867 *gl_,
868 Uniform3fv(1, 2, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd)))); 868 Uniform3fv(1, 2, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd))));
869 SpecializedSetup<cmds::Uniform3fvImmediate, 0>(true); 869 SpecializedSetup<cmds::Uniform3fvImmediate, 0>(true);
870 GLfloat temp[3 * 2] = { 870 GLfloat temp[3 * 2] = {
871 0, 871 0,
872 }; 872 };
873 cmd.Init(1, 2, &temp[0]); 873 cmd.Init(1, 2, &temp[0]);
874 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 874 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
875 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 875 EXPECT_EQ(GL_NO_ERROR, GetGLError());
876 } 876 }
877 877
878 TEST_F(GLES2DecoderTest2, Uniform3iValidArgs) { 878 TEST_P(GLES2DecoderTest2, Uniform3iValidArgs) {
879 EXPECT_CALL(*gl_, Uniform3iv(1, 1, _)); 879 EXPECT_CALL(*gl_, Uniform3iv(1, 1, _));
880 SpecializedSetup<cmds::Uniform3i, 0>(true); 880 SpecializedSetup<cmds::Uniform3i, 0>(true);
881 cmds::Uniform3i cmd; 881 cmds::Uniform3i cmd;
882 cmd.Init(1, 2, 3, 4); 882 cmd.Init(1, 2, 3, 4);
883 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 883 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
884 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 884 EXPECT_EQ(GL_NO_ERROR, GetGLError());
885 } 885 }
886 886
887 TEST_F(GLES2DecoderTest2, Uniform3ivValidArgs) { 887 TEST_P(GLES2DecoderTest2, Uniform3ivValidArgs) {
888 EXPECT_CALL( 888 EXPECT_CALL(
889 *gl_, 889 *gl_,
890 Uniform3iv(1, 2, reinterpret_cast<const GLint*>(shared_memory_address_))); 890 Uniform3iv(1, 2, reinterpret_cast<const GLint*>(shared_memory_address_)));
891 SpecializedSetup<cmds::Uniform3iv, 0>(true); 891 SpecializedSetup<cmds::Uniform3iv, 0>(true);
892 cmds::Uniform3iv cmd; 892 cmds::Uniform3iv cmd;
893 cmd.Init(1, 2, shared_memory_id_, shared_memory_offset_); 893 cmd.Init(1, 2, shared_memory_id_, shared_memory_offset_);
894 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 894 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
895 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 895 EXPECT_EQ(GL_NO_ERROR, GetGLError());
896 } 896 }
897 897
898 TEST_F(GLES2DecoderTest2, Uniform3ivInvalidArgs1_0) { 898 TEST_P(GLES2DecoderTest2, Uniform3ivInvalidArgs1_0) {
899 EXPECT_CALL(*gl_, Uniform3iv(_, _, _)).Times(0); 899 EXPECT_CALL(*gl_, Uniform3iv(_, _, _)).Times(0);
900 SpecializedSetup<cmds::Uniform3iv, 0>(false); 900 SpecializedSetup<cmds::Uniform3iv, 0>(false);
901 cmds::Uniform3iv cmd; 901 cmds::Uniform3iv cmd;
902 cmd.Init(1, -1, shared_memory_id_, shared_memory_offset_); 902 cmd.Init(1, -1, shared_memory_id_, shared_memory_offset_);
903 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 903 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
904 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 904 EXPECT_EQ(GL_NO_ERROR, GetGLError());
905 } 905 }
906 906
907 TEST_F(GLES2DecoderTest2, Uniform3ivInvalidArgs2_0) { 907 TEST_P(GLES2DecoderTest2, Uniform3ivInvalidArgs2_0) {
908 EXPECT_CALL(*gl_, Uniform3iv(_, _, _)).Times(0); 908 EXPECT_CALL(*gl_, Uniform3iv(_, _, _)).Times(0);
909 SpecializedSetup<cmds::Uniform3iv, 0>(false); 909 SpecializedSetup<cmds::Uniform3iv, 0>(false);
910 cmds::Uniform3iv cmd; 910 cmds::Uniform3iv cmd;
911 cmd.Init(1, 2, kInvalidSharedMemoryId, 0); 911 cmd.Init(1, 2, kInvalidSharedMemoryId, 0);
912 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 912 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
913 } 913 }
914 914
915 TEST_F(GLES2DecoderTest2, Uniform3ivInvalidArgs2_1) { 915 TEST_P(GLES2DecoderTest2, Uniform3ivInvalidArgs2_1) {
916 EXPECT_CALL(*gl_, Uniform3iv(_, _, _)).Times(0); 916 EXPECT_CALL(*gl_, Uniform3iv(_, _, _)).Times(0);
917 SpecializedSetup<cmds::Uniform3iv, 0>(false); 917 SpecializedSetup<cmds::Uniform3iv, 0>(false);
918 cmds::Uniform3iv cmd; 918 cmds::Uniform3iv cmd;
919 cmd.Init(1, 2, shared_memory_id_, kInvalidSharedMemoryOffset); 919 cmd.Init(1, 2, shared_memory_id_, kInvalidSharedMemoryOffset);
920 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 920 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
921 } 921 }
922 922
923 TEST_F(GLES2DecoderTest2, Uniform3ivValidArgsCountTooLarge) { 923 TEST_P(GLES2DecoderTest2, Uniform3ivValidArgsCountTooLarge) {
924 EXPECT_CALL( 924 EXPECT_CALL(
925 *gl_, 925 *gl_,
926 Uniform3iv(3, 3, reinterpret_cast<const GLint*>(shared_memory_address_))); 926 Uniform3iv(3, 3, reinterpret_cast<const GLint*>(shared_memory_address_)));
927 SpecializedSetup<cmds::Uniform3iv, 0>(true); 927 SpecializedSetup<cmds::Uniform3iv, 0>(true);
928 cmds::Uniform3iv cmd; 928 cmds::Uniform3iv cmd;
929 cmd.Init(ProgramManager::MakeFakeLocation(1, 1), 929 cmd.Init(ProgramManager::MakeFakeLocation(1, 1),
930 5, 930 5,
931 shared_memory_id_, 931 shared_memory_id_,
932 shared_memory_offset_); 932 shared_memory_offset_);
933 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 933 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
934 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 934 EXPECT_EQ(GL_NO_ERROR, GetGLError());
935 } 935 }
936 936
937 TEST_F(GLES2DecoderTest2, Uniform3ivImmediateValidArgs) { 937 TEST_P(GLES2DecoderTest2, Uniform3ivImmediateValidArgs) {
938 cmds::Uniform3ivImmediate& cmd = *GetImmediateAs<cmds::Uniform3ivImmediate>(); 938 cmds::Uniform3ivImmediate& cmd = *GetImmediateAs<cmds::Uniform3ivImmediate>();
939 EXPECT_CALL( 939 EXPECT_CALL(
940 *gl_, 940 *gl_,
941 Uniform3iv(1, 2, reinterpret_cast<GLint*>(ImmediateDataAddress(&cmd)))); 941 Uniform3iv(1, 2, reinterpret_cast<GLint*>(ImmediateDataAddress(&cmd))));
942 SpecializedSetup<cmds::Uniform3ivImmediate, 0>(true); 942 SpecializedSetup<cmds::Uniform3ivImmediate, 0>(true);
943 GLint temp[3 * 2] = { 943 GLint temp[3 * 2] = {
944 0, 944 0,
945 }; 945 };
946 cmd.Init(1, 2, &temp[0]); 946 cmd.Init(1, 2, &temp[0]);
947 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 947 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
948 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 948 EXPECT_EQ(GL_NO_ERROR, GetGLError());
949 } 949 }
950 950
951 TEST_F(GLES2DecoderTest2, Uniform4fValidArgs) { 951 TEST_P(GLES2DecoderTest2, Uniform4fValidArgs) {
952 EXPECT_CALL(*gl_, Uniform4fv(1, 1, _)); 952 EXPECT_CALL(*gl_, Uniform4fv(1, 1, _));
953 SpecializedSetup<cmds::Uniform4f, 0>(true); 953 SpecializedSetup<cmds::Uniform4f, 0>(true);
954 cmds::Uniform4f cmd; 954 cmds::Uniform4f cmd;
955 cmd.Init(1, 2, 3, 4, 5); 955 cmd.Init(1, 2, 3, 4, 5);
956 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 956 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
957 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 957 EXPECT_EQ(GL_NO_ERROR, GetGLError());
958 } 958 }
959 959
960 TEST_F(GLES2DecoderTest2, Uniform4fvValidArgs) { 960 TEST_P(GLES2DecoderTest2, Uniform4fvValidArgs) {
961 EXPECT_CALL( 961 EXPECT_CALL(
962 *gl_, 962 *gl_,
963 Uniform4fv( 963 Uniform4fv(
964 1, 2, reinterpret_cast<const GLfloat*>(shared_memory_address_))); 964 1, 2, reinterpret_cast<const GLfloat*>(shared_memory_address_)));
965 SpecializedSetup<cmds::Uniform4fv, 0>(true); 965 SpecializedSetup<cmds::Uniform4fv, 0>(true);
966 cmds::Uniform4fv cmd; 966 cmds::Uniform4fv cmd;
967 cmd.Init(1, 2, shared_memory_id_, shared_memory_offset_); 967 cmd.Init(1, 2, shared_memory_id_, shared_memory_offset_);
968 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 968 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
969 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 969 EXPECT_EQ(GL_NO_ERROR, GetGLError());
970 } 970 }
971 971
972 TEST_F(GLES2DecoderTest2, Uniform4fvInvalidArgs1_0) { 972 TEST_P(GLES2DecoderTest2, Uniform4fvInvalidArgs1_0) {
973 EXPECT_CALL(*gl_, Uniform4fv(_, _, _)).Times(0); 973 EXPECT_CALL(*gl_, Uniform4fv(_, _, _)).Times(0);
974 SpecializedSetup<cmds::Uniform4fv, 0>(false); 974 SpecializedSetup<cmds::Uniform4fv, 0>(false);
975 cmds::Uniform4fv cmd; 975 cmds::Uniform4fv cmd;
976 cmd.Init(1, -1, shared_memory_id_, shared_memory_offset_); 976 cmd.Init(1, -1, shared_memory_id_, shared_memory_offset_);
977 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 977 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
978 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 978 EXPECT_EQ(GL_NO_ERROR, GetGLError());
979 } 979 }
980 980
981 TEST_F(GLES2DecoderTest2, Uniform4fvInvalidArgs2_0) { 981 TEST_P(GLES2DecoderTest2, Uniform4fvInvalidArgs2_0) {
982 EXPECT_CALL(*gl_, Uniform4fv(_, _, _)).Times(0); 982 EXPECT_CALL(*gl_, Uniform4fv(_, _, _)).Times(0);
983 SpecializedSetup<cmds::Uniform4fv, 0>(false); 983 SpecializedSetup<cmds::Uniform4fv, 0>(false);
984 cmds::Uniform4fv cmd; 984 cmds::Uniform4fv cmd;
985 cmd.Init(1, 2, kInvalidSharedMemoryId, 0); 985 cmd.Init(1, 2, kInvalidSharedMemoryId, 0);
986 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 986 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
987 } 987 }
988 988
989 TEST_F(GLES2DecoderTest2, Uniform4fvInvalidArgs2_1) { 989 TEST_P(GLES2DecoderTest2, Uniform4fvInvalidArgs2_1) {
990 EXPECT_CALL(*gl_, Uniform4fv(_, _, _)).Times(0); 990 EXPECT_CALL(*gl_, Uniform4fv(_, _, _)).Times(0);
991 SpecializedSetup<cmds::Uniform4fv, 0>(false); 991 SpecializedSetup<cmds::Uniform4fv, 0>(false);
992 cmds::Uniform4fv cmd; 992 cmds::Uniform4fv cmd;
993 cmd.Init(1, 2, shared_memory_id_, kInvalidSharedMemoryOffset); 993 cmd.Init(1, 2, shared_memory_id_, kInvalidSharedMemoryOffset);
994 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 994 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
995 } 995 }
996 996
997 TEST_F(GLES2DecoderTest2, Uniform4fvValidArgsCountTooLarge) { 997 TEST_P(GLES2DecoderTest2, Uniform4fvValidArgsCountTooLarge) {
998 EXPECT_CALL( 998 EXPECT_CALL(
999 *gl_, 999 *gl_,
1000 Uniform4fv( 1000 Uniform4fv(
1001 3, 3, reinterpret_cast<const GLfloat*>(shared_memory_address_))); 1001 3, 3, reinterpret_cast<const GLfloat*>(shared_memory_address_)));
1002 SpecializedSetup<cmds::Uniform4fv, 0>(true); 1002 SpecializedSetup<cmds::Uniform4fv, 0>(true);
1003 cmds::Uniform4fv cmd; 1003 cmds::Uniform4fv cmd;
1004 cmd.Init(ProgramManager::MakeFakeLocation(1, 1), 1004 cmd.Init(ProgramManager::MakeFakeLocation(1, 1),
1005 5, 1005 5,
1006 shared_memory_id_, 1006 shared_memory_id_,
1007 shared_memory_offset_); 1007 shared_memory_offset_);
1008 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1008 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1009 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1009 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1010 } 1010 }
1011 1011
1012 TEST_F(GLES2DecoderTest2, Uniform4fvImmediateValidArgs) { 1012 TEST_P(GLES2DecoderTest2, Uniform4fvImmediateValidArgs) {
1013 cmds::Uniform4fvImmediate& cmd = *GetImmediateAs<cmds::Uniform4fvImmediate>(); 1013 cmds::Uniform4fvImmediate& cmd = *GetImmediateAs<cmds::Uniform4fvImmediate>();
1014 EXPECT_CALL( 1014 EXPECT_CALL(
1015 *gl_, 1015 *gl_,
1016 Uniform4fv(1, 2, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd)))); 1016 Uniform4fv(1, 2, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd))));
1017 SpecializedSetup<cmds::Uniform4fvImmediate, 0>(true); 1017 SpecializedSetup<cmds::Uniform4fvImmediate, 0>(true);
1018 GLfloat temp[4 * 2] = { 1018 GLfloat temp[4 * 2] = {
1019 0, 1019 0,
1020 }; 1020 };
1021 cmd.Init(1, 2, &temp[0]); 1021 cmd.Init(1, 2, &temp[0]);
1022 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 1022 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
1023 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1023 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1024 } 1024 }
1025 1025
1026 TEST_F(GLES2DecoderTest2, Uniform4iValidArgs) { 1026 TEST_P(GLES2DecoderTest2, Uniform4iValidArgs) {
1027 EXPECT_CALL(*gl_, Uniform4iv(1, 1, _)); 1027 EXPECT_CALL(*gl_, Uniform4iv(1, 1, _));
1028 SpecializedSetup<cmds::Uniform4i, 0>(true); 1028 SpecializedSetup<cmds::Uniform4i, 0>(true);
1029 cmds::Uniform4i cmd; 1029 cmds::Uniform4i cmd;
1030 cmd.Init(1, 2, 3, 4, 5); 1030 cmd.Init(1, 2, 3, 4, 5);
1031 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1031 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1032 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1032 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1033 } 1033 }
1034 1034
1035 TEST_F(GLES2DecoderTest2, Uniform4ivValidArgs) { 1035 TEST_P(GLES2DecoderTest2, Uniform4ivValidArgs) {
1036 EXPECT_CALL( 1036 EXPECT_CALL(
1037 *gl_, 1037 *gl_,
1038 Uniform4iv(1, 2, reinterpret_cast<const GLint*>(shared_memory_address_))); 1038 Uniform4iv(1, 2, reinterpret_cast<const GLint*>(shared_memory_address_)));
1039 SpecializedSetup<cmds::Uniform4iv, 0>(true); 1039 SpecializedSetup<cmds::Uniform4iv, 0>(true);
1040 cmds::Uniform4iv cmd; 1040 cmds::Uniform4iv cmd;
1041 cmd.Init(1, 2, shared_memory_id_, shared_memory_offset_); 1041 cmd.Init(1, 2, shared_memory_id_, shared_memory_offset_);
1042 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1042 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1043 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1043 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1044 } 1044 }
1045 1045
1046 TEST_F(GLES2DecoderTest2, Uniform4ivInvalidArgs1_0) { 1046 TEST_P(GLES2DecoderTest2, Uniform4ivInvalidArgs1_0) {
1047 EXPECT_CALL(*gl_, Uniform4iv(_, _, _)).Times(0); 1047 EXPECT_CALL(*gl_, Uniform4iv(_, _, _)).Times(0);
1048 SpecializedSetup<cmds::Uniform4iv, 0>(false); 1048 SpecializedSetup<cmds::Uniform4iv, 0>(false);
1049 cmds::Uniform4iv cmd; 1049 cmds::Uniform4iv cmd;
1050 cmd.Init(1, -1, shared_memory_id_, shared_memory_offset_); 1050 cmd.Init(1, -1, shared_memory_id_, shared_memory_offset_);
1051 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1051 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1052 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1052 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1053 } 1053 }
1054 1054
1055 TEST_F(GLES2DecoderTest2, Uniform4ivInvalidArgs2_0) { 1055 TEST_P(GLES2DecoderTest2, Uniform4ivInvalidArgs2_0) {
1056 EXPECT_CALL(*gl_, Uniform4iv(_, _, _)).Times(0); 1056 EXPECT_CALL(*gl_, Uniform4iv(_, _, _)).Times(0);
1057 SpecializedSetup<cmds::Uniform4iv, 0>(false); 1057 SpecializedSetup<cmds::Uniform4iv, 0>(false);
1058 cmds::Uniform4iv cmd; 1058 cmds::Uniform4iv cmd;
1059 cmd.Init(1, 2, kInvalidSharedMemoryId, 0); 1059 cmd.Init(1, 2, kInvalidSharedMemoryId, 0);
1060 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1060 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1061 } 1061 }
1062 1062
1063 TEST_F(GLES2DecoderTest2, Uniform4ivInvalidArgs2_1) { 1063 TEST_P(GLES2DecoderTest2, Uniform4ivInvalidArgs2_1) {
1064 EXPECT_CALL(*gl_, Uniform4iv(_, _, _)).Times(0); 1064 EXPECT_CALL(*gl_, Uniform4iv(_, _, _)).Times(0);
1065 SpecializedSetup<cmds::Uniform4iv, 0>(false); 1065 SpecializedSetup<cmds::Uniform4iv, 0>(false);
1066 cmds::Uniform4iv cmd; 1066 cmds::Uniform4iv cmd;
1067 cmd.Init(1, 2, shared_memory_id_, kInvalidSharedMemoryOffset); 1067 cmd.Init(1, 2, shared_memory_id_, kInvalidSharedMemoryOffset);
1068 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1068 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1069 } 1069 }
1070 1070
1071 TEST_F(GLES2DecoderTest2, Uniform4ivValidArgsCountTooLarge) { 1071 TEST_P(GLES2DecoderTest2, Uniform4ivValidArgsCountTooLarge) {
1072 EXPECT_CALL( 1072 EXPECT_CALL(
1073 *gl_, 1073 *gl_,
1074 Uniform4iv(3, 3, reinterpret_cast<const GLint*>(shared_memory_address_))); 1074 Uniform4iv(3, 3, reinterpret_cast<const GLint*>(shared_memory_address_)));
1075 SpecializedSetup<cmds::Uniform4iv, 0>(true); 1075 SpecializedSetup<cmds::Uniform4iv, 0>(true);
1076 cmds::Uniform4iv cmd; 1076 cmds::Uniform4iv cmd;
1077 cmd.Init(ProgramManager::MakeFakeLocation(1, 1), 1077 cmd.Init(ProgramManager::MakeFakeLocation(1, 1),
1078 5, 1078 5,
1079 shared_memory_id_, 1079 shared_memory_id_,
1080 shared_memory_offset_); 1080 shared_memory_offset_);
1081 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1081 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1082 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1082 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1083 } 1083 }
1084 1084
1085 TEST_F(GLES2DecoderTest2, Uniform4ivImmediateValidArgs) { 1085 TEST_P(GLES2DecoderTest2, Uniform4ivImmediateValidArgs) {
1086 cmds::Uniform4ivImmediate& cmd = *GetImmediateAs<cmds::Uniform4ivImmediate>(); 1086 cmds::Uniform4ivImmediate& cmd = *GetImmediateAs<cmds::Uniform4ivImmediate>();
1087 EXPECT_CALL( 1087 EXPECT_CALL(
1088 *gl_, 1088 *gl_,
1089 Uniform4iv(1, 2, reinterpret_cast<GLint*>(ImmediateDataAddress(&cmd)))); 1089 Uniform4iv(1, 2, reinterpret_cast<GLint*>(ImmediateDataAddress(&cmd))));
1090 SpecializedSetup<cmds::Uniform4ivImmediate, 0>(true); 1090 SpecializedSetup<cmds::Uniform4ivImmediate, 0>(true);
1091 GLint temp[4 * 2] = { 1091 GLint temp[4 * 2] = {
1092 0, 1092 0,
1093 }; 1093 };
1094 cmd.Init(1, 2, &temp[0]); 1094 cmd.Init(1, 2, &temp[0]);
1095 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 1095 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
1096 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1096 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1097 } 1097 }
1098 1098
1099 TEST_F(GLES2DecoderTest2, UniformMatrix2fvValidArgs) { 1099 TEST_P(GLES2DecoderTest2, UniformMatrix2fvValidArgs) {
1100 EXPECT_CALL(*gl_, 1100 EXPECT_CALL(*gl_,
1101 UniformMatrix2fv( 1101 UniformMatrix2fv(
1102 1, 1102 1,
1103 2, 1103 2,
1104 false, 1104 false,
1105 reinterpret_cast<const GLfloat*>(shared_memory_address_))); 1105 reinterpret_cast<const GLfloat*>(shared_memory_address_)));
1106 SpecializedSetup<cmds::UniformMatrix2fv, 0>(true); 1106 SpecializedSetup<cmds::UniformMatrix2fv, 0>(true);
1107 cmds::UniformMatrix2fv cmd; 1107 cmds::UniformMatrix2fv cmd;
1108 cmd.Init(1, 2, false, shared_memory_id_, shared_memory_offset_); 1108 cmd.Init(1, 2, false, shared_memory_id_, shared_memory_offset_);
1109 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1109 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1110 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1110 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1111 } 1111 }
1112 1112
1113 TEST_F(GLES2DecoderTest2, UniformMatrix2fvInvalidArgs1_0) { 1113 TEST_P(GLES2DecoderTest2, UniformMatrix2fvInvalidArgs1_0) {
1114 EXPECT_CALL(*gl_, UniformMatrix2fv(_, _, _, _)).Times(0); 1114 EXPECT_CALL(*gl_, UniformMatrix2fv(_, _, _, _)).Times(0);
1115 SpecializedSetup<cmds::UniformMatrix2fv, 0>(false); 1115 SpecializedSetup<cmds::UniformMatrix2fv, 0>(false);
1116 cmds::UniformMatrix2fv cmd; 1116 cmds::UniformMatrix2fv cmd;
1117 cmd.Init(1, -1, false, shared_memory_id_, shared_memory_offset_); 1117 cmd.Init(1, -1, false, shared_memory_id_, shared_memory_offset_);
1118 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1118 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1119 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1119 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1120 } 1120 }
1121 1121
1122 TEST_F(GLES2DecoderTest2, UniformMatrix2fvInvalidArgs2_0) { 1122 TEST_P(GLES2DecoderTest2, UniformMatrix2fvInvalidArgs2_0) {
1123 EXPECT_CALL(*gl_, UniformMatrix2fv(_, _, _, _)).Times(0); 1123 EXPECT_CALL(*gl_, UniformMatrix2fv(_, _, _, _)).Times(0);
1124 SpecializedSetup<cmds::UniformMatrix2fv, 0>(false); 1124 SpecializedSetup<cmds::UniformMatrix2fv, 0>(false);
1125 cmds::UniformMatrix2fv cmd; 1125 cmds::UniformMatrix2fv cmd;
1126 cmd.Init(1, 2, true, shared_memory_id_, shared_memory_offset_); 1126 cmd.Init(1, 2, true, shared_memory_id_, shared_memory_offset_);
1127 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1127 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1128 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 1128 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
1129 } 1129 }
1130 1130
1131 TEST_F(GLES2DecoderTest2, UniformMatrix2fvInvalidArgs3_0) { 1131 TEST_P(GLES2DecoderTest2, UniformMatrix2fvInvalidArgs3_0) {
1132 EXPECT_CALL(*gl_, UniformMatrix2fv(_, _, _, _)).Times(0); 1132 EXPECT_CALL(*gl_, UniformMatrix2fv(_, _, _, _)).Times(0);
1133 SpecializedSetup<cmds::UniformMatrix2fv, 0>(false); 1133 SpecializedSetup<cmds::UniformMatrix2fv, 0>(false);
1134 cmds::UniformMatrix2fv cmd; 1134 cmds::UniformMatrix2fv cmd;
1135 cmd.Init(1, 2, false, kInvalidSharedMemoryId, 0); 1135 cmd.Init(1, 2, false, kInvalidSharedMemoryId, 0);
1136 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1136 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1137 } 1137 }
1138 1138
1139 TEST_F(GLES2DecoderTest2, UniformMatrix2fvInvalidArgs3_1) { 1139 TEST_P(GLES2DecoderTest2, UniformMatrix2fvInvalidArgs3_1) {
1140 EXPECT_CALL(*gl_, UniformMatrix2fv(_, _, _, _)).Times(0); 1140 EXPECT_CALL(*gl_, UniformMatrix2fv(_, _, _, _)).Times(0);
1141 SpecializedSetup<cmds::UniformMatrix2fv, 0>(false); 1141 SpecializedSetup<cmds::UniformMatrix2fv, 0>(false);
1142 cmds::UniformMatrix2fv cmd; 1142 cmds::UniformMatrix2fv cmd;
1143 cmd.Init(1, 2, false, shared_memory_id_, kInvalidSharedMemoryOffset); 1143 cmd.Init(1, 2, false, shared_memory_id_, kInvalidSharedMemoryOffset);
1144 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1144 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1145 } 1145 }
1146 1146
1147 TEST_F(GLES2DecoderTest2, UniformMatrix2fvValidArgsCountTooLarge) { 1147 TEST_P(GLES2DecoderTest2, UniformMatrix2fvValidArgsCountTooLarge) {
1148 EXPECT_CALL(*gl_, 1148 EXPECT_CALL(*gl_,
1149 UniformMatrix2fv( 1149 UniformMatrix2fv(
1150 3, 1150 3,
1151 3, 1151 3,
1152 false, 1152 false,
1153 reinterpret_cast<const GLfloat*>(shared_memory_address_))); 1153 reinterpret_cast<const GLfloat*>(shared_memory_address_)));
1154 SpecializedSetup<cmds::UniformMatrix2fv, 0>(true); 1154 SpecializedSetup<cmds::UniformMatrix2fv, 0>(true);
1155 cmds::UniformMatrix2fv cmd; 1155 cmds::UniformMatrix2fv cmd;
1156 cmd.Init(ProgramManager::MakeFakeLocation(1, 1), 1156 cmd.Init(ProgramManager::MakeFakeLocation(1, 1),
1157 5, 1157 5,
1158 false, 1158 false,
1159 shared_memory_id_, 1159 shared_memory_id_,
1160 shared_memory_offset_); 1160 shared_memory_offset_);
1161 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1161 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1162 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1162 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1163 } 1163 }
1164 1164
1165 TEST_F(GLES2DecoderTest2, UniformMatrix2fvImmediateValidArgs) { 1165 TEST_P(GLES2DecoderTest2, UniformMatrix2fvImmediateValidArgs) {
1166 cmds::UniformMatrix2fvImmediate& cmd = 1166 cmds::UniformMatrix2fvImmediate& cmd =
1167 *GetImmediateAs<cmds::UniformMatrix2fvImmediate>(); 1167 *GetImmediateAs<cmds::UniformMatrix2fvImmediate>();
1168 EXPECT_CALL( 1168 EXPECT_CALL(
1169 *gl_, 1169 *gl_,
1170 UniformMatrix2fv( 1170 UniformMatrix2fv(
1171 1, 2, false, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd)))); 1171 1, 2, false, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd))));
1172 SpecializedSetup<cmds::UniformMatrix2fvImmediate, 0>(true); 1172 SpecializedSetup<cmds::UniformMatrix2fvImmediate, 0>(true);
1173 GLfloat temp[4 * 2] = { 1173 GLfloat temp[4 * 2] = {
1174 0, 1174 0,
1175 }; 1175 };
1176 cmd.Init(1, 2, false, &temp[0]); 1176 cmd.Init(1, 2, false, &temp[0]);
1177 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 1177 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
1178 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1178 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1179 } 1179 }
1180 1180
1181 TEST_F(GLES2DecoderTest2, UniformMatrix2fvImmediateInvalidArgs2_0) { 1181 TEST_P(GLES2DecoderTest2, UniformMatrix2fvImmediateInvalidArgs2_0) {
1182 cmds::UniformMatrix2fvImmediate& cmd = 1182 cmds::UniformMatrix2fvImmediate& cmd =
1183 *GetImmediateAs<cmds::UniformMatrix2fvImmediate>(); 1183 *GetImmediateAs<cmds::UniformMatrix2fvImmediate>();
1184 EXPECT_CALL(*gl_, UniformMatrix2fv(_, _, _, _)).Times(0); 1184 EXPECT_CALL(*gl_, UniformMatrix2fv(_, _, _, _)).Times(0);
1185 SpecializedSetup<cmds::UniformMatrix2fvImmediate, 0>(false); 1185 SpecializedSetup<cmds::UniformMatrix2fvImmediate, 0>(false);
1186 GLfloat temp[4 * 2] = { 1186 GLfloat temp[4 * 2] = {
1187 0, 1187 0,
1188 }; 1188 };
1189 cmd.Init(1, 2, true, &temp[0]); 1189 cmd.Init(1, 2, true, &temp[0]);
1190 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 1190 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
1191 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 1191 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
1192 } 1192 }
1193 1193
1194 TEST_F(GLES2DecoderTest2, UniformMatrix3fvValidArgs) { 1194 TEST_P(GLES2DecoderTest2, UniformMatrix3fvValidArgs) {
1195 EXPECT_CALL(*gl_, 1195 EXPECT_CALL(*gl_,
1196 UniformMatrix3fv( 1196 UniformMatrix3fv(
1197 1, 1197 1,
1198 2, 1198 2,
1199 false, 1199 false,
1200 reinterpret_cast<const GLfloat*>(shared_memory_address_))); 1200 reinterpret_cast<const GLfloat*>(shared_memory_address_)));
1201 SpecializedSetup<cmds::UniformMatrix3fv, 0>(true); 1201 SpecializedSetup<cmds::UniformMatrix3fv, 0>(true);
1202 cmds::UniformMatrix3fv cmd; 1202 cmds::UniformMatrix3fv cmd;
1203 cmd.Init(1, 2, false, shared_memory_id_, shared_memory_offset_); 1203 cmd.Init(1, 2, false, shared_memory_id_, shared_memory_offset_);
1204 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1204 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1205 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1205 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1206 } 1206 }
1207 1207
1208 TEST_F(GLES2DecoderTest2, UniformMatrix3fvInvalidArgs1_0) { 1208 TEST_P(GLES2DecoderTest2, UniformMatrix3fvInvalidArgs1_0) {
1209 EXPECT_CALL(*gl_, UniformMatrix3fv(_, _, _, _)).Times(0); 1209 EXPECT_CALL(*gl_, UniformMatrix3fv(_, _, _, _)).Times(0);
1210 SpecializedSetup<cmds::UniformMatrix3fv, 0>(false); 1210 SpecializedSetup<cmds::UniformMatrix3fv, 0>(false);
1211 cmds::UniformMatrix3fv cmd; 1211 cmds::UniformMatrix3fv cmd;
1212 cmd.Init(1, -1, false, shared_memory_id_, shared_memory_offset_); 1212 cmd.Init(1, -1, false, shared_memory_id_, shared_memory_offset_);
1213 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1213 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1214 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1214 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1215 } 1215 }
1216 1216
1217 TEST_F(GLES2DecoderTest2, UniformMatrix3fvInvalidArgs2_0) { 1217 TEST_P(GLES2DecoderTest2, UniformMatrix3fvInvalidArgs2_0) {
1218 EXPECT_CALL(*gl_, UniformMatrix3fv(_, _, _, _)).Times(0); 1218 EXPECT_CALL(*gl_, UniformMatrix3fv(_, _, _, _)).Times(0);
1219 SpecializedSetup<cmds::UniformMatrix3fv, 0>(false); 1219 SpecializedSetup<cmds::UniformMatrix3fv, 0>(false);
1220 cmds::UniformMatrix3fv cmd; 1220 cmds::UniformMatrix3fv cmd;
1221 cmd.Init(1, 2, true, shared_memory_id_, shared_memory_offset_); 1221 cmd.Init(1, 2, true, shared_memory_id_, shared_memory_offset_);
1222 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1222 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1223 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 1223 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
1224 } 1224 }
1225 1225
1226 TEST_F(GLES2DecoderTest2, UniformMatrix3fvInvalidArgs3_0) { 1226 TEST_P(GLES2DecoderTest2, UniformMatrix3fvInvalidArgs3_0) {
1227 EXPECT_CALL(*gl_, UniformMatrix3fv(_, _, _, _)).Times(0); 1227 EXPECT_CALL(*gl_, UniformMatrix3fv(_, _, _, _)).Times(0);
1228 SpecializedSetup<cmds::UniformMatrix3fv, 0>(false); 1228 SpecializedSetup<cmds::UniformMatrix3fv, 0>(false);
1229 cmds::UniformMatrix3fv cmd; 1229 cmds::UniformMatrix3fv cmd;
1230 cmd.Init(1, 2, false, kInvalidSharedMemoryId, 0); 1230 cmd.Init(1, 2, false, kInvalidSharedMemoryId, 0);
1231 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1231 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1232 } 1232 }
1233 1233
1234 TEST_F(GLES2DecoderTest2, UniformMatrix3fvInvalidArgs3_1) { 1234 TEST_P(GLES2DecoderTest2, UniformMatrix3fvInvalidArgs3_1) {
1235 EXPECT_CALL(*gl_, UniformMatrix3fv(_, _, _, _)).Times(0); 1235 EXPECT_CALL(*gl_, UniformMatrix3fv(_, _, _, _)).Times(0);
1236 SpecializedSetup<cmds::UniformMatrix3fv, 0>(false); 1236 SpecializedSetup<cmds::UniformMatrix3fv, 0>(false);
1237 cmds::UniformMatrix3fv cmd; 1237 cmds::UniformMatrix3fv cmd;
1238 cmd.Init(1, 2, false, shared_memory_id_, kInvalidSharedMemoryOffset); 1238 cmd.Init(1, 2, false, shared_memory_id_, kInvalidSharedMemoryOffset);
1239 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1239 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1240 } 1240 }
1241 1241
1242 TEST_F(GLES2DecoderTest2, UniformMatrix3fvValidArgsCountTooLarge) { 1242 TEST_P(GLES2DecoderTest2, UniformMatrix3fvValidArgsCountTooLarge) {
1243 EXPECT_CALL(*gl_, 1243 EXPECT_CALL(*gl_,
1244 UniformMatrix3fv( 1244 UniformMatrix3fv(
1245 3, 1245 3,
1246 3, 1246 3,
1247 false, 1247 false,
1248 reinterpret_cast<const GLfloat*>(shared_memory_address_))); 1248 reinterpret_cast<const GLfloat*>(shared_memory_address_)));
1249 SpecializedSetup<cmds::UniformMatrix3fv, 0>(true); 1249 SpecializedSetup<cmds::UniformMatrix3fv, 0>(true);
1250 cmds::UniformMatrix3fv cmd; 1250 cmds::UniformMatrix3fv cmd;
1251 cmd.Init(ProgramManager::MakeFakeLocation(1, 1), 1251 cmd.Init(ProgramManager::MakeFakeLocation(1, 1),
1252 5, 1252 5,
1253 false, 1253 false,
1254 shared_memory_id_, 1254 shared_memory_id_,
1255 shared_memory_offset_); 1255 shared_memory_offset_);
1256 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1256 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1257 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1257 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1258 } 1258 }
1259 1259
1260 TEST_F(GLES2DecoderTest2, UniformMatrix3fvImmediateValidArgs) { 1260 TEST_P(GLES2DecoderTest2, UniformMatrix3fvImmediateValidArgs) {
1261 cmds::UniformMatrix3fvImmediate& cmd = 1261 cmds::UniformMatrix3fvImmediate& cmd =
1262 *GetImmediateAs<cmds::UniformMatrix3fvImmediate>(); 1262 *GetImmediateAs<cmds::UniformMatrix3fvImmediate>();
1263 EXPECT_CALL( 1263 EXPECT_CALL(
1264 *gl_, 1264 *gl_,
1265 UniformMatrix3fv( 1265 UniformMatrix3fv(
1266 1, 2, false, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd)))); 1266 1, 2, false, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd))));
1267 SpecializedSetup<cmds::UniformMatrix3fvImmediate, 0>(true); 1267 SpecializedSetup<cmds::UniformMatrix3fvImmediate, 0>(true);
1268 GLfloat temp[9 * 2] = { 1268 GLfloat temp[9 * 2] = {
1269 0, 1269 0,
1270 }; 1270 };
1271 cmd.Init(1, 2, false, &temp[0]); 1271 cmd.Init(1, 2, false, &temp[0]);
1272 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 1272 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
1273 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1273 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1274 } 1274 }
1275 1275
1276 TEST_F(GLES2DecoderTest2, UniformMatrix3fvImmediateInvalidArgs2_0) { 1276 TEST_P(GLES2DecoderTest2, UniformMatrix3fvImmediateInvalidArgs2_0) {
1277 cmds::UniformMatrix3fvImmediate& cmd = 1277 cmds::UniformMatrix3fvImmediate& cmd =
1278 *GetImmediateAs<cmds::UniformMatrix3fvImmediate>(); 1278 *GetImmediateAs<cmds::UniformMatrix3fvImmediate>();
1279 EXPECT_CALL(*gl_, UniformMatrix3fv(_, _, _, _)).Times(0); 1279 EXPECT_CALL(*gl_, UniformMatrix3fv(_, _, _, _)).Times(0);
1280 SpecializedSetup<cmds::UniformMatrix3fvImmediate, 0>(false); 1280 SpecializedSetup<cmds::UniformMatrix3fvImmediate, 0>(false);
1281 GLfloat temp[9 * 2] = { 1281 GLfloat temp[9 * 2] = {
1282 0, 1282 0,
1283 }; 1283 };
1284 cmd.Init(1, 2, true, &temp[0]); 1284 cmd.Init(1, 2, true, &temp[0]);
1285 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 1285 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
1286 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 1286 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
1287 } 1287 }
1288 1288
1289 TEST_F(GLES2DecoderTest2, UniformMatrix4fvValidArgs) { 1289 TEST_P(GLES2DecoderTest2, UniformMatrix4fvValidArgs) {
1290 EXPECT_CALL(*gl_, 1290 EXPECT_CALL(*gl_,
1291 UniformMatrix4fv( 1291 UniformMatrix4fv(
1292 1, 1292 1,
1293 2, 1293 2,
1294 false, 1294 false,
1295 reinterpret_cast<const GLfloat*>(shared_memory_address_))); 1295 reinterpret_cast<const GLfloat*>(shared_memory_address_)));
1296 SpecializedSetup<cmds::UniformMatrix4fv, 0>(true); 1296 SpecializedSetup<cmds::UniformMatrix4fv, 0>(true);
1297 cmds::UniformMatrix4fv cmd; 1297 cmds::UniformMatrix4fv cmd;
1298 cmd.Init(1, 2, false, shared_memory_id_, shared_memory_offset_); 1298 cmd.Init(1, 2, false, shared_memory_id_, shared_memory_offset_);
1299 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1299 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1300 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1300 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1301 } 1301 }
1302 1302
1303 TEST_F(GLES2DecoderTest2, UniformMatrix4fvInvalidArgs1_0) { 1303 TEST_P(GLES2DecoderTest2, UniformMatrix4fvInvalidArgs1_0) {
1304 EXPECT_CALL(*gl_, UniformMatrix4fv(_, _, _, _)).Times(0); 1304 EXPECT_CALL(*gl_, UniformMatrix4fv(_, _, _, _)).Times(0);
1305 SpecializedSetup<cmds::UniformMatrix4fv, 0>(false); 1305 SpecializedSetup<cmds::UniformMatrix4fv, 0>(false);
1306 cmds::UniformMatrix4fv cmd; 1306 cmds::UniformMatrix4fv cmd;
1307 cmd.Init(1, -1, false, shared_memory_id_, shared_memory_offset_); 1307 cmd.Init(1, -1, false, shared_memory_id_, shared_memory_offset_);
1308 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1308 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1309 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1309 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1310 } 1310 }
1311 1311
1312 TEST_F(GLES2DecoderTest2, UniformMatrix4fvInvalidArgs2_0) { 1312 TEST_P(GLES2DecoderTest2, UniformMatrix4fvInvalidArgs2_0) {
1313 EXPECT_CALL(*gl_, UniformMatrix4fv(_, _, _, _)).Times(0); 1313 EXPECT_CALL(*gl_, UniformMatrix4fv(_, _, _, _)).Times(0);
1314 SpecializedSetup<cmds::UniformMatrix4fv, 0>(false); 1314 SpecializedSetup<cmds::UniformMatrix4fv, 0>(false);
1315 cmds::UniformMatrix4fv cmd; 1315 cmds::UniformMatrix4fv cmd;
1316 cmd.Init(1, 2, true, shared_memory_id_, shared_memory_offset_); 1316 cmd.Init(1, 2, true, shared_memory_id_, shared_memory_offset_);
1317 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1317 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1318 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 1318 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
1319 } 1319 }
1320 1320
1321 TEST_F(GLES2DecoderTest2, UniformMatrix4fvInvalidArgs3_0) { 1321 TEST_P(GLES2DecoderTest2, UniformMatrix4fvInvalidArgs3_0) {
1322 EXPECT_CALL(*gl_, UniformMatrix4fv(_, _, _, _)).Times(0); 1322 EXPECT_CALL(*gl_, UniformMatrix4fv(_, _, _, _)).Times(0);
1323 SpecializedSetup<cmds::UniformMatrix4fv, 0>(false); 1323 SpecializedSetup<cmds::UniformMatrix4fv, 0>(false);
1324 cmds::UniformMatrix4fv cmd; 1324 cmds::UniformMatrix4fv cmd;
1325 cmd.Init(1, 2, false, kInvalidSharedMemoryId, 0); 1325 cmd.Init(1, 2, false, kInvalidSharedMemoryId, 0);
1326 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1326 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1327 } 1327 }
1328 1328
1329 TEST_F(GLES2DecoderTest2, UniformMatrix4fvInvalidArgs3_1) { 1329 TEST_P(GLES2DecoderTest2, UniformMatrix4fvInvalidArgs3_1) {
1330 EXPECT_CALL(*gl_, UniformMatrix4fv(_, _, _, _)).Times(0); 1330 EXPECT_CALL(*gl_, UniformMatrix4fv(_, _, _, _)).Times(0);
1331 SpecializedSetup<cmds::UniformMatrix4fv, 0>(false); 1331 SpecializedSetup<cmds::UniformMatrix4fv, 0>(false);
1332 cmds::UniformMatrix4fv cmd; 1332 cmds::UniformMatrix4fv cmd;
1333 cmd.Init(1, 2, false, shared_memory_id_, kInvalidSharedMemoryOffset); 1333 cmd.Init(1, 2, false, shared_memory_id_, kInvalidSharedMemoryOffset);
1334 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1334 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1335 } 1335 }
1336 1336
1337 TEST_F(GLES2DecoderTest2, UniformMatrix4fvValidArgsCountTooLarge) { 1337 TEST_P(GLES2DecoderTest2, UniformMatrix4fvValidArgsCountTooLarge) {
1338 EXPECT_CALL(*gl_, 1338 EXPECT_CALL(*gl_,
1339 UniformMatrix4fv( 1339 UniformMatrix4fv(
1340 3, 1340 3,
1341 3, 1341 3,
1342 false, 1342 false,
1343 reinterpret_cast<const GLfloat*>(shared_memory_address_))); 1343 reinterpret_cast<const GLfloat*>(shared_memory_address_)));
1344 SpecializedSetup<cmds::UniformMatrix4fv, 0>(true); 1344 SpecializedSetup<cmds::UniformMatrix4fv, 0>(true);
1345 cmds::UniformMatrix4fv cmd; 1345 cmds::UniformMatrix4fv cmd;
1346 cmd.Init(ProgramManager::MakeFakeLocation(1, 1), 1346 cmd.Init(ProgramManager::MakeFakeLocation(1, 1),
1347 5, 1347 5,
1348 false, 1348 false,
1349 shared_memory_id_, 1349 shared_memory_id_,
1350 shared_memory_offset_); 1350 shared_memory_offset_);
1351 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1351 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1352 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1352 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1353 } 1353 }
1354 1354
1355 TEST_F(GLES2DecoderTest2, UniformMatrix4fvImmediateValidArgs) { 1355 TEST_P(GLES2DecoderTest2, UniformMatrix4fvImmediateValidArgs) {
1356 cmds::UniformMatrix4fvImmediate& cmd = 1356 cmds::UniformMatrix4fvImmediate& cmd =
1357 *GetImmediateAs<cmds::UniformMatrix4fvImmediate>(); 1357 *GetImmediateAs<cmds::UniformMatrix4fvImmediate>();
1358 EXPECT_CALL( 1358 EXPECT_CALL(
1359 *gl_, 1359 *gl_,
1360 UniformMatrix4fv( 1360 UniformMatrix4fv(
1361 1, 2, false, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd)))); 1361 1, 2, false, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd))));
1362 SpecializedSetup<cmds::UniformMatrix4fvImmediate, 0>(true); 1362 SpecializedSetup<cmds::UniformMatrix4fvImmediate, 0>(true);
1363 GLfloat temp[16 * 2] = { 1363 GLfloat temp[16 * 2] = {
1364 0, 1364 0,
1365 }; 1365 };
1366 cmd.Init(1, 2, false, &temp[0]); 1366 cmd.Init(1, 2, false, &temp[0]);
1367 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 1367 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
1368 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1368 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1369 } 1369 }
1370 1370
1371 TEST_F(GLES2DecoderTest2, UniformMatrix4fvImmediateInvalidArgs2_0) { 1371 TEST_P(GLES2DecoderTest2, UniformMatrix4fvImmediateInvalidArgs2_0) {
1372 cmds::UniformMatrix4fvImmediate& cmd = 1372 cmds::UniformMatrix4fvImmediate& cmd =
1373 *GetImmediateAs<cmds::UniformMatrix4fvImmediate>(); 1373 *GetImmediateAs<cmds::UniformMatrix4fvImmediate>();
1374 EXPECT_CALL(*gl_, UniformMatrix4fv(_, _, _, _)).Times(0); 1374 EXPECT_CALL(*gl_, UniformMatrix4fv(_, _, _, _)).Times(0);
1375 SpecializedSetup<cmds::UniformMatrix4fvImmediate, 0>(false); 1375 SpecializedSetup<cmds::UniformMatrix4fvImmediate, 0>(false);
1376 GLfloat temp[16 * 2] = { 1376 GLfloat temp[16 * 2] = {
1377 0, 1377 0,
1378 }; 1378 };
1379 cmd.Init(1, 2, true, &temp[0]); 1379 cmd.Init(1, 2, true, &temp[0]);
1380 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 1380 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
1381 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 1381 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
1382 } 1382 }
1383 1383
1384 TEST_F(GLES2DecoderTest2, UseProgramValidArgs) { 1384 TEST_P(GLES2DecoderTest2, UseProgramValidArgs) {
1385 EXPECT_CALL(*gl_, UseProgram(kServiceProgramId)); 1385 EXPECT_CALL(*gl_, UseProgram(kServiceProgramId));
1386 SpecializedSetup<cmds::UseProgram, 0>(true); 1386 SpecializedSetup<cmds::UseProgram, 0>(true);
1387 cmds::UseProgram cmd; 1387 cmds::UseProgram cmd;
1388 cmd.Init(client_program_id_); 1388 cmd.Init(client_program_id_);
1389 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1389 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1390 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1390 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1391 } 1391 }
1392 1392
1393 TEST_F(GLES2DecoderTest2, UseProgramInvalidArgs0_0) { 1393 TEST_P(GLES2DecoderTest2, UseProgramInvalidArgs0_0) {
1394 EXPECT_CALL(*gl_, UseProgram(_)).Times(0); 1394 EXPECT_CALL(*gl_, UseProgram(_)).Times(0);
1395 SpecializedSetup<cmds::UseProgram, 0>(false); 1395 SpecializedSetup<cmds::UseProgram, 0>(false);
1396 cmds::UseProgram cmd; 1396 cmds::UseProgram cmd;
1397 cmd.Init(kInvalidClientId); 1397 cmd.Init(kInvalidClientId);
1398 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1398 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1399 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 1399 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
1400 } 1400 }
1401 1401
1402 TEST_F(GLES2DecoderTest2, ValidateProgramValidArgs) { 1402 TEST_P(GLES2DecoderTest2, ValidateProgramValidArgs) {
1403 EXPECT_CALL(*gl_, ValidateProgram(kServiceProgramId)); 1403 EXPECT_CALL(*gl_, ValidateProgram(kServiceProgramId));
1404 SpecializedSetup<cmds::ValidateProgram, 0>(true); 1404 SpecializedSetup<cmds::ValidateProgram, 0>(true);
1405 cmds::ValidateProgram cmd; 1405 cmds::ValidateProgram cmd;
1406 cmd.Init(client_program_id_); 1406 cmd.Init(client_program_id_);
1407 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1407 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1408 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1408 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1409 } 1409 }
1410 1410
1411 TEST_F(GLES2DecoderTest2, VertexAttrib1fValidArgs) { 1411 TEST_P(GLES2DecoderTest2, VertexAttrib1fValidArgs) {
1412 EXPECT_CALL(*gl_, VertexAttrib1f(1, 2)); 1412 EXPECT_CALL(*gl_, VertexAttrib1f(1, 2));
1413 SpecializedSetup<cmds::VertexAttrib1f, 0>(true); 1413 SpecializedSetup<cmds::VertexAttrib1f, 0>(true);
1414 cmds::VertexAttrib1f cmd; 1414 cmds::VertexAttrib1f cmd;
1415 cmd.Init(1, 2); 1415 cmd.Init(1, 2);
1416 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1416 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1417 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1417 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1418 } 1418 }
1419 1419
1420 TEST_F(GLES2DecoderTest2, VertexAttrib1fvValidArgs) { 1420 TEST_P(GLES2DecoderTest2, VertexAttrib1fvValidArgs) {
1421 SpecializedSetup<cmds::VertexAttrib1fv, 0>(true); 1421 SpecializedSetup<cmds::VertexAttrib1fv, 0>(true);
1422 cmds::VertexAttrib1fv cmd; 1422 cmds::VertexAttrib1fv cmd;
1423 cmd.Init(1, shared_memory_id_, shared_memory_offset_); 1423 cmd.Init(1, shared_memory_id_, shared_memory_offset_);
1424 GetSharedMemoryAs<GLfloat*>()[0] = 0; 1424 GetSharedMemoryAs<GLfloat*>()[0] = 0;
1425 EXPECT_CALL(*gl_, 1425 EXPECT_CALL(*gl_,
1426 VertexAttrib1fv( 1426 VertexAttrib1fv(
1427 1, reinterpret_cast<const GLfloat*>(shared_memory_address_))); 1427 1, reinterpret_cast<const GLfloat*>(shared_memory_address_)));
1428 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1428 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1429 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1429 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1430 } 1430 }
1431 1431
1432 TEST_F(GLES2DecoderTest2, VertexAttrib1fvInvalidArgs1_0) { 1432 TEST_P(GLES2DecoderTest2, VertexAttrib1fvInvalidArgs1_0) {
1433 EXPECT_CALL(*gl_, VertexAttrib1fv(_, _)).Times(0); 1433 EXPECT_CALL(*gl_, VertexAttrib1fv(_, _)).Times(0);
1434 SpecializedSetup<cmds::VertexAttrib1fv, 0>(false); 1434 SpecializedSetup<cmds::VertexAttrib1fv, 0>(false);
1435 cmds::VertexAttrib1fv cmd; 1435 cmds::VertexAttrib1fv cmd;
1436 cmd.Init(1, kInvalidSharedMemoryId, 0); 1436 cmd.Init(1, kInvalidSharedMemoryId, 0);
1437 GetSharedMemoryAs<GLfloat*>()[0] = 0; 1437 GetSharedMemoryAs<GLfloat*>()[0] = 0;
1438 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1438 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1439 } 1439 }
1440 1440
1441 TEST_F(GLES2DecoderTest2, VertexAttrib1fvInvalidArgs1_1) { 1441 TEST_P(GLES2DecoderTest2, VertexAttrib1fvInvalidArgs1_1) {
1442 EXPECT_CALL(*gl_, VertexAttrib1fv(_, _)).Times(0); 1442 EXPECT_CALL(*gl_, VertexAttrib1fv(_, _)).Times(0);
1443 SpecializedSetup<cmds::VertexAttrib1fv, 0>(false); 1443 SpecializedSetup<cmds::VertexAttrib1fv, 0>(false);
1444 cmds::VertexAttrib1fv cmd; 1444 cmds::VertexAttrib1fv cmd;
1445 cmd.Init(1, shared_memory_id_, kInvalidSharedMemoryOffset); 1445 cmd.Init(1, shared_memory_id_, kInvalidSharedMemoryOffset);
1446 GetSharedMemoryAs<GLfloat*>()[0] = 0; 1446 GetSharedMemoryAs<GLfloat*>()[0] = 0;
1447 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1447 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1448 } 1448 }
1449 1449
1450 TEST_F(GLES2DecoderTest2, VertexAttrib1fvImmediateValidArgs) { 1450 TEST_P(GLES2DecoderTest2, VertexAttrib1fvImmediateValidArgs) {
1451 cmds::VertexAttrib1fvImmediate& cmd = 1451 cmds::VertexAttrib1fvImmediate& cmd =
1452 *GetImmediateAs<cmds::VertexAttrib1fvImmediate>(); 1452 *GetImmediateAs<cmds::VertexAttrib1fvImmediate>();
1453 SpecializedSetup<cmds::VertexAttrib1fvImmediate, 0>(true); 1453 SpecializedSetup<cmds::VertexAttrib1fvImmediate, 0>(true);
1454 GLfloat temp[1] = { 1454 GLfloat temp[1] = {
1455 0, 1455 0,
1456 }; 1456 };
1457 cmd.Init(1, &temp[0]); 1457 cmd.Init(1, &temp[0]);
1458 EXPECT_CALL(*gl_, 1458 EXPECT_CALL(*gl_,
1459 VertexAttrib1fv( 1459 VertexAttrib1fv(
1460 1, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd)))); 1460 1, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd))));
1461 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 1461 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
1462 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1462 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1463 } 1463 }
1464 1464
1465 TEST_F(GLES2DecoderTest2, VertexAttrib2fValidArgs) { 1465 TEST_P(GLES2DecoderTest2, VertexAttrib2fValidArgs) {
1466 EXPECT_CALL(*gl_, VertexAttrib2f(1, 2, 3)); 1466 EXPECT_CALL(*gl_, VertexAttrib2f(1, 2, 3));
1467 SpecializedSetup<cmds::VertexAttrib2f, 0>(true); 1467 SpecializedSetup<cmds::VertexAttrib2f, 0>(true);
1468 cmds::VertexAttrib2f cmd; 1468 cmds::VertexAttrib2f cmd;
1469 cmd.Init(1, 2, 3); 1469 cmd.Init(1, 2, 3);
1470 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1470 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1471 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1471 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1472 } 1472 }
1473 1473
1474 TEST_F(GLES2DecoderTest2, VertexAttrib2fvValidArgs) { 1474 TEST_P(GLES2DecoderTest2, VertexAttrib2fvValidArgs) {
1475 SpecializedSetup<cmds::VertexAttrib2fv, 0>(true); 1475 SpecializedSetup<cmds::VertexAttrib2fv, 0>(true);
1476 cmds::VertexAttrib2fv cmd; 1476 cmds::VertexAttrib2fv cmd;
1477 cmd.Init(1, shared_memory_id_, shared_memory_offset_); 1477 cmd.Init(1, shared_memory_id_, shared_memory_offset_);
1478 GetSharedMemoryAs<GLfloat*>()[0] = 0; 1478 GetSharedMemoryAs<GLfloat*>()[0] = 0;
1479 EXPECT_CALL(*gl_, 1479 EXPECT_CALL(*gl_,
1480 VertexAttrib2fv( 1480 VertexAttrib2fv(
1481 1, reinterpret_cast<const GLfloat*>(shared_memory_address_))); 1481 1, reinterpret_cast<const GLfloat*>(shared_memory_address_)));
1482 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1482 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1483 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1483 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1484 } 1484 }
1485 1485
1486 TEST_F(GLES2DecoderTest2, VertexAttrib2fvInvalidArgs1_0) { 1486 TEST_P(GLES2DecoderTest2, VertexAttrib2fvInvalidArgs1_0) {
1487 EXPECT_CALL(*gl_, VertexAttrib2fv(_, _)).Times(0); 1487 EXPECT_CALL(*gl_, VertexAttrib2fv(_, _)).Times(0);
1488 SpecializedSetup<cmds::VertexAttrib2fv, 0>(false); 1488 SpecializedSetup<cmds::VertexAttrib2fv, 0>(false);
1489 cmds::VertexAttrib2fv cmd; 1489 cmds::VertexAttrib2fv cmd;
1490 cmd.Init(1, kInvalidSharedMemoryId, 0); 1490 cmd.Init(1, kInvalidSharedMemoryId, 0);
1491 GetSharedMemoryAs<GLfloat*>()[0] = 0; 1491 GetSharedMemoryAs<GLfloat*>()[0] = 0;
1492 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1492 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1493 } 1493 }
1494 1494
1495 TEST_F(GLES2DecoderTest2, VertexAttrib2fvInvalidArgs1_1) { 1495 TEST_P(GLES2DecoderTest2, VertexAttrib2fvInvalidArgs1_1) {
1496 EXPECT_CALL(*gl_, VertexAttrib2fv(_, _)).Times(0); 1496 EXPECT_CALL(*gl_, VertexAttrib2fv(_, _)).Times(0);
1497 SpecializedSetup<cmds::VertexAttrib2fv, 0>(false); 1497 SpecializedSetup<cmds::VertexAttrib2fv, 0>(false);
1498 cmds::VertexAttrib2fv cmd; 1498 cmds::VertexAttrib2fv cmd;
1499 cmd.Init(1, shared_memory_id_, kInvalidSharedMemoryOffset); 1499 cmd.Init(1, shared_memory_id_, kInvalidSharedMemoryOffset);
1500 GetSharedMemoryAs<GLfloat*>()[0] = 0; 1500 GetSharedMemoryAs<GLfloat*>()[0] = 0;
1501 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1501 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1502 } 1502 }
1503 1503
1504 TEST_F(GLES2DecoderTest2, VertexAttrib2fvImmediateValidArgs) { 1504 TEST_P(GLES2DecoderTest2, VertexAttrib2fvImmediateValidArgs) {
1505 cmds::VertexAttrib2fvImmediate& cmd = 1505 cmds::VertexAttrib2fvImmediate& cmd =
1506 *GetImmediateAs<cmds::VertexAttrib2fvImmediate>(); 1506 *GetImmediateAs<cmds::VertexAttrib2fvImmediate>();
1507 SpecializedSetup<cmds::VertexAttrib2fvImmediate, 0>(true); 1507 SpecializedSetup<cmds::VertexAttrib2fvImmediate, 0>(true);
1508 GLfloat temp[2] = { 1508 GLfloat temp[2] = {
1509 0, 1509 0,
1510 }; 1510 };
1511 cmd.Init(1, &temp[0]); 1511 cmd.Init(1, &temp[0]);
1512 EXPECT_CALL(*gl_, 1512 EXPECT_CALL(*gl_,
1513 VertexAttrib2fv( 1513 VertexAttrib2fv(
1514 1, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd)))); 1514 1, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd))));
1515 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 1515 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
1516 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1516 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1517 } 1517 }
1518 1518
1519 TEST_F(GLES2DecoderTest2, VertexAttrib3fValidArgs) { 1519 TEST_P(GLES2DecoderTest2, VertexAttrib3fValidArgs) {
1520 EXPECT_CALL(*gl_, VertexAttrib3f(1, 2, 3, 4)); 1520 EXPECT_CALL(*gl_, VertexAttrib3f(1, 2, 3, 4));
1521 SpecializedSetup<cmds::VertexAttrib3f, 0>(true); 1521 SpecializedSetup<cmds::VertexAttrib3f, 0>(true);
1522 cmds::VertexAttrib3f cmd; 1522 cmds::VertexAttrib3f cmd;
1523 cmd.Init(1, 2, 3, 4); 1523 cmd.Init(1, 2, 3, 4);
1524 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1524 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1525 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1525 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1526 } 1526 }
1527 1527
1528 TEST_F(GLES2DecoderTest2, VertexAttrib3fvValidArgs) { 1528 TEST_P(GLES2DecoderTest2, VertexAttrib3fvValidArgs) {
1529 SpecializedSetup<cmds::VertexAttrib3fv, 0>(true); 1529 SpecializedSetup<cmds::VertexAttrib3fv, 0>(true);
1530 cmds::VertexAttrib3fv cmd; 1530 cmds::VertexAttrib3fv cmd;
1531 cmd.Init(1, shared_memory_id_, shared_memory_offset_); 1531 cmd.Init(1, shared_memory_id_, shared_memory_offset_);
1532 GetSharedMemoryAs<GLfloat*>()[0] = 0; 1532 GetSharedMemoryAs<GLfloat*>()[0] = 0;
1533 EXPECT_CALL(*gl_, 1533 EXPECT_CALL(*gl_,
1534 VertexAttrib3fv( 1534 VertexAttrib3fv(
1535 1, reinterpret_cast<const GLfloat*>(shared_memory_address_))); 1535 1, reinterpret_cast<const GLfloat*>(shared_memory_address_)));
1536 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1536 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1537 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1537 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1538 } 1538 }
1539 1539
1540 TEST_F(GLES2DecoderTest2, VertexAttrib3fvInvalidArgs1_0) { 1540 TEST_P(GLES2DecoderTest2, VertexAttrib3fvInvalidArgs1_0) {
1541 EXPECT_CALL(*gl_, VertexAttrib3fv(_, _)).Times(0); 1541 EXPECT_CALL(*gl_, VertexAttrib3fv(_, _)).Times(0);
1542 SpecializedSetup<cmds::VertexAttrib3fv, 0>(false); 1542 SpecializedSetup<cmds::VertexAttrib3fv, 0>(false);
1543 cmds::VertexAttrib3fv cmd; 1543 cmds::VertexAttrib3fv cmd;
1544 cmd.Init(1, kInvalidSharedMemoryId, 0); 1544 cmd.Init(1, kInvalidSharedMemoryId, 0);
1545 GetSharedMemoryAs<GLfloat*>()[0] = 0; 1545 GetSharedMemoryAs<GLfloat*>()[0] = 0;
1546 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1546 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1547 } 1547 }
1548 1548
1549 TEST_F(GLES2DecoderTest2, VertexAttrib3fvInvalidArgs1_1) { 1549 TEST_P(GLES2DecoderTest2, VertexAttrib3fvInvalidArgs1_1) {
1550 EXPECT_CALL(*gl_, VertexAttrib3fv(_, _)).Times(0); 1550 EXPECT_CALL(*gl_, VertexAttrib3fv(_, _)).Times(0);
1551 SpecializedSetup<cmds::VertexAttrib3fv, 0>(false); 1551 SpecializedSetup<cmds::VertexAttrib3fv, 0>(false);
1552 cmds::VertexAttrib3fv cmd; 1552 cmds::VertexAttrib3fv cmd;
1553 cmd.Init(1, shared_memory_id_, kInvalidSharedMemoryOffset); 1553 cmd.Init(1, shared_memory_id_, kInvalidSharedMemoryOffset);
1554 GetSharedMemoryAs<GLfloat*>()[0] = 0; 1554 GetSharedMemoryAs<GLfloat*>()[0] = 0;
1555 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1555 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1556 } 1556 }
1557 1557
1558 TEST_F(GLES2DecoderTest2, VertexAttrib3fvImmediateValidArgs) { 1558 TEST_P(GLES2DecoderTest2, VertexAttrib3fvImmediateValidArgs) {
1559 cmds::VertexAttrib3fvImmediate& cmd = 1559 cmds::VertexAttrib3fvImmediate& cmd =
1560 *GetImmediateAs<cmds::VertexAttrib3fvImmediate>(); 1560 *GetImmediateAs<cmds::VertexAttrib3fvImmediate>();
1561 SpecializedSetup<cmds::VertexAttrib3fvImmediate, 0>(true); 1561 SpecializedSetup<cmds::VertexAttrib3fvImmediate, 0>(true);
1562 GLfloat temp[3] = { 1562 GLfloat temp[3] = {
1563 0, 1563 0,
1564 }; 1564 };
1565 cmd.Init(1, &temp[0]); 1565 cmd.Init(1, &temp[0]);
1566 EXPECT_CALL(*gl_, 1566 EXPECT_CALL(*gl_,
1567 VertexAttrib3fv( 1567 VertexAttrib3fv(
1568 1, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd)))); 1568 1, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd))));
1569 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 1569 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
1570 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1570 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1571 } 1571 }
1572 1572
1573 TEST_F(GLES2DecoderTest2, VertexAttrib4fValidArgs) { 1573 TEST_P(GLES2DecoderTest2, VertexAttrib4fValidArgs) {
1574 EXPECT_CALL(*gl_, VertexAttrib4f(1, 2, 3, 4, 5)); 1574 EXPECT_CALL(*gl_, VertexAttrib4f(1, 2, 3, 4, 5));
1575 SpecializedSetup<cmds::VertexAttrib4f, 0>(true); 1575 SpecializedSetup<cmds::VertexAttrib4f, 0>(true);
1576 cmds::VertexAttrib4f cmd; 1576 cmds::VertexAttrib4f cmd;
1577 cmd.Init(1, 2, 3, 4, 5); 1577 cmd.Init(1, 2, 3, 4, 5);
1578 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1578 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1579 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1579 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1580 } 1580 }
1581 1581
1582 TEST_F(GLES2DecoderTest2, VertexAttrib4fvValidArgs) { 1582 TEST_P(GLES2DecoderTest2, VertexAttrib4fvValidArgs) {
1583 SpecializedSetup<cmds::VertexAttrib4fv, 0>(true); 1583 SpecializedSetup<cmds::VertexAttrib4fv, 0>(true);
1584 cmds::VertexAttrib4fv cmd; 1584 cmds::VertexAttrib4fv cmd;
1585 cmd.Init(1, shared_memory_id_, shared_memory_offset_); 1585 cmd.Init(1, shared_memory_id_, shared_memory_offset_);
1586 GetSharedMemoryAs<GLfloat*>()[0] = 0; 1586 GetSharedMemoryAs<GLfloat*>()[0] = 0;
1587 EXPECT_CALL(*gl_, 1587 EXPECT_CALL(*gl_,
1588 VertexAttrib4fv( 1588 VertexAttrib4fv(
1589 1, reinterpret_cast<const GLfloat*>(shared_memory_address_))); 1589 1, reinterpret_cast<const GLfloat*>(shared_memory_address_)));
1590 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1590 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1591 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1591 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1592 } 1592 }
1593 1593
1594 TEST_F(GLES2DecoderTest2, VertexAttrib4fvInvalidArgs1_0) { 1594 TEST_P(GLES2DecoderTest2, VertexAttrib4fvInvalidArgs1_0) {
1595 EXPECT_CALL(*gl_, VertexAttrib4fv(_, _)).Times(0); 1595 EXPECT_CALL(*gl_, VertexAttrib4fv(_, _)).Times(0);
1596 SpecializedSetup<cmds::VertexAttrib4fv, 0>(false); 1596 SpecializedSetup<cmds::VertexAttrib4fv, 0>(false);
1597 cmds::VertexAttrib4fv cmd; 1597 cmds::VertexAttrib4fv cmd;
1598 cmd.Init(1, kInvalidSharedMemoryId, 0); 1598 cmd.Init(1, kInvalidSharedMemoryId, 0);
1599 GetSharedMemoryAs<GLfloat*>()[0] = 0; 1599 GetSharedMemoryAs<GLfloat*>()[0] = 0;
1600 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1600 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1601 } 1601 }
1602 1602
1603 TEST_F(GLES2DecoderTest2, VertexAttrib4fvInvalidArgs1_1) { 1603 TEST_P(GLES2DecoderTest2, VertexAttrib4fvInvalidArgs1_1) {
1604 EXPECT_CALL(*gl_, VertexAttrib4fv(_, _)).Times(0); 1604 EXPECT_CALL(*gl_, VertexAttrib4fv(_, _)).Times(0);
1605 SpecializedSetup<cmds::VertexAttrib4fv, 0>(false); 1605 SpecializedSetup<cmds::VertexAttrib4fv, 0>(false);
1606 cmds::VertexAttrib4fv cmd; 1606 cmds::VertexAttrib4fv cmd;
1607 cmd.Init(1, shared_memory_id_, kInvalidSharedMemoryOffset); 1607 cmd.Init(1, shared_memory_id_, kInvalidSharedMemoryOffset);
1608 GetSharedMemoryAs<GLfloat*>()[0] = 0; 1608 GetSharedMemoryAs<GLfloat*>()[0] = 0;
1609 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1609 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1610 } 1610 }
1611 1611
1612 TEST_F(GLES2DecoderTest2, VertexAttrib4fvImmediateValidArgs) { 1612 TEST_P(GLES2DecoderTest2, VertexAttrib4fvImmediateValidArgs) {
1613 cmds::VertexAttrib4fvImmediate& cmd = 1613 cmds::VertexAttrib4fvImmediate& cmd =
1614 *GetImmediateAs<cmds::VertexAttrib4fvImmediate>(); 1614 *GetImmediateAs<cmds::VertexAttrib4fvImmediate>();
1615 SpecializedSetup<cmds::VertexAttrib4fvImmediate, 0>(true); 1615 SpecializedSetup<cmds::VertexAttrib4fvImmediate, 0>(true);
1616 GLfloat temp[4] = { 1616 GLfloat temp[4] = {
1617 0, 1617 0,
1618 }; 1618 };
1619 cmd.Init(1, &temp[0]); 1619 cmd.Init(1, &temp[0]);
1620 EXPECT_CALL(*gl_, 1620 EXPECT_CALL(*gl_,
1621 VertexAttrib4fv( 1621 VertexAttrib4fv(
1622 1, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd)))); 1622 1, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd))));
1623 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 1623 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
1624 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1624 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1625 } 1625 }
1626 // TODO(gman): VertexAttribPointer 1626 // TODO(gman): VertexAttribPointer
1627 1627
1628 TEST_F(GLES2DecoderTest2, ViewportValidArgs) { 1628 TEST_P(GLES2DecoderTest2, ViewportValidArgs) {
1629 EXPECT_CALL(*gl_, Viewport(1, 2, 3, 4)); 1629 EXPECT_CALL(*gl_, Viewport(1, 2, 3, 4));
1630 SpecializedSetup<cmds::Viewport, 0>(true); 1630 SpecializedSetup<cmds::Viewport, 0>(true);
1631 cmds::Viewport cmd; 1631 cmds::Viewport cmd;
1632 cmd.Init(1, 2, 3, 4); 1632 cmd.Init(1, 2, 3, 4);
1633 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1633 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1634 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1634 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1635 } 1635 }
1636 1636
1637 TEST_F(GLES2DecoderTest2, ViewportInvalidArgs2_0) { 1637 TEST_P(GLES2DecoderTest2, ViewportInvalidArgs2_0) {
1638 EXPECT_CALL(*gl_, Viewport(_, _, _, _)).Times(0); 1638 EXPECT_CALL(*gl_, Viewport(_, _, _, _)).Times(0);
1639 SpecializedSetup<cmds::Viewport, 0>(false); 1639 SpecializedSetup<cmds::Viewport, 0>(false);
1640 cmds::Viewport cmd; 1640 cmds::Viewport cmd;
1641 cmd.Init(1, 2, -1, 4); 1641 cmd.Init(1, 2, -1, 4);
1642 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1642 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1643 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 1643 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
1644 } 1644 }
1645 1645
1646 TEST_F(GLES2DecoderTest2, ViewportInvalidArgs3_0) { 1646 TEST_P(GLES2DecoderTest2, ViewportInvalidArgs3_0) {
1647 EXPECT_CALL(*gl_, Viewport(_, _, _, _)).Times(0); 1647 EXPECT_CALL(*gl_, Viewport(_, _, _, _)).Times(0);
1648 SpecializedSetup<cmds::Viewport, 0>(false); 1648 SpecializedSetup<cmds::Viewport, 0>(false);
1649 cmds::Viewport cmd; 1649 cmds::Viewport cmd;
1650 cmd.Init(1, 2, 3, -1); 1650 cmd.Init(1, 2, 3, -1);
1651 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1651 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1652 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 1652 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
1653 } 1653 }
1654 // TODO(gman): BlitFramebufferCHROMIUM 1654 // TODO(gman): BlitFramebufferCHROMIUM
1655 // TODO(gman): RenderbufferStorageMultisampleCHROMIUM 1655 // TODO(gman): RenderbufferStorageMultisampleCHROMIUM
1656 // TODO(gman): RenderbufferStorageMultisampleEXT 1656 // TODO(gman): RenderbufferStorageMultisampleEXT
1657 // TODO(gman): FramebufferTexture2DMultisampleEXT 1657 // TODO(gman): FramebufferTexture2DMultisampleEXT
1658 // TODO(gman): TexStorage2DEXT 1658 // TODO(gman): TexStorage2DEXT
1659 // TODO(gman): GenQueriesEXT 1659 // TODO(gman): GenQueriesEXT
1660 // TODO(gman): GenQueriesEXTImmediate 1660 // TODO(gman): GenQueriesEXTImmediate
1661 // TODO(gman): DeleteQueriesEXT 1661 // TODO(gman): DeleteQueriesEXT
1662 // TODO(gman): DeleteQueriesEXTImmediate 1662 // TODO(gman): DeleteQueriesEXTImmediate
1663 // TODO(gman): BeginQueryEXT 1663 // TODO(gman): BeginQueryEXT
1664 1664
1665 // TODO(gman): EndQueryEXT 1665 // TODO(gman): EndQueryEXT
1666 1666
1667 // TODO(gman): InsertEventMarkerEXT 1667 // TODO(gman): InsertEventMarkerEXT
1668 1668
1669 // TODO(gman): PushGroupMarkerEXT 1669 // TODO(gman): PushGroupMarkerEXT
1670 1670
1671 TEST_F(GLES2DecoderTest2, PopGroupMarkerEXTValidArgs) { 1671 TEST_P(GLES2DecoderTest2, PopGroupMarkerEXTValidArgs) {
1672 SpecializedSetup<cmds::PopGroupMarkerEXT, 0>(true); 1672 SpecializedSetup<cmds::PopGroupMarkerEXT, 0>(true);
1673 cmds::PopGroupMarkerEXT cmd; 1673 cmds::PopGroupMarkerEXT cmd;
1674 cmd.Init(); 1674 cmd.Init();
1675 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1675 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1676 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1676 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1677 } 1677 }
1678 // TODO(gman): GenVertexArraysOES 1678 // TODO(gman): GenVertexArraysOES
1679 // TODO(gman): GenVertexArraysOESImmediate 1679 // TODO(gman): GenVertexArraysOESImmediate
1680 // TODO(gman): DeleteVertexArraysOES 1680 // TODO(gman): DeleteVertexArraysOES
1681 // TODO(gman): DeleteVertexArraysOESImmediate 1681 // TODO(gman): DeleteVertexArraysOESImmediate
1682 // TODO(gman): IsVertexArrayOES 1682 // TODO(gman): IsVertexArrayOES
1683 // TODO(gman): BindVertexArrayOES 1683 // TODO(gman): BindVertexArrayOES
1684 // TODO(gman): SwapBuffers 1684 // TODO(gman): SwapBuffers
1685 // TODO(gman): GetMaxValueInBufferCHROMIUM 1685 // TODO(gman): GetMaxValueInBufferCHROMIUM
1686 // TODO(gman): GenSharedIdsCHROMIUM 1686 // TODO(gman): GenSharedIdsCHROMIUM
1687 1687
1688 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_UNITTEST_2_AUTOGEN_H_ 1688 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_UNITTEST_2_AUTOGEN_H_
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/gles2_cmd_decoder_unittest_2.cc ('k') | gpu/command_buffer/service/gles2_cmd_decoder_unittest_3.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698