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
3 // found in the LICENSE file.
5 // This file is auto-generated from
6 // gpu/command_buffer/build_gles2_cmd_buffer.py
7 // It's formatted by clang-format using chromium coding style:
8 // clang-format -i -style=chromium filename
11 // It is included by gles2_cmd_decoder_unittest_1.cc
12 #ifndef GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_UNITTEST_1_AUTOGEN_H_
13 #define GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_UNITTEST_1_AUTOGEN_H_
15 // TODO(gman): ActiveTexture
17 TEST_P(GLES2DecoderTest1, AttachShaderValidArgs) {
18 EXPECT_CALL(*gl_, AttachShader(kServiceProgramId, kServiceShaderId));
19 SpecializedSetup<cmds::AttachShader, 0>(true);
20 cmds::AttachShader cmd;
21 cmd.Init(client_program_id_, client_shader_id_);
22 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
23 EXPECT_EQ(GL_NO_ERROR, GetGLError());
25 // TODO(gman): BindAttribLocationBucket
27 TEST_P(GLES2DecoderTest1, BindBufferValidArgs) {
28 EXPECT_CALL(*gl_, BindBuffer(GL_ARRAY_BUFFER, kServiceBufferId));
29 SpecializedSetup<cmds::BindBuffer, 0>(true);
31 cmd.Init(GL_ARRAY_BUFFER, client_buffer_id_);
32 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
33 EXPECT_EQ(GL_NO_ERROR, GetGLError());
36 TEST_P(GLES2DecoderTest1, BindBufferValidArgsNewId) {
37 EXPECT_CALL(*gl_, BindBuffer(GL_ARRAY_BUFFER, kNewServiceId));
38 EXPECT_CALL(*gl_, GenBuffersARB(1, _))
39 .WillOnce(SetArgumentPointee<1>(kNewServiceId));
40 SpecializedSetup<cmds::BindBuffer, 0>(true);
42 cmd.Init(GL_ARRAY_BUFFER, kNewClientId);
43 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
44 EXPECT_EQ(GL_NO_ERROR, GetGLError());
45 EXPECT_TRUE(GetBuffer(kNewClientId) != NULL);
48 TEST_P(GLES2DecoderTest1, BindBufferInvalidArgs0_0) {
49 EXPECT_CALL(*gl_, BindBuffer(_, _)).Times(0);
50 SpecializedSetup<cmds::BindBuffer, 0>(false);
52 cmd.Init(GL_RENDERBUFFER, client_buffer_id_);
53 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
54 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
57 TEST_P(GLES2DecoderTest1, BindFramebufferValidArgs) {
58 EXPECT_CALL(*gl_, BindFramebufferEXT(GL_FRAMEBUFFER, kServiceFramebufferId));
59 SpecializedSetup<cmds::BindFramebuffer, 0>(true);
60 cmds::BindFramebuffer cmd;
61 cmd.Init(GL_FRAMEBUFFER, client_framebuffer_id_);
62 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
63 EXPECT_EQ(GL_NO_ERROR, GetGLError());
66 TEST_P(GLES2DecoderTest1, BindFramebufferValidArgsNewId) {
67 EXPECT_CALL(*gl_, BindFramebufferEXT(GL_FRAMEBUFFER, kNewServiceId));
68 EXPECT_CALL(*gl_, GenFramebuffersEXT(1, _))
69 .WillOnce(SetArgumentPointee<1>(kNewServiceId));
70 SpecializedSetup<cmds::BindFramebuffer, 0>(true);
71 cmds::BindFramebuffer cmd;
72 cmd.Init(GL_FRAMEBUFFER, kNewClientId);
73 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
74 EXPECT_EQ(GL_NO_ERROR, GetGLError());
75 EXPECT_TRUE(GetFramebuffer(kNewClientId) != NULL);
78 TEST_P(GLES2DecoderTest1, BindFramebufferInvalidArgs0_0) {
79 EXPECT_CALL(*gl_, BindFramebufferEXT(_, _)).Times(0);
80 SpecializedSetup<cmds::BindFramebuffer, 0>(false);
81 cmds::BindFramebuffer cmd;
82 cmd.Init(GL_DRAW_FRAMEBUFFER, client_framebuffer_id_);
83 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
84 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
87 TEST_P(GLES2DecoderTest1, BindFramebufferInvalidArgs0_1) {
88 EXPECT_CALL(*gl_, BindFramebufferEXT(_, _)).Times(0);
89 SpecializedSetup<cmds::BindFramebuffer, 0>(false);
90 cmds::BindFramebuffer cmd;
91 cmd.Init(GL_READ_FRAMEBUFFER, client_framebuffer_id_);
92 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
93 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
96 TEST_P(GLES2DecoderTest1, BindRenderbufferValidArgs) {
98 BindRenderbufferEXT(GL_RENDERBUFFER, kServiceRenderbufferId));
99 SpecializedSetup<cmds::BindRenderbuffer, 0>(true);
100 cmds::BindRenderbuffer cmd;
101 cmd.Init(GL_RENDERBUFFER, client_renderbuffer_id_);
102 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
103 EXPECT_EQ(GL_NO_ERROR, GetGLError());
106 TEST_P(GLES2DecoderTest1, BindRenderbufferValidArgsNewId) {
107 EXPECT_CALL(*gl_, BindRenderbufferEXT(GL_RENDERBUFFER, kNewServiceId));
108 EXPECT_CALL(*gl_, GenRenderbuffersEXT(1, _))
109 .WillOnce(SetArgumentPointee<1>(kNewServiceId));
110 SpecializedSetup<cmds::BindRenderbuffer, 0>(true);
111 cmds::BindRenderbuffer cmd;
112 cmd.Init(GL_RENDERBUFFER, kNewClientId);
113 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
114 EXPECT_EQ(GL_NO_ERROR, GetGLError());
115 EXPECT_TRUE(GetRenderbuffer(kNewClientId) != NULL);
118 TEST_P(GLES2DecoderTest1, BindRenderbufferInvalidArgs0_0) {
119 EXPECT_CALL(*gl_, BindRenderbufferEXT(_, _)).Times(0);
120 SpecializedSetup<cmds::BindRenderbuffer, 0>(false);
121 cmds::BindRenderbuffer cmd;
122 cmd.Init(GL_FRAMEBUFFER, client_renderbuffer_id_);
123 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
124 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
127 TEST_P(GLES2DecoderTest1, BindTextureValidArgs) {
128 EXPECT_CALL(*gl_, BindTexture(GL_TEXTURE_2D, kServiceTextureId));
129 SpecializedSetup<cmds::BindTexture, 0>(true);
130 cmds::BindTexture cmd;
131 cmd.Init(GL_TEXTURE_2D, client_texture_id_);
132 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
133 EXPECT_EQ(GL_NO_ERROR, GetGLError());
136 TEST_P(GLES2DecoderTest1, BindTextureValidArgsNewId) {
137 EXPECT_CALL(*gl_, BindTexture(GL_TEXTURE_2D, kNewServiceId));
138 EXPECT_CALL(*gl_, GenTextures(1, _))
139 .WillOnce(SetArgumentPointee<1>(kNewServiceId));
140 SpecializedSetup<cmds::BindTexture, 0>(true);
141 cmds::BindTexture cmd;
142 cmd.Init(GL_TEXTURE_2D, kNewClientId);
143 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
144 EXPECT_EQ(GL_NO_ERROR, GetGLError());
145 EXPECT_TRUE(GetTexture(kNewClientId) != NULL);
148 TEST_P(GLES2DecoderTest1, BindTextureInvalidArgs0_0) {
149 EXPECT_CALL(*gl_, BindTexture(_, _)).Times(0);
150 SpecializedSetup<cmds::BindTexture, 0>(false);
151 cmds::BindTexture cmd;
152 cmd.Init(GL_TEXTURE_1D, client_texture_id_);
153 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
154 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
157 TEST_P(GLES2DecoderTest1, BindTextureInvalidArgs0_1) {
158 EXPECT_CALL(*gl_, BindTexture(_, _)).Times(0);
159 SpecializedSetup<cmds::BindTexture, 0>(false);
160 cmds::BindTexture cmd;
161 cmd.Init(GL_TEXTURE_3D, client_texture_id_);
162 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
163 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
166 TEST_P(GLES2DecoderTest1, BlendColorValidArgs) {
167 EXPECT_CALL(*gl_, BlendColor(1, 2, 3, 4));
168 SpecializedSetup<cmds::BlendColor, 0>(true);
169 cmds::BlendColor cmd;
170 cmd.Init(1, 2, 3, 4);
171 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
172 EXPECT_EQ(GL_NO_ERROR, GetGLError());
175 TEST_P(GLES2DecoderTest1, BlendEquationValidArgs) {
176 EXPECT_CALL(*gl_, BlendEquation(GL_FUNC_SUBTRACT));
177 SpecializedSetup<cmds::BlendEquation, 0>(true);
178 cmds::BlendEquation cmd;
179 cmd.Init(GL_FUNC_SUBTRACT);
180 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
181 EXPECT_EQ(GL_NO_ERROR, GetGLError());
184 TEST_P(GLES2DecoderTest1, BlendEquationInvalidArgs0_0) {
185 EXPECT_CALL(*gl_, BlendEquation(_)).Times(0);
186 SpecializedSetup<cmds::BlendEquation, 0>(false);
187 cmds::BlendEquation cmd;
189 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
190 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
193 TEST_P(GLES2DecoderTest1, BlendEquationInvalidArgs0_1) {
194 EXPECT_CALL(*gl_, BlendEquation(_)).Times(0);
195 SpecializedSetup<cmds::BlendEquation, 0>(false);
196 cmds::BlendEquation cmd;
198 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
199 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
202 TEST_P(GLES2DecoderTest1, BlendEquationSeparateValidArgs) {
203 EXPECT_CALL(*gl_, BlendEquationSeparate(GL_FUNC_SUBTRACT, GL_FUNC_ADD));
204 SpecializedSetup<cmds::BlendEquationSeparate, 0>(true);
205 cmds::BlendEquationSeparate cmd;
206 cmd.Init(GL_FUNC_SUBTRACT, GL_FUNC_ADD);
207 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
208 EXPECT_EQ(GL_NO_ERROR, GetGLError());
211 TEST_P(GLES2DecoderTest1, BlendEquationSeparateInvalidArgs0_0) {
212 EXPECT_CALL(*gl_, BlendEquationSeparate(_, _)).Times(0);
213 SpecializedSetup<cmds::BlendEquationSeparate, 0>(false);
214 cmds::BlendEquationSeparate cmd;
215 cmd.Init(GL_MIN, GL_FUNC_ADD);
216 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
217 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
220 TEST_P(GLES2DecoderTest1, BlendEquationSeparateInvalidArgs0_1) {
221 EXPECT_CALL(*gl_, BlendEquationSeparate(_, _)).Times(0);
222 SpecializedSetup<cmds::BlendEquationSeparate, 0>(false);
223 cmds::BlendEquationSeparate cmd;
224 cmd.Init(GL_MAX, GL_FUNC_ADD);
225 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
226 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
229 TEST_P(GLES2DecoderTest1, BlendEquationSeparateInvalidArgs1_0) {
230 EXPECT_CALL(*gl_, BlendEquationSeparate(_, _)).Times(0);
231 SpecializedSetup<cmds::BlendEquationSeparate, 0>(false);
232 cmds::BlendEquationSeparate cmd;
233 cmd.Init(GL_FUNC_SUBTRACT, GL_MIN);
234 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
235 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
238 TEST_P(GLES2DecoderTest1, BlendEquationSeparateInvalidArgs1_1) {
239 EXPECT_CALL(*gl_, BlendEquationSeparate(_, _)).Times(0);
240 SpecializedSetup<cmds::BlendEquationSeparate, 0>(false);
241 cmds::BlendEquationSeparate cmd;
242 cmd.Init(GL_FUNC_SUBTRACT, GL_MAX);
243 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
244 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
247 TEST_P(GLES2DecoderTest1, BlendFuncValidArgs) {
248 EXPECT_CALL(*gl_, BlendFunc(GL_ZERO, GL_ZERO));
249 SpecializedSetup<cmds::BlendFunc, 0>(true);
251 cmd.Init(GL_ZERO, GL_ZERO);
252 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
253 EXPECT_EQ(GL_NO_ERROR, GetGLError());
256 TEST_P(GLES2DecoderTest1, BlendFuncSeparateValidArgs) {
257 EXPECT_CALL(*gl_, BlendFuncSeparate(GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO));
258 SpecializedSetup<cmds::BlendFuncSeparate, 0>(true);
259 cmds::BlendFuncSeparate cmd;
260 cmd.Init(GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO);
261 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
262 EXPECT_EQ(GL_NO_ERROR, GetGLError());
264 // TODO(gman): BufferData
266 // TODO(gman): BufferSubData
268 TEST_P(GLES2DecoderTest1, CheckFramebufferStatusValidArgs) {
269 EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(GL_FRAMEBUFFER));
270 SpecializedSetup<cmds::CheckFramebufferStatus, 0>(true);
271 cmds::CheckFramebufferStatus cmd;
272 cmd.Init(GL_FRAMEBUFFER, shared_memory_id_, shared_memory_offset_);
273 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
274 EXPECT_EQ(GL_NO_ERROR, GetGLError());
277 TEST_P(GLES2DecoderTest1, CheckFramebufferStatusInvalidArgs0_0) {
278 EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(_)).Times(0);
279 SpecializedSetup<cmds::CheckFramebufferStatus, 0>(false);
280 cmds::CheckFramebufferStatus cmd;
281 cmd.Init(GL_DRAW_FRAMEBUFFER, shared_memory_id_, shared_memory_offset_);
282 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
283 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
286 TEST_P(GLES2DecoderTest1, CheckFramebufferStatusInvalidArgs0_1) {
287 EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(_)).Times(0);
288 SpecializedSetup<cmds::CheckFramebufferStatus, 0>(false);
289 cmds::CheckFramebufferStatus cmd;
290 cmd.Init(GL_READ_FRAMEBUFFER, shared_memory_id_, shared_memory_offset_);
291 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
292 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
295 TEST_P(GLES2DecoderTest1, CheckFramebufferStatusInvalidArgsBadSharedMemoryId) {
296 EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(GL_FRAMEBUFFER)).Times(0);
297 SpecializedSetup<cmds::CheckFramebufferStatus, 0>(false);
298 cmds::CheckFramebufferStatus cmd;
299 cmd.Init(GL_FRAMEBUFFER, kInvalidSharedMemoryId, shared_memory_offset_);
300 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
301 cmd.Init(GL_FRAMEBUFFER, shared_memory_id_, kInvalidSharedMemoryOffset);
302 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
305 TEST_P(GLES2DecoderTest1, ClearValidArgs) {
306 EXPECT_CALL(*gl_, Clear(1));
307 SpecializedSetup<cmds::Clear, 0>(true);
310 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
311 EXPECT_EQ(GL_NO_ERROR, GetGLError());
314 TEST_P(GLES2DecoderTest1, ClearColorValidArgs) {
315 EXPECT_CALL(*gl_, ClearColor(1, 2, 3, 4));
316 SpecializedSetup<cmds::ClearColor, 0>(true);
317 cmds::ClearColor cmd;
318 cmd.Init(1, 2, 3, 4);
319 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
320 EXPECT_EQ(GL_NO_ERROR, GetGLError());
323 TEST_P(GLES2DecoderTest1, ClearDepthfValidArgs) {
324 EXPECT_CALL(*gl_, ClearDepth(0.5f));
325 SpecializedSetup<cmds::ClearDepthf, 0>(true);
326 cmds::ClearDepthf cmd;
328 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
329 EXPECT_EQ(GL_NO_ERROR, GetGLError());
332 TEST_P(GLES2DecoderTest1, ClearStencilValidArgs) {
333 EXPECT_CALL(*gl_, ClearStencil(1));
334 SpecializedSetup<cmds::ClearStencil, 0>(true);
335 cmds::ClearStencil cmd;
337 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
338 EXPECT_EQ(GL_NO_ERROR, GetGLError());
341 TEST_P(GLES2DecoderTest1, ColorMaskValidArgs) {
342 SpecializedSetup<cmds::ColorMask, 0>(true);
344 cmd.Init(true, true, true, true);
345 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
346 EXPECT_EQ(GL_NO_ERROR, GetGLError());
348 // TODO(gman): CompileShader
349 // TODO(gman): CompressedTexImage2DBucket
350 // TODO(gman): CompressedTexImage2D
352 // TODO(gman): CompressedTexSubImage2DBucket
353 // TODO(gman): CompressedTexSubImage2D
355 // TODO(gman): CopyTexImage2D
357 TEST_P(GLES2DecoderTest1, CopyTexSubImage2DValidArgs) {
358 EXPECT_CALL(*gl_, CopyTexSubImage2D(GL_TEXTURE_2D, 2, 3, 4, 5, 6, 7, 8));
359 SpecializedSetup<cmds::CopyTexSubImage2D, 0>(true);
360 cmds::CopyTexSubImage2D cmd;
361 cmd.Init(GL_TEXTURE_2D, 2, 3, 4, 5, 6, 7, 8);
362 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
363 EXPECT_EQ(GL_NO_ERROR, GetGLError());
366 TEST_P(GLES2DecoderTest1, CopyTexSubImage2DInvalidArgs0_0) {
367 EXPECT_CALL(*gl_, CopyTexSubImage2D(_, _, _, _, _, _, _, _)).Times(0);
368 SpecializedSetup<cmds::CopyTexSubImage2D, 0>(false);
369 cmds::CopyTexSubImage2D cmd;
370 cmd.Init(GL_PROXY_TEXTURE_CUBE_MAP, 2, 3, 4, 5, 6, 7, 8);
371 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
372 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
375 TEST_P(GLES2DecoderTest1, CopyTexSubImage2DInvalidArgs6_0) {
376 EXPECT_CALL(*gl_, CopyTexSubImage2D(_, _, _, _, _, _, _, _)).Times(0);
377 SpecializedSetup<cmds::CopyTexSubImage2D, 0>(false);
378 cmds::CopyTexSubImage2D cmd;
379 cmd.Init(GL_TEXTURE_2D, 2, 3, 4, 5, 6, -1, 8);
380 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
381 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
384 TEST_P(GLES2DecoderTest1, CopyTexSubImage2DInvalidArgs7_0) {
385 EXPECT_CALL(*gl_, CopyTexSubImage2D(_, _, _, _, _, _, _, _)).Times(0);
386 SpecializedSetup<cmds::CopyTexSubImage2D, 0>(false);
387 cmds::CopyTexSubImage2D cmd;
388 cmd.Init(GL_TEXTURE_2D, 2, 3, 4, 5, 6, 7, -1);
389 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
390 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
393 TEST_P(GLES2DecoderTest1, CreateProgramValidArgs) {
394 EXPECT_CALL(*gl_, CreateProgram()).WillOnce(Return(kNewServiceId));
395 SpecializedSetup<cmds::CreateProgram, 0>(true);
396 cmds::CreateProgram cmd;
397 cmd.Init(kNewClientId);
398 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
399 EXPECT_EQ(GL_NO_ERROR, GetGLError());
400 EXPECT_TRUE(GetProgram(kNewClientId) != NULL);
403 TEST_P(GLES2DecoderTest1, CreateShaderValidArgs) {
404 EXPECT_CALL(*gl_, CreateShader(GL_VERTEX_SHADER))
405 .WillOnce(Return(kNewServiceId));
406 SpecializedSetup<cmds::CreateShader, 0>(true);
407 cmds::CreateShader cmd;
408 cmd.Init(GL_VERTEX_SHADER, kNewClientId);
409 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
410 EXPECT_EQ(GL_NO_ERROR, GetGLError());
411 EXPECT_TRUE(GetShader(kNewClientId) != NULL);
414 TEST_P(GLES2DecoderTest1, CreateShaderInvalidArgs0_0) {
415 EXPECT_CALL(*gl_, CreateShader(_)).Times(0);
416 SpecializedSetup<cmds::CreateShader, 0>(false);
417 cmds::CreateShader cmd;
418 cmd.Init(GL_GEOMETRY_SHADER, kNewClientId);
419 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
420 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
423 TEST_P(GLES2DecoderTest1, CullFaceValidArgs) {
424 EXPECT_CALL(*gl_, CullFace(GL_FRONT));
425 SpecializedSetup<cmds::CullFace, 0>(true);
428 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
429 EXPECT_EQ(GL_NO_ERROR, GetGLError());
432 TEST_P(GLES2DecoderTest1, DeleteBuffersImmediateValidArgs) {
433 EXPECT_CALL(*gl_, DeleteBuffersARB(1, Pointee(kServiceBufferId))).Times(1);
434 cmds::DeleteBuffersImmediate& cmd =
435 *GetImmediateAs<cmds::DeleteBuffersImmediate>();
436 SpecializedSetup<cmds::DeleteBuffersImmediate, 0>(true);
437 cmd.Init(1, &client_buffer_id_);
438 EXPECT_EQ(error::kNoError,
439 ExecuteImmediateCmd(cmd, sizeof(client_buffer_id_)));
440 EXPECT_EQ(GL_NO_ERROR, GetGLError());
441 EXPECT_TRUE(GetBuffer(client_buffer_id_) == NULL);
444 TEST_P(GLES2DecoderTest1, DeleteBuffersImmediateInvalidArgs) {
445 cmds::DeleteBuffersImmediate& cmd =
446 *GetImmediateAs<cmds::DeleteBuffersImmediate>();
447 SpecializedSetup<cmds::DeleteBuffersImmediate, 0>(false);
448 GLuint temp = kInvalidClientId;
450 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
453 TEST_P(GLES2DecoderTest1, DeleteFramebuffersImmediateValidArgs) {
454 EXPECT_CALL(*gl_, DeleteFramebuffersEXT(1, Pointee(kServiceFramebufferId)))
456 cmds::DeleteFramebuffersImmediate& cmd =
457 *GetImmediateAs<cmds::DeleteFramebuffersImmediate>();
458 SpecializedSetup<cmds::DeleteFramebuffersImmediate, 0>(true);
459 cmd.Init(1, &client_framebuffer_id_);
460 EXPECT_EQ(error::kNoError,
461 ExecuteImmediateCmd(cmd, sizeof(client_framebuffer_id_)));
462 EXPECT_EQ(GL_NO_ERROR, GetGLError());
463 EXPECT_TRUE(GetFramebuffer(client_framebuffer_id_) == NULL);
466 TEST_P(GLES2DecoderTest1, DeleteFramebuffersImmediateInvalidArgs) {
467 cmds::DeleteFramebuffersImmediate& cmd =
468 *GetImmediateAs<cmds::DeleteFramebuffersImmediate>();
469 SpecializedSetup<cmds::DeleteFramebuffersImmediate, 0>(false);
470 GLuint temp = kInvalidClientId;
472 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
475 TEST_P(GLES2DecoderTest1, DeleteProgramValidArgs) {
476 EXPECT_CALL(*gl_, DeleteProgram(kServiceProgramId));
477 SpecializedSetup<cmds::DeleteProgram, 0>(true);
478 cmds::DeleteProgram cmd;
479 cmd.Init(client_program_id_);
480 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
481 EXPECT_EQ(GL_NO_ERROR, GetGLError());
484 TEST_P(GLES2DecoderTest1, DeleteRenderbuffersImmediateValidArgs) {
485 EXPECT_CALL(*gl_, DeleteRenderbuffersEXT(1, Pointee(kServiceRenderbufferId)))
487 cmds::DeleteRenderbuffersImmediate& cmd =
488 *GetImmediateAs<cmds::DeleteRenderbuffersImmediate>();
489 SpecializedSetup<cmds::DeleteRenderbuffersImmediate, 0>(true);
490 cmd.Init(1, &client_renderbuffer_id_);
491 EXPECT_EQ(error::kNoError,
492 ExecuteImmediateCmd(cmd, sizeof(client_renderbuffer_id_)));
493 EXPECT_EQ(GL_NO_ERROR, GetGLError());
494 EXPECT_TRUE(GetRenderbuffer(client_renderbuffer_id_) == NULL);
497 TEST_P(GLES2DecoderTest1, DeleteRenderbuffersImmediateInvalidArgs) {
498 cmds::DeleteRenderbuffersImmediate& cmd =
499 *GetImmediateAs<cmds::DeleteRenderbuffersImmediate>();
500 SpecializedSetup<cmds::DeleteRenderbuffersImmediate, 0>(false);
501 GLuint temp = kInvalidClientId;
503 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
506 TEST_P(GLES2DecoderTest1, DeleteShaderValidArgs) {
507 EXPECT_CALL(*gl_, DeleteShader(kServiceShaderId));
508 SpecializedSetup<cmds::DeleteShader, 0>(true);
509 cmds::DeleteShader cmd;
510 cmd.Init(client_shader_id_);
511 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
512 EXPECT_EQ(GL_NO_ERROR, GetGLError());
515 TEST_P(GLES2DecoderTest1, DeleteTexturesImmediateValidArgs) {
516 EXPECT_CALL(*gl_, DeleteTextures(1, Pointee(kServiceTextureId))).Times(1);
517 cmds::DeleteTexturesImmediate& cmd =
518 *GetImmediateAs<cmds::DeleteTexturesImmediate>();
519 SpecializedSetup<cmds::DeleteTexturesImmediate, 0>(true);
520 cmd.Init(1, &client_texture_id_);
521 EXPECT_EQ(error::kNoError,
522 ExecuteImmediateCmd(cmd, sizeof(client_texture_id_)));
523 EXPECT_EQ(GL_NO_ERROR, GetGLError());
524 EXPECT_TRUE(GetTexture(client_texture_id_) == NULL);
527 TEST_P(GLES2DecoderTest1, DeleteTexturesImmediateInvalidArgs) {
528 cmds::DeleteTexturesImmediate& cmd =
529 *GetImmediateAs<cmds::DeleteTexturesImmediate>();
530 SpecializedSetup<cmds::DeleteTexturesImmediate, 0>(false);
531 GLuint temp = kInvalidClientId;
533 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
536 TEST_P(GLES2DecoderTest1, DepthFuncValidArgs) {
537 EXPECT_CALL(*gl_, DepthFunc(GL_NEVER));
538 SpecializedSetup<cmds::DepthFunc, 0>(true);
541 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
542 EXPECT_EQ(GL_NO_ERROR, GetGLError());
545 TEST_P(GLES2DecoderTest1, DepthMaskValidArgs) {
546 SpecializedSetup<cmds::DepthMask, 0>(true);
549 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
550 EXPECT_EQ(GL_NO_ERROR, GetGLError());
553 TEST_P(GLES2DecoderTest1, DepthRangefValidArgs) {
554 EXPECT_CALL(*gl_, DepthRange(1, 2));
555 SpecializedSetup<cmds::DepthRangef, 0>(true);
556 cmds::DepthRangef cmd;
558 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
559 EXPECT_EQ(GL_NO_ERROR, GetGLError());
562 TEST_P(GLES2DecoderTest1, DetachShaderValidArgs) {
563 EXPECT_CALL(*gl_, DetachShader(kServiceProgramId, kServiceShaderId));
564 SpecializedSetup<cmds::DetachShader, 0>(true);
565 cmds::DetachShader cmd;
566 cmd.Init(client_program_id_, client_shader_id_);
567 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
568 EXPECT_EQ(GL_NO_ERROR, GetGLError());
571 TEST_P(GLES2DecoderTest1, DisableValidArgs) {
572 SetupExpectationsForEnableDisable(GL_BLEND, false);
573 SpecializedSetup<cmds::Disable, 0>(true);
576 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
577 EXPECT_EQ(GL_NO_ERROR, GetGLError());
580 TEST_P(GLES2DecoderTest1, DisableInvalidArgs0_0) {
581 EXPECT_CALL(*gl_, Disable(_)).Times(0);
582 SpecializedSetup<cmds::Disable, 0>(false);
584 cmd.Init(GL_CLIP_PLANE0);
585 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
586 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
589 TEST_P(GLES2DecoderTest1, DisableInvalidArgs0_1) {
590 EXPECT_CALL(*gl_, Disable(_)).Times(0);
591 SpecializedSetup<cmds::Disable, 0>(false);
593 cmd.Init(GL_POINT_SPRITE);
594 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
595 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
598 TEST_P(GLES2DecoderTest1, DisableVertexAttribArrayValidArgs) {
599 EXPECT_CALL(*gl_, DisableVertexAttribArray(1));
600 SpecializedSetup<cmds::DisableVertexAttribArray, 0>(true);
601 cmds::DisableVertexAttribArray cmd;
603 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
604 EXPECT_EQ(GL_NO_ERROR, GetGLError());
606 // TODO(gman): DrawArrays
608 // TODO(gman): DrawElements
610 TEST_P(GLES2DecoderTest1, EnableValidArgs) {
611 SetupExpectationsForEnableDisable(GL_BLEND, true);
612 SpecializedSetup<cmds::Enable, 0>(true);
615 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
616 EXPECT_EQ(GL_NO_ERROR, GetGLError());
619 TEST_P(GLES2DecoderTest1, EnableInvalidArgs0_0) {
620 EXPECT_CALL(*gl_, Enable(_)).Times(0);
621 SpecializedSetup<cmds::Enable, 0>(false);
623 cmd.Init(GL_CLIP_PLANE0);
624 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
625 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
628 TEST_P(GLES2DecoderTest1, EnableInvalidArgs0_1) {
629 EXPECT_CALL(*gl_, Enable(_)).Times(0);
630 SpecializedSetup<cmds::Enable, 0>(false);
632 cmd.Init(GL_POINT_SPRITE);
633 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
634 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
637 TEST_P(GLES2DecoderTest1, EnableVertexAttribArrayValidArgs) {
638 EXPECT_CALL(*gl_, EnableVertexAttribArray(1));
639 SpecializedSetup<cmds::EnableVertexAttribArray, 0>(true);
640 cmds::EnableVertexAttribArray cmd;
642 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
643 EXPECT_EQ(GL_NO_ERROR, GetGLError());
646 TEST_P(GLES2DecoderTest1, FinishValidArgs) {
647 EXPECT_CALL(*gl_, Finish());
648 SpecializedSetup<cmds::Finish, 0>(true);
651 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
652 EXPECT_EQ(GL_NO_ERROR, GetGLError());
655 TEST_P(GLES2DecoderTest1, FlushValidArgs) {
656 EXPECT_CALL(*gl_, Flush());
657 SpecializedSetup<cmds::Flush, 0>(true);
660 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
661 EXPECT_EQ(GL_NO_ERROR, GetGLError());
664 TEST_P(GLES2DecoderTest1, FramebufferRenderbufferValidArgs) {
665 EXPECT_CALL(*gl_, FramebufferRenderbufferEXT(
666 GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER,
667 kServiceRenderbufferId));
668 SpecializedSetup<cmds::FramebufferRenderbuffer, 0>(true);
669 cmds::FramebufferRenderbuffer cmd;
670 cmd.Init(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER,
671 client_renderbuffer_id_);
672 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
673 EXPECT_EQ(GL_NO_ERROR, GetGLError());
676 TEST_P(GLES2DecoderTest1, FramebufferRenderbufferInvalidArgs0_0) {
677 EXPECT_CALL(*gl_, FramebufferRenderbufferEXT(_, _, _, _)).Times(0);
678 SpecializedSetup<cmds::FramebufferRenderbuffer, 0>(false);
679 cmds::FramebufferRenderbuffer cmd;
680 cmd.Init(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER,
681 client_renderbuffer_id_);
682 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
683 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
686 TEST_P(GLES2DecoderTest1, FramebufferRenderbufferInvalidArgs0_1) {
687 EXPECT_CALL(*gl_, FramebufferRenderbufferEXT(_, _, _, _)).Times(0);
688 SpecializedSetup<cmds::FramebufferRenderbuffer, 0>(false);
689 cmds::FramebufferRenderbuffer cmd;
690 cmd.Init(GL_READ_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER,
691 client_renderbuffer_id_);
692 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
693 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
696 TEST_P(GLES2DecoderTest1, FramebufferRenderbufferInvalidArgs2_0) {
697 EXPECT_CALL(*gl_, FramebufferRenderbufferEXT(_, _, _, _)).Times(0);
698 SpecializedSetup<cmds::FramebufferRenderbuffer, 0>(false);
699 cmds::FramebufferRenderbuffer cmd;
700 cmd.Init(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_FRAMEBUFFER,
701 client_renderbuffer_id_);
702 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
703 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
706 TEST_P(GLES2DecoderTest1, FramebufferTexture2DValidArgs) {
708 FramebufferTexture2DEXT(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
709 GL_TEXTURE_2D, kServiceTextureId, 0));
710 SpecializedSetup<cmds::FramebufferTexture2D, 0>(true);
711 cmds::FramebufferTexture2D cmd;
712 cmd.Init(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
714 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
715 EXPECT_EQ(GL_NO_ERROR, GetGLError());
718 TEST_P(GLES2DecoderTest1, FramebufferTexture2DInvalidArgs0_0) {
719 EXPECT_CALL(*gl_, FramebufferTexture2DEXT(_, _, _, _, _)).Times(0);
720 SpecializedSetup<cmds::FramebufferTexture2D, 0>(false);
721 cmds::FramebufferTexture2D cmd;
722 cmd.Init(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
724 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
725 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
728 TEST_P(GLES2DecoderTest1, FramebufferTexture2DInvalidArgs0_1) {
729 EXPECT_CALL(*gl_, FramebufferTexture2DEXT(_, _, _, _, _)).Times(0);
730 SpecializedSetup<cmds::FramebufferTexture2D, 0>(false);
731 cmds::FramebufferTexture2D cmd;
732 cmd.Init(GL_READ_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
734 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
735 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
738 TEST_P(GLES2DecoderTest1, FramebufferTexture2DInvalidArgs2_0) {
739 EXPECT_CALL(*gl_, FramebufferTexture2DEXT(_, _, _, _, _)).Times(0);
740 SpecializedSetup<cmds::FramebufferTexture2D, 0>(false);
741 cmds::FramebufferTexture2D cmd;
742 cmd.Init(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_PROXY_TEXTURE_CUBE_MAP,
744 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
745 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
748 TEST_P(GLES2DecoderTest1, FrontFaceValidArgs) {
749 EXPECT_CALL(*gl_, FrontFace(GL_CW));
750 SpecializedSetup<cmds::FrontFace, 0>(true);
753 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
754 EXPECT_EQ(GL_NO_ERROR, GetGLError());
757 TEST_P(GLES2DecoderTest1, GenBuffersImmediateValidArgs) {
758 EXPECT_CALL(*gl_, GenBuffersARB(1, _))
759 .WillOnce(SetArgumentPointee<1>(kNewServiceId));
760 cmds::GenBuffersImmediate* cmd = GetImmediateAs<cmds::GenBuffersImmediate>();
761 GLuint temp = kNewClientId;
762 SpecializedSetup<cmds::GenBuffersImmediate, 0>(true);
764 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(*cmd, sizeof(temp)));
765 EXPECT_EQ(GL_NO_ERROR, GetGLError());
766 EXPECT_TRUE(GetBuffer(kNewClientId) != NULL);
769 TEST_P(GLES2DecoderTest1, GenBuffersImmediateInvalidArgs) {
770 EXPECT_CALL(*gl_, GenBuffersARB(_, _)).Times(0);
771 cmds::GenBuffersImmediate* cmd = GetImmediateAs<cmds::GenBuffersImmediate>();
772 SpecializedSetup<cmds::GenBuffersImmediate, 0>(false);
773 cmd->Init(1, &client_buffer_id_);
774 EXPECT_EQ(error::kInvalidArguments,
775 ExecuteImmediateCmd(*cmd, sizeof(&client_buffer_id_)));
778 TEST_P(GLES2DecoderTest1, GenerateMipmapValidArgs) {
779 EXPECT_CALL(*gl_, GenerateMipmapEXT(GL_TEXTURE_2D));
780 SpecializedSetup<cmds::GenerateMipmap, 0>(true);
781 cmds::GenerateMipmap cmd;
782 cmd.Init(GL_TEXTURE_2D);
783 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
784 EXPECT_EQ(GL_NO_ERROR, GetGLError());
787 TEST_P(GLES2DecoderTest1, GenerateMipmapInvalidArgs0_0) {
788 EXPECT_CALL(*gl_, GenerateMipmapEXT(_)).Times(0);
789 SpecializedSetup<cmds::GenerateMipmap, 0>(false);
790 cmds::GenerateMipmap cmd;
791 cmd.Init(GL_TEXTURE_1D);
792 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
793 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
796 TEST_P(GLES2DecoderTest1, GenerateMipmapInvalidArgs0_1) {
797 EXPECT_CALL(*gl_, GenerateMipmapEXT(_)).Times(0);
798 SpecializedSetup<cmds::GenerateMipmap, 0>(false);
799 cmds::GenerateMipmap cmd;
800 cmd.Init(GL_TEXTURE_3D);
801 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
802 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
805 TEST_P(GLES2DecoderTest1, GenFramebuffersImmediateValidArgs) {
806 EXPECT_CALL(*gl_, GenFramebuffersEXT(1, _))
807 .WillOnce(SetArgumentPointee<1>(kNewServiceId));
808 cmds::GenFramebuffersImmediate* cmd =
809 GetImmediateAs<cmds::GenFramebuffersImmediate>();
810 GLuint temp = kNewClientId;
811 SpecializedSetup<cmds::GenFramebuffersImmediate, 0>(true);
813 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(*cmd, sizeof(temp)));
814 EXPECT_EQ(GL_NO_ERROR, GetGLError());
815 EXPECT_TRUE(GetFramebuffer(kNewClientId) != NULL);
818 TEST_P(GLES2DecoderTest1, GenFramebuffersImmediateInvalidArgs) {
819 EXPECT_CALL(*gl_, GenFramebuffersEXT(_, _)).Times(0);
820 cmds::GenFramebuffersImmediate* cmd =
821 GetImmediateAs<cmds::GenFramebuffersImmediate>();
822 SpecializedSetup<cmds::GenFramebuffersImmediate, 0>(false);
823 cmd->Init(1, &client_framebuffer_id_);
824 EXPECT_EQ(error::kInvalidArguments,
825 ExecuteImmediateCmd(*cmd, sizeof(&client_framebuffer_id_)));
828 TEST_P(GLES2DecoderTest1, GenRenderbuffersImmediateValidArgs) {
829 EXPECT_CALL(*gl_, GenRenderbuffersEXT(1, _))
830 .WillOnce(SetArgumentPointee<1>(kNewServiceId));
831 cmds::GenRenderbuffersImmediate* cmd =
832 GetImmediateAs<cmds::GenRenderbuffersImmediate>();
833 GLuint temp = kNewClientId;
834 SpecializedSetup<cmds::GenRenderbuffersImmediate, 0>(true);
836 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(*cmd, sizeof(temp)));
837 EXPECT_EQ(GL_NO_ERROR, GetGLError());
838 EXPECT_TRUE(GetRenderbuffer(kNewClientId) != NULL);
841 TEST_P(GLES2DecoderTest1, GenRenderbuffersImmediateInvalidArgs) {
842 EXPECT_CALL(*gl_, GenRenderbuffersEXT(_, _)).Times(0);
843 cmds::GenRenderbuffersImmediate* cmd =
844 GetImmediateAs<cmds::GenRenderbuffersImmediate>();
845 SpecializedSetup<cmds::GenRenderbuffersImmediate, 0>(false);
846 cmd->Init(1, &client_renderbuffer_id_);
847 EXPECT_EQ(error::kInvalidArguments,
848 ExecuteImmediateCmd(*cmd, sizeof(&client_renderbuffer_id_)));
851 TEST_P(GLES2DecoderTest1, GenTexturesImmediateValidArgs) {
852 EXPECT_CALL(*gl_, GenTextures(1, _))
853 .WillOnce(SetArgumentPointee<1>(kNewServiceId));
854 cmds::GenTexturesImmediate* cmd =
855 GetImmediateAs<cmds::GenTexturesImmediate>();
856 GLuint temp = kNewClientId;
857 SpecializedSetup<cmds::GenTexturesImmediate, 0>(true);
859 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(*cmd, sizeof(temp)));
860 EXPECT_EQ(GL_NO_ERROR, GetGLError());
861 EXPECT_TRUE(GetTexture(kNewClientId) != NULL);
864 TEST_P(GLES2DecoderTest1, GenTexturesImmediateInvalidArgs) {
865 EXPECT_CALL(*gl_, GenTextures(_, _)).Times(0);
866 cmds::GenTexturesImmediate* cmd =
867 GetImmediateAs<cmds::GenTexturesImmediate>();
868 SpecializedSetup<cmds::GenTexturesImmediate, 0>(false);
869 cmd->Init(1, &client_texture_id_);
870 EXPECT_EQ(error::kInvalidArguments,
871 ExecuteImmediateCmd(*cmd, sizeof(&client_texture_id_)));
873 // TODO(gman): GetActiveAttrib
875 // TODO(gman): GetActiveUniform
877 // TODO(gman): GetAttachedShaders
879 // TODO(gman): GetAttribLocation
881 TEST_P(GLES2DecoderTest1, GetBooleanvValidArgs) {
882 EXPECT_CALL(*gl_, GetError())
883 .WillOnce(Return(GL_NO_ERROR))
884 .WillOnce(Return(GL_NO_ERROR))
885 .RetiresOnSaturation();
886 SpecializedSetup<cmds::GetBooleanv, 0>(true);
887 typedef cmds::GetBooleanv::Result Result;
888 Result* result = static_cast<Result*>(shared_memory_address_);
889 EXPECT_CALL(*gl_, GetBooleanv(GL_ACTIVE_TEXTURE, result->GetData()));
891 cmds::GetBooleanv cmd;
892 cmd.Init(GL_ACTIVE_TEXTURE, shared_memory_id_, shared_memory_offset_);
893 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
894 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_ACTIVE_TEXTURE),
895 result->GetNumResults());
896 EXPECT_EQ(GL_NO_ERROR, GetGLError());
899 TEST_P(GLES2DecoderTest1, GetBooleanvInvalidArgs0_0) {
900 EXPECT_CALL(*gl_, GetBooleanv(_, _)).Times(0);
901 SpecializedSetup<cmds::GetBooleanv, 0>(false);
902 cmds::GetBooleanv::Result* result =
903 static_cast<cmds::GetBooleanv::Result*>(shared_memory_address_);
905 cmds::GetBooleanv cmd;
906 cmd.Init(GL_FOG_HINT, shared_memory_id_, shared_memory_offset_);
907 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
908 EXPECT_EQ(0u, result->size);
909 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
912 TEST_P(GLES2DecoderTest1, GetBooleanvInvalidArgs1_0) {
913 EXPECT_CALL(*gl_, GetBooleanv(_, _)).Times(0);
914 SpecializedSetup<cmds::GetBooleanv, 0>(false);
915 cmds::GetBooleanv::Result* result =
916 static_cast<cmds::GetBooleanv::Result*>(shared_memory_address_);
918 cmds::GetBooleanv cmd;
919 cmd.Init(GL_ACTIVE_TEXTURE, kInvalidSharedMemoryId, 0);
920 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
921 EXPECT_EQ(0u, result->size);
924 TEST_P(GLES2DecoderTest1, GetBooleanvInvalidArgs1_1) {
925 EXPECT_CALL(*gl_, GetBooleanv(_, _)).Times(0);
926 SpecializedSetup<cmds::GetBooleanv, 0>(false);
927 cmds::GetBooleanv::Result* result =
928 static_cast<cmds::GetBooleanv::Result*>(shared_memory_address_);
930 cmds::GetBooleanv cmd;
931 cmd.Init(GL_ACTIVE_TEXTURE, shared_memory_id_, kInvalidSharedMemoryOffset);
932 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
933 EXPECT_EQ(0u, result->size);
936 TEST_P(GLES2DecoderTest1, GetBufferParameterivValidArgs) {
937 SpecializedSetup<cmds::GetBufferParameteriv, 0>(true);
938 typedef cmds::GetBufferParameteriv::Result Result;
939 Result* result = static_cast<Result*>(shared_memory_address_);
941 cmds::GetBufferParameteriv cmd;
942 cmd.Init(GL_ARRAY_BUFFER, GL_BUFFER_SIZE, shared_memory_id_,
943 shared_memory_offset_);
944 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
945 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_BUFFER_SIZE),
946 result->GetNumResults());
947 EXPECT_EQ(GL_NO_ERROR, GetGLError());
950 TEST_P(GLES2DecoderTest1, GetBufferParameterivInvalidArgs0_0) {
951 EXPECT_CALL(*gl_, GetBufferParameteriv(_, _, _)).Times(0);
952 SpecializedSetup<cmds::GetBufferParameteriv, 0>(false);
953 cmds::GetBufferParameteriv::Result* result =
954 static_cast<cmds::GetBufferParameteriv::Result*>(shared_memory_address_);
956 cmds::GetBufferParameteriv cmd;
957 cmd.Init(GL_RENDERBUFFER, GL_BUFFER_SIZE, shared_memory_id_,
958 shared_memory_offset_);
959 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
960 EXPECT_EQ(0u, result->size);
961 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
964 TEST_P(GLES2DecoderTest1, GetBufferParameterivInvalidArgs1_0) {
965 EXPECT_CALL(*gl_, GetBufferParameteriv(_, _, _)).Times(0);
966 SpecializedSetup<cmds::GetBufferParameteriv, 0>(false);
967 cmds::GetBufferParameteriv::Result* result =
968 static_cast<cmds::GetBufferParameteriv::Result*>(shared_memory_address_);
970 cmds::GetBufferParameteriv cmd;
971 cmd.Init(GL_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, shared_memory_id_,
972 shared_memory_offset_);
973 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
974 EXPECT_EQ(0u, result->size);
975 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
978 TEST_P(GLES2DecoderTest1, GetBufferParameterivInvalidArgs2_0) {
979 EXPECT_CALL(*gl_, GetBufferParameteriv(_, _, _)).Times(0);
980 SpecializedSetup<cmds::GetBufferParameteriv, 0>(false);
981 cmds::GetBufferParameteriv::Result* result =
982 static_cast<cmds::GetBufferParameteriv::Result*>(shared_memory_address_);
984 cmds::GetBufferParameteriv cmd;
985 cmd.Init(GL_ARRAY_BUFFER, GL_BUFFER_SIZE, kInvalidSharedMemoryId, 0);
986 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
987 EXPECT_EQ(0u, result->size);
990 TEST_P(GLES2DecoderTest1, GetBufferParameterivInvalidArgs2_1) {
991 EXPECT_CALL(*gl_, GetBufferParameteriv(_, _, _)).Times(0);
992 SpecializedSetup<cmds::GetBufferParameteriv, 0>(false);
993 cmds::GetBufferParameteriv::Result* result =
994 static_cast<cmds::GetBufferParameteriv::Result*>(shared_memory_address_);
996 cmds::GetBufferParameteriv cmd;
997 cmd.Init(GL_ARRAY_BUFFER, GL_BUFFER_SIZE, shared_memory_id_,
998 kInvalidSharedMemoryOffset);
999 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1000 EXPECT_EQ(0u, result->size);
1003 TEST_P(GLES2DecoderTest1, GetErrorValidArgs) {
1004 EXPECT_CALL(*gl_, GetError());
1005 SpecializedSetup<cmds::GetError, 0>(true);
1007 cmd.Init(shared_memory_id_, shared_memory_offset_);
1008 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1009 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1012 TEST_P(GLES2DecoderTest1, GetErrorInvalidArgsBadSharedMemoryId) {
1013 EXPECT_CALL(*gl_, GetError()).Times(0);
1014 SpecializedSetup<cmds::GetError, 0>(false);
1016 cmd.Init(kInvalidSharedMemoryId, shared_memory_offset_);
1017 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1018 cmd.Init(shared_memory_id_, kInvalidSharedMemoryOffset);
1019 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1022 TEST_P(GLES2DecoderTest1, GetFloatvValidArgs) {
1023 EXPECT_CALL(*gl_, GetError())
1024 .WillOnce(Return(GL_NO_ERROR))
1025 .WillOnce(Return(GL_NO_ERROR))
1026 .RetiresOnSaturation();
1027 SpecializedSetup<cmds::GetFloatv, 0>(true);
1028 typedef cmds::GetFloatv::Result Result;
1029 Result* result = static_cast<Result*>(shared_memory_address_);
1030 EXPECT_CALL(*gl_, GetFloatv(GL_ACTIVE_TEXTURE, result->GetData()));
1032 cmds::GetFloatv cmd;
1033 cmd.Init(GL_ACTIVE_TEXTURE, shared_memory_id_, shared_memory_offset_);
1034 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1035 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_ACTIVE_TEXTURE),
1036 result->GetNumResults());
1037 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1040 TEST_P(GLES2DecoderTest1, GetFloatvInvalidArgs0_0) {
1041 EXPECT_CALL(*gl_, GetFloatv(_, _)).Times(0);
1042 SpecializedSetup<cmds::GetFloatv, 0>(false);
1043 cmds::GetFloatv::Result* result =
1044 static_cast<cmds::GetFloatv::Result*>(shared_memory_address_);
1046 cmds::GetFloatv cmd;
1047 cmd.Init(GL_FOG_HINT, shared_memory_id_, shared_memory_offset_);
1048 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1049 EXPECT_EQ(0u, result->size);
1050 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1053 TEST_P(GLES2DecoderTest1, GetFloatvInvalidArgs1_0) {
1054 EXPECT_CALL(*gl_, GetFloatv(_, _)).Times(0);
1055 SpecializedSetup<cmds::GetFloatv, 0>(false);
1056 cmds::GetFloatv::Result* result =
1057 static_cast<cmds::GetFloatv::Result*>(shared_memory_address_);
1059 cmds::GetFloatv cmd;
1060 cmd.Init(GL_ACTIVE_TEXTURE, kInvalidSharedMemoryId, 0);
1061 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1062 EXPECT_EQ(0u, result->size);
1065 TEST_P(GLES2DecoderTest1, GetFloatvInvalidArgs1_1) {
1066 EXPECT_CALL(*gl_, GetFloatv(_, _)).Times(0);
1067 SpecializedSetup<cmds::GetFloatv, 0>(false);
1068 cmds::GetFloatv::Result* result =
1069 static_cast<cmds::GetFloatv::Result*>(shared_memory_address_);
1071 cmds::GetFloatv cmd;
1072 cmd.Init(GL_ACTIVE_TEXTURE, shared_memory_id_, kInvalidSharedMemoryOffset);
1073 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1074 EXPECT_EQ(0u, result->size);
1077 TEST_P(GLES2DecoderTest1, GetFramebufferAttachmentParameterivValidArgs) {
1078 EXPECT_CALL(*gl_, GetError())
1079 .WillOnce(Return(GL_NO_ERROR))
1080 .WillOnce(Return(GL_NO_ERROR))
1081 .RetiresOnSaturation();
1082 SpecializedSetup<cmds::GetFramebufferAttachmentParameteriv, 0>(true);
1083 typedef cmds::GetFramebufferAttachmentParameteriv::Result Result;
1084 Result* result = static_cast<Result*>(shared_memory_address_);
1086 GetFramebufferAttachmentParameterivEXT(
1087 GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
1088 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, result->GetData()));
1090 cmds::GetFramebufferAttachmentParameteriv cmd;
1091 cmd.Init(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
1092 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, shared_memory_id_,
1093 shared_memory_offset_);
1094 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1095 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(
1096 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE),
1097 result->GetNumResults());
1098 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1101 TEST_P(GLES2DecoderTest1, GetFramebufferAttachmentParameterivInvalidArgs0_0) {
1102 EXPECT_CALL(*gl_, GetFramebufferAttachmentParameterivEXT(_, _, _, _))
1104 SpecializedSetup<cmds::GetFramebufferAttachmentParameteriv, 0>(false);
1105 cmds::GetFramebufferAttachmentParameteriv::Result* result =
1106 static_cast<cmds::GetFramebufferAttachmentParameteriv::Result*>(
1107 shared_memory_address_);
1109 cmds::GetFramebufferAttachmentParameteriv cmd;
1110 cmd.Init(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
1111 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, shared_memory_id_,
1112 shared_memory_offset_);
1113 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1114 EXPECT_EQ(0u, result->size);
1115 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1118 TEST_P(GLES2DecoderTest1, GetFramebufferAttachmentParameterivInvalidArgs0_1) {
1119 EXPECT_CALL(*gl_, GetFramebufferAttachmentParameterivEXT(_, _, _, _))
1121 SpecializedSetup<cmds::GetFramebufferAttachmentParameteriv, 0>(false);
1122 cmds::GetFramebufferAttachmentParameteriv::Result* result =
1123 static_cast<cmds::GetFramebufferAttachmentParameteriv::Result*>(
1124 shared_memory_address_);
1126 cmds::GetFramebufferAttachmentParameteriv cmd;
1127 cmd.Init(GL_READ_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
1128 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, shared_memory_id_,
1129 shared_memory_offset_);
1130 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1131 EXPECT_EQ(0u, result->size);
1132 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1135 TEST_P(GLES2DecoderTest1, GetFramebufferAttachmentParameterivInvalidArgs3_0) {
1136 EXPECT_CALL(*gl_, GetFramebufferAttachmentParameterivEXT(_, _, _, _))
1138 SpecializedSetup<cmds::GetFramebufferAttachmentParameteriv, 0>(false);
1139 cmds::GetFramebufferAttachmentParameteriv::Result* result =
1140 static_cast<cmds::GetFramebufferAttachmentParameteriv::Result*>(
1141 shared_memory_address_);
1143 cmds::GetFramebufferAttachmentParameteriv cmd;
1144 cmd.Init(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
1145 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, kInvalidSharedMemoryId, 0);
1146 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1147 EXPECT_EQ(0u, result->size);
1150 TEST_P(GLES2DecoderTest1, GetFramebufferAttachmentParameterivInvalidArgs3_1) {
1151 EXPECT_CALL(*gl_, GetFramebufferAttachmentParameterivEXT(_, _, _, _))
1153 SpecializedSetup<cmds::GetFramebufferAttachmentParameteriv, 0>(false);
1154 cmds::GetFramebufferAttachmentParameteriv::Result* result =
1155 static_cast<cmds::GetFramebufferAttachmentParameteriv::Result*>(
1156 shared_memory_address_);
1158 cmds::GetFramebufferAttachmentParameteriv cmd;
1159 cmd.Init(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
1160 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, shared_memory_id_,
1161 kInvalidSharedMemoryOffset);
1162 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1163 EXPECT_EQ(0u, result->size);
1166 TEST_P(GLES2DecoderTest1, GetIntegervValidArgs) {
1167 EXPECT_CALL(*gl_, GetError())
1168 .WillOnce(Return(GL_NO_ERROR))
1169 .WillOnce(Return(GL_NO_ERROR))
1170 .RetiresOnSaturation();
1171 SpecializedSetup<cmds::GetIntegerv, 0>(true);
1172 typedef cmds::GetIntegerv::Result Result;
1173 Result* result = static_cast<Result*>(shared_memory_address_);
1174 EXPECT_CALL(*gl_, GetIntegerv(GL_ACTIVE_TEXTURE, result->GetData()));
1176 cmds::GetIntegerv cmd;
1177 cmd.Init(GL_ACTIVE_TEXTURE, shared_memory_id_, shared_memory_offset_);
1178 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1179 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_ACTIVE_TEXTURE),
1180 result->GetNumResults());
1181 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1184 TEST_P(GLES2DecoderTest1, GetIntegervInvalidArgs0_0) {
1185 EXPECT_CALL(*gl_, GetIntegerv(_, _)).Times(0);
1186 SpecializedSetup<cmds::GetIntegerv, 0>(false);
1187 cmds::GetIntegerv::Result* result =
1188 static_cast<cmds::GetIntegerv::Result*>(shared_memory_address_);
1190 cmds::GetIntegerv cmd;
1191 cmd.Init(GL_FOG_HINT, shared_memory_id_, shared_memory_offset_);
1192 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1193 EXPECT_EQ(0u, result->size);
1194 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1197 TEST_P(GLES2DecoderTest1, GetIntegervInvalidArgs1_0) {
1198 EXPECT_CALL(*gl_, GetIntegerv(_, _)).Times(0);
1199 SpecializedSetup<cmds::GetIntegerv, 0>(false);
1200 cmds::GetIntegerv::Result* result =
1201 static_cast<cmds::GetIntegerv::Result*>(shared_memory_address_);
1203 cmds::GetIntegerv cmd;
1204 cmd.Init(GL_ACTIVE_TEXTURE, kInvalidSharedMemoryId, 0);
1205 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1206 EXPECT_EQ(0u, result->size);
1209 TEST_P(GLES2DecoderTest1, GetIntegervInvalidArgs1_1) {
1210 EXPECT_CALL(*gl_, GetIntegerv(_, _)).Times(0);
1211 SpecializedSetup<cmds::GetIntegerv, 0>(false);
1212 cmds::GetIntegerv::Result* result =
1213 static_cast<cmds::GetIntegerv::Result*>(shared_memory_address_);
1215 cmds::GetIntegerv cmd;
1216 cmd.Init(GL_ACTIVE_TEXTURE, shared_memory_id_, kInvalidSharedMemoryOffset);
1217 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1218 EXPECT_EQ(0u, result->size);
1221 TEST_P(GLES2DecoderTest1, GetProgramivValidArgs) {
1222 SpecializedSetup<cmds::GetProgramiv, 0>(true);
1223 typedef cmds::GetProgramiv::Result Result;
1224 Result* result = static_cast<Result*>(shared_memory_address_);
1226 cmds::GetProgramiv cmd;
1227 cmd.Init(client_program_id_, GL_DELETE_STATUS, shared_memory_id_,
1228 shared_memory_offset_);
1229 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1230 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_DELETE_STATUS),
1231 result->GetNumResults());
1232 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1235 TEST_P(GLES2DecoderTest1, GetProgramivInvalidArgs2_0) {
1236 EXPECT_CALL(*gl_, GetProgramiv(_, _, _)).Times(0);
1237 SpecializedSetup<cmds::GetProgramiv, 0>(false);
1238 cmds::GetProgramiv::Result* result =
1239 static_cast<cmds::GetProgramiv::Result*>(shared_memory_address_);
1241 cmds::GetProgramiv cmd;
1242 cmd.Init(client_program_id_, GL_DELETE_STATUS, kInvalidSharedMemoryId, 0);
1243 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1244 EXPECT_EQ(0u, result->size);
1247 TEST_P(GLES2DecoderTest1, GetProgramivInvalidArgs2_1) {
1248 EXPECT_CALL(*gl_, GetProgramiv(_, _, _)).Times(0);
1249 SpecializedSetup<cmds::GetProgramiv, 0>(false);
1250 cmds::GetProgramiv::Result* result =
1251 static_cast<cmds::GetProgramiv::Result*>(shared_memory_address_);
1253 cmds::GetProgramiv cmd;
1254 cmd.Init(client_program_id_, GL_DELETE_STATUS, shared_memory_id_,
1255 kInvalidSharedMemoryOffset);
1256 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1257 EXPECT_EQ(0u, result->size);
1260 TEST_P(GLES2DecoderTest1, GetProgramInfoLogValidArgs) {
1261 const char* kInfo = "hello";
1262 const uint32_t kBucketId = 123;
1263 SpecializedSetup<cmds::GetProgramInfoLog, 0>(true);
1265 cmds::GetProgramInfoLog cmd;
1266 cmd.Init(client_program_id_, kBucketId);
1267 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1268 CommonDecoder::Bucket* bucket = decoder_->GetBucket(kBucketId);
1269 ASSERT_TRUE(bucket != NULL);
1270 EXPECT_EQ(strlen(kInfo) + 1, bucket->size());
1272 memcmp(bucket->GetData(0, bucket->size()), kInfo, bucket->size()));
1273 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1276 TEST_P(GLES2DecoderTest1, GetProgramInfoLogInvalidArgs) {
1277 const uint32_t kBucketId = 123;
1278 cmds::GetProgramInfoLog cmd;
1279 cmd.Init(kInvalidClientId, kBucketId);
1280 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1281 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
1284 TEST_P(GLES2DecoderTest1, GetRenderbufferParameterivValidArgs) {
1285 EXPECT_CALL(*gl_, GetError())
1286 .WillOnce(Return(GL_NO_ERROR))
1287 .WillOnce(Return(GL_NO_ERROR))
1288 .RetiresOnSaturation();
1289 SpecializedSetup<cmds::GetRenderbufferParameteriv, 0>(true);
1290 typedef cmds::GetRenderbufferParameteriv::Result Result;
1291 Result* result = static_cast<Result*>(shared_memory_address_);
1293 *gl_, GetRenderbufferParameterivEXT(
1294 GL_RENDERBUFFER, GL_RENDERBUFFER_RED_SIZE, result->GetData()));
1296 cmds::GetRenderbufferParameteriv cmd;
1297 cmd.Init(GL_RENDERBUFFER, GL_RENDERBUFFER_RED_SIZE, shared_memory_id_,
1298 shared_memory_offset_);
1299 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1300 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(
1301 GL_RENDERBUFFER_RED_SIZE),
1302 result->GetNumResults());
1303 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1306 TEST_P(GLES2DecoderTest1, GetRenderbufferParameterivInvalidArgs0_0) {
1307 EXPECT_CALL(*gl_, GetRenderbufferParameterivEXT(_, _, _)).Times(0);
1308 SpecializedSetup<cmds::GetRenderbufferParameteriv, 0>(false);
1309 cmds::GetRenderbufferParameteriv::Result* result =
1310 static_cast<cmds::GetRenderbufferParameteriv::Result*>(
1311 shared_memory_address_);
1313 cmds::GetRenderbufferParameteriv cmd;
1314 cmd.Init(GL_FRAMEBUFFER, GL_RENDERBUFFER_RED_SIZE, shared_memory_id_,
1315 shared_memory_offset_);
1316 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1317 EXPECT_EQ(0u, result->size);
1318 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1321 TEST_P(GLES2DecoderTest1, GetRenderbufferParameterivInvalidArgs2_0) {
1322 EXPECT_CALL(*gl_, GetRenderbufferParameterivEXT(_, _, _)).Times(0);
1323 SpecializedSetup<cmds::GetRenderbufferParameteriv, 0>(false);
1324 cmds::GetRenderbufferParameteriv::Result* result =
1325 static_cast<cmds::GetRenderbufferParameteriv::Result*>(
1326 shared_memory_address_);
1328 cmds::GetRenderbufferParameteriv cmd;
1329 cmd.Init(GL_RENDERBUFFER, GL_RENDERBUFFER_RED_SIZE, kInvalidSharedMemoryId,
1331 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1332 EXPECT_EQ(0u, result->size);
1335 TEST_P(GLES2DecoderTest1, GetRenderbufferParameterivInvalidArgs2_1) {
1336 EXPECT_CALL(*gl_, GetRenderbufferParameterivEXT(_, _, _)).Times(0);
1337 SpecializedSetup<cmds::GetRenderbufferParameteriv, 0>(false);
1338 cmds::GetRenderbufferParameteriv::Result* result =
1339 static_cast<cmds::GetRenderbufferParameteriv::Result*>(
1340 shared_memory_address_);
1342 cmds::GetRenderbufferParameteriv cmd;
1343 cmd.Init(GL_RENDERBUFFER, GL_RENDERBUFFER_RED_SIZE, shared_memory_id_,
1344 kInvalidSharedMemoryOffset);
1345 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1346 EXPECT_EQ(0u, result->size);
1349 TEST_P(GLES2DecoderTest1, GetShaderivValidArgs) {
1350 EXPECT_CALL(*gl_, GetError())
1351 .WillOnce(Return(GL_NO_ERROR))
1352 .WillOnce(Return(GL_NO_ERROR))
1353 .RetiresOnSaturation();
1354 SpecializedSetup<cmds::GetShaderiv, 0>(true);
1355 typedef cmds::GetShaderiv::Result Result;
1356 Result* result = static_cast<Result*>(shared_memory_address_);
1358 GetShaderiv(kServiceShaderId, GL_SHADER_TYPE, result->GetData()));
1360 cmds::GetShaderiv cmd;
1361 cmd.Init(client_shader_id_, GL_SHADER_TYPE, shared_memory_id_,
1362 shared_memory_offset_);
1363 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1364 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_SHADER_TYPE),
1365 result->GetNumResults());
1366 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1369 TEST_P(GLES2DecoderTest1, GetShaderivInvalidArgs2_0) {
1370 EXPECT_CALL(*gl_, GetShaderiv(_, _, _)).Times(0);
1371 SpecializedSetup<cmds::GetShaderiv, 0>(false);
1372 cmds::GetShaderiv::Result* result =
1373 static_cast<cmds::GetShaderiv::Result*>(shared_memory_address_);
1375 cmds::GetShaderiv cmd;
1376 cmd.Init(client_shader_id_, GL_SHADER_TYPE, kInvalidSharedMemoryId, 0);
1377 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1378 EXPECT_EQ(0u, result->size);
1381 TEST_P(GLES2DecoderTest1, GetShaderivInvalidArgs2_1) {
1382 EXPECT_CALL(*gl_, GetShaderiv(_, _, _)).Times(0);
1383 SpecializedSetup<cmds::GetShaderiv, 0>(false);
1384 cmds::GetShaderiv::Result* result =
1385 static_cast<cmds::GetShaderiv::Result*>(shared_memory_address_);
1387 cmds::GetShaderiv cmd;
1388 cmd.Init(client_shader_id_, GL_SHADER_TYPE, shared_memory_id_,
1389 kInvalidSharedMemoryOffset);
1390 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1391 EXPECT_EQ(0u, result->size);
1393 // TODO(gman): GetShaderInfoLog
1394 // TODO(gman): GetShaderPrecisionFormat
1396 // TODO(gman): GetShaderSource
1397 // TODO(gman): GetString
1399 TEST_P(GLES2DecoderTest1, GetTexParameterfvValidArgs) {
1400 EXPECT_CALL(*gl_, GetError())
1401 .WillOnce(Return(GL_NO_ERROR))
1402 .WillOnce(Return(GL_NO_ERROR))
1403 .RetiresOnSaturation();
1404 SpecializedSetup<cmds::GetTexParameterfv, 0>(true);
1405 typedef cmds::GetTexParameterfv::Result Result;
1406 Result* result = static_cast<Result*>(shared_memory_address_);
1407 EXPECT_CALL(*gl_, GetTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,
1408 result->GetData()));
1410 cmds::GetTexParameterfv cmd;
1411 cmd.Init(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, shared_memory_id_,
1412 shared_memory_offset_);
1413 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1415 decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_TEXTURE_MAG_FILTER),
1416 result->GetNumResults());
1417 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1420 TEST_P(GLES2DecoderTest1, GetTexParameterfvInvalidArgs0_0) {
1421 EXPECT_CALL(*gl_, GetTexParameterfv(_, _, _)).Times(0);
1422 SpecializedSetup<cmds::GetTexParameterfv, 0>(false);
1423 cmds::GetTexParameterfv::Result* result =
1424 static_cast<cmds::GetTexParameterfv::Result*>(shared_memory_address_);
1426 cmds::GetTexParameterfv cmd;
1427 cmd.Init(GL_PROXY_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, shared_memory_id_,
1428 shared_memory_offset_);
1429 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1430 EXPECT_EQ(0u, result->size);
1431 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1434 TEST_P(GLES2DecoderTest1, GetTexParameterfvInvalidArgs1_0) {
1435 EXPECT_CALL(*gl_, GetTexParameterfv(_, _, _)).Times(0);
1436 SpecializedSetup<cmds::GetTexParameterfv, 0>(false);
1437 cmds::GetTexParameterfv::Result* result =
1438 static_cast<cmds::GetTexParameterfv::Result*>(shared_memory_address_);
1440 cmds::GetTexParameterfv cmd;
1441 cmd.Init(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, shared_memory_id_,
1442 shared_memory_offset_);
1443 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1444 EXPECT_EQ(0u, result->size);
1445 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1448 TEST_P(GLES2DecoderTest1, GetTexParameterfvInvalidArgs2_0) {
1449 EXPECT_CALL(*gl_, GetTexParameterfv(_, _, _)).Times(0);
1450 SpecializedSetup<cmds::GetTexParameterfv, 0>(false);
1451 cmds::GetTexParameterfv::Result* result =
1452 static_cast<cmds::GetTexParameterfv::Result*>(shared_memory_address_);
1454 cmds::GetTexParameterfv cmd;
1455 cmd.Init(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, kInvalidSharedMemoryId, 0);
1456 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1457 EXPECT_EQ(0u, result->size);
1460 TEST_P(GLES2DecoderTest1, GetTexParameterfvInvalidArgs2_1) {
1461 EXPECT_CALL(*gl_, GetTexParameterfv(_, _, _)).Times(0);
1462 SpecializedSetup<cmds::GetTexParameterfv, 0>(false);
1463 cmds::GetTexParameterfv::Result* result =
1464 static_cast<cmds::GetTexParameterfv::Result*>(shared_memory_address_);
1466 cmds::GetTexParameterfv cmd;
1467 cmd.Init(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, shared_memory_id_,
1468 kInvalidSharedMemoryOffset);
1469 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1470 EXPECT_EQ(0u, result->size);
1473 TEST_P(GLES2DecoderTest1, GetTexParameterivValidArgs) {
1474 EXPECT_CALL(*gl_, GetError())
1475 .WillOnce(Return(GL_NO_ERROR))
1476 .WillOnce(Return(GL_NO_ERROR))
1477 .RetiresOnSaturation();
1478 SpecializedSetup<cmds::GetTexParameteriv, 0>(true);
1479 typedef cmds::GetTexParameteriv::Result Result;
1480 Result* result = static_cast<Result*>(shared_memory_address_);
1481 EXPECT_CALL(*gl_, GetTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,
1482 result->GetData()));
1484 cmds::GetTexParameteriv cmd;
1485 cmd.Init(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, shared_memory_id_,
1486 shared_memory_offset_);
1487 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1489 decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_TEXTURE_MAG_FILTER),
1490 result->GetNumResults());
1491 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1494 TEST_P(GLES2DecoderTest1, GetTexParameterivInvalidArgs0_0) {
1495 EXPECT_CALL(*gl_, GetTexParameteriv(_, _, _)).Times(0);
1496 SpecializedSetup<cmds::GetTexParameteriv, 0>(false);
1497 cmds::GetTexParameteriv::Result* result =
1498 static_cast<cmds::GetTexParameteriv::Result*>(shared_memory_address_);
1500 cmds::GetTexParameteriv cmd;
1501 cmd.Init(GL_PROXY_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, shared_memory_id_,
1502 shared_memory_offset_);
1503 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1504 EXPECT_EQ(0u, result->size);
1505 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1508 TEST_P(GLES2DecoderTest1, GetTexParameterivInvalidArgs1_0) {
1509 EXPECT_CALL(*gl_, GetTexParameteriv(_, _, _)).Times(0);
1510 SpecializedSetup<cmds::GetTexParameteriv, 0>(false);
1511 cmds::GetTexParameteriv::Result* result =
1512 static_cast<cmds::GetTexParameteriv::Result*>(shared_memory_address_);
1514 cmds::GetTexParameteriv cmd;
1515 cmd.Init(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, shared_memory_id_,
1516 shared_memory_offset_);
1517 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1518 EXPECT_EQ(0u, result->size);
1519 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1522 TEST_P(GLES2DecoderTest1, GetTexParameterivInvalidArgs2_0) {
1523 EXPECT_CALL(*gl_, GetTexParameteriv(_, _, _)).Times(0);
1524 SpecializedSetup<cmds::GetTexParameteriv, 0>(false);
1525 cmds::GetTexParameteriv::Result* result =
1526 static_cast<cmds::GetTexParameteriv::Result*>(shared_memory_address_);
1528 cmds::GetTexParameteriv cmd;
1529 cmd.Init(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, kInvalidSharedMemoryId, 0);
1530 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1531 EXPECT_EQ(0u, result->size);
1534 TEST_P(GLES2DecoderTest1, GetTexParameterivInvalidArgs2_1) {
1535 EXPECT_CALL(*gl_, GetTexParameteriv(_, _, _)).Times(0);
1536 SpecializedSetup<cmds::GetTexParameteriv, 0>(false);
1537 cmds::GetTexParameteriv::Result* result =
1538 static_cast<cmds::GetTexParameteriv::Result*>(shared_memory_address_);
1540 cmds::GetTexParameteriv cmd;
1541 cmd.Init(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, shared_memory_id_,
1542 kInvalidSharedMemoryOffset);
1543 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1544 EXPECT_EQ(0u, result->size);
1546 // TODO(gman): GetUniformfv
1548 // TODO(gman): GetUniformiv
1550 // TODO(gman): GetUniformLocation
1552 TEST_P(GLES2DecoderTest1, GetVertexAttribfvValidArgs) {
1553 SpecializedSetup<cmds::GetVertexAttribfv, 0>(true);
1554 typedef cmds::GetVertexAttribfv::Result Result;
1555 Result* result = static_cast<Result*>(shared_memory_address_);
1557 cmds::GetVertexAttribfv cmd;
1558 cmd.Init(1, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, shared_memory_id_,
1559 shared_memory_offset_);
1560 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1561 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(
1562 GL_VERTEX_ATTRIB_ARRAY_NORMALIZED),
1563 result->GetNumResults());
1564 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1567 TEST_P(GLES2DecoderTest1, GetVertexAttribfvInvalidArgs2_0) {
1568 EXPECT_CALL(*gl_, GetVertexAttribfv(_, _, _)).Times(0);
1569 SpecializedSetup<cmds::GetVertexAttribfv, 0>(false);
1570 cmds::GetVertexAttribfv::Result* result =
1571 static_cast<cmds::GetVertexAttribfv::Result*>(shared_memory_address_);
1573 cmds::GetVertexAttribfv cmd;
1574 cmd.Init(1, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, kInvalidSharedMemoryId, 0);
1575 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1576 EXPECT_EQ(0u, result->size);
1579 TEST_P(GLES2DecoderTest1, GetVertexAttribfvInvalidArgs2_1) {
1580 EXPECT_CALL(*gl_, GetVertexAttribfv(_, _, _)).Times(0);
1581 SpecializedSetup<cmds::GetVertexAttribfv, 0>(false);
1582 cmds::GetVertexAttribfv::Result* result =
1583 static_cast<cmds::GetVertexAttribfv::Result*>(shared_memory_address_);
1585 cmds::GetVertexAttribfv cmd;
1586 cmd.Init(1, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, shared_memory_id_,
1587 kInvalidSharedMemoryOffset);
1588 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1589 EXPECT_EQ(0u, result->size);
1592 TEST_P(GLES2DecoderTest1, GetVertexAttribivValidArgs) {
1593 SpecializedSetup<cmds::GetVertexAttribiv, 0>(true);
1594 typedef cmds::GetVertexAttribiv::Result Result;
1595 Result* result = static_cast<Result*>(shared_memory_address_);
1597 cmds::GetVertexAttribiv cmd;
1598 cmd.Init(1, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, shared_memory_id_,
1599 shared_memory_offset_);
1600 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1601 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(
1602 GL_VERTEX_ATTRIB_ARRAY_NORMALIZED),
1603 result->GetNumResults());
1604 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1607 TEST_P(GLES2DecoderTest1, GetVertexAttribivInvalidArgs2_0) {
1608 EXPECT_CALL(*gl_, GetVertexAttribiv(_, _, _)).Times(0);
1609 SpecializedSetup<cmds::GetVertexAttribiv, 0>(false);
1610 cmds::GetVertexAttribiv::Result* result =
1611 static_cast<cmds::GetVertexAttribiv::Result*>(shared_memory_address_);
1613 cmds::GetVertexAttribiv cmd;
1614 cmd.Init(1, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, kInvalidSharedMemoryId, 0);
1615 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1616 EXPECT_EQ(0u, result->size);
1619 TEST_P(GLES2DecoderTest1, GetVertexAttribivInvalidArgs2_1) {
1620 EXPECT_CALL(*gl_, GetVertexAttribiv(_, _, _)).Times(0);
1621 SpecializedSetup<cmds::GetVertexAttribiv, 0>(false);
1622 cmds::GetVertexAttribiv::Result* result =
1623 static_cast<cmds::GetVertexAttribiv::Result*>(shared_memory_address_);
1625 cmds::GetVertexAttribiv cmd;
1626 cmd.Init(1, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, shared_memory_id_,
1627 kInvalidSharedMemoryOffset);
1628 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1629 EXPECT_EQ(0u, result->size);
1631 // TODO(gman): GetVertexAttribPointerv
1633 TEST_P(GLES2DecoderTest1, HintValidArgs) {
1634 EXPECT_CALL(*gl_, Hint(GL_GENERATE_MIPMAP_HINT, GL_FASTEST));
1635 SpecializedSetup<cmds::Hint, 0>(true);
1637 cmd.Init(GL_GENERATE_MIPMAP_HINT, GL_FASTEST);
1638 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1639 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1642 TEST_P(GLES2DecoderTest1, HintInvalidArgs0_0) {
1643 EXPECT_CALL(*gl_, Hint(_, _)).Times(0);
1644 SpecializedSetup<cmds::Hint, 0>(false);
1646 cmd.Init(GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST);
1647 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1648 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1651 TEST_P(GLES2DecoderTest1, IsBufferValidArgs) {
1652 SpecializedSetup<cmds::IsBuffer, 0>(true);
1654 cmd.Init(client_buffer_id_, shared_memory_id_, shared_memory_offset_);
1655 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1656 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1659 TEST_P(GLES2DecoderTest1, IsBufferInvalidArgsBadSharedMemoryId) {
1660 SpecializedSetup<cmds::IsBuffer, 0>(false);
1662 cmd.Init(client_buffer_id_, kInvalidSharedMemoryId, shared_memory_offset_);
1663 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1664 cmd.Init(client_buffer_id_, shared_memory_id_, kInvalidSharedMemoryOffset);
1665 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1668 TEST_P(GLES2DecoderTest1, IsEnabledValidArgs) {
1669 SpecializedSetup<cmds::IsEnabled, 0>(true);
1670 cmds::IsEnabled cmd;
1671 cmd.Init(GL_BLEND, shared_memory_id_, shared_memory_offset_);
1672 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1673 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1676 TEST_P(GLES2DecoderTest1, IsEnabledInvalidArgs0_0) {
1677 EXPECT_CALL(*gl_, IsEnabled(_)).Times(0);
1678 SpecializedSetup<cmds::IsEnabled, 0>(false);
1679 cmds::IsEnabled cmd;
1680 cmd.Init(GL_CLIP_PLANE0, shared_memory_id_, shared_memory_offset_);
1681 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1682 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1685 TEST_P(GLES2DecoderTest1, IsEnabledInvalidArgs0_1) {
1686 EXPECT_CALL(*gl_, IsEnabled(_)).Times(0);
1687 SpecializedSetup<cmds::IsEnabled, 0>(false);
1688 cmds::IsEnabled cmd;
1689 cmd.Init(GL_POINT_SPRITE, shared_memory_id_, shared_memory_offset_);
1690 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1691 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1694 TEST_P(GLES2DecoderTest1, IsEnabledInvalidArgsBadSharedMemoryId) {
1695 SpecializedSetup<cmds::IsEnabled, 0>(false);
1696 cmds::IsEnabled cmd;
1697 cmd.Init(GL_BLEND, kInvalidSharedMemoryId, shared_memory_offset_);
1698 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1699 cmd.Init(GL_BLEND, shared_memory_id_, kInvalidSharedMemoryOffset);
1700 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1703 TEST_P(GLES2DecoderTest1, IsFramebufferValidArgs) {
1704 SpecializedSetup<cmds::IsFramebuffer, 0>(true);
1705 cmds::IsFramebuffer cmd;
1706 cmd.Init(client_framebuffer_id_, shared_memory_id_, shared_memory_offset_);
1707 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1708 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1711 TEST_P(GLES2DecoderTest1, IsFramebufferInvalidArgsBadSharedMemoryId) {
1712 SpecializedSetup<cmds::IsFramebuffer, 0>(false);
1713 cmds::IsFramebuffer cmd;
1714 cmd.Init(client_framebuffer_id_, kInvalidSharedMemoryId,
1715 shared_memory_offset_);
1716 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1717 cmd.Init(client_framebuffer_id_, shared_memory_id_,
1718 kInvalidSharedMemoryOffset);
1719 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1722 TEST_P(GLES2DecoderTest1, IsProgramValidArgs) {
1723 SpecializedSetup<cmds::IsProgram, 0>(true);
1724 cmds::IsProgram cmd;
1725 cmd.Init(client_program_id_, shared_memory_id_, shared_memory_offset_);
1726 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1727 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1730 TEST_P(GLES2DecoderTest1, IsProgramInvalidArgsBadSharedMemoryId) {
1731 SpecializedSetup<cmds::IsProgram, 0>(false);
1732 cmds::IsProgram cmd;
1733 cmd.Init(client_program_id_, kInvalidSharedMemoryId, shared_memory_offset_);
1734 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1735 cmd.Init(client_program_id_, shared_memory_id_, kInvalidSharedMemoryOffset);
1736 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1739 TEST_P(GLES2DecoderTest1, IsRenderbufferValidArgs) {
1740 SpecializedSetup<cmds::IsRenderbuffer, 0>(true);
1741 cmds::IsRenderbuffer cmd;
1742 cmd.Init(client_renderbuffer_id_, shared_memory_id_, shared_memory_offset_);
1743 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1744 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1747 TEST_P(GLES2DecoderTest1, IsRenderbufferInvalidArgsBadSharedMemoryId) {
1748 SpecializedSetup<cmds::IsRenderbuffer, 0>(false);
1749 cmds::IsRenderbuffer cmd;
1750 cmd.Init(client_renderbuffer_id_, kInvalidSharedMemoryId,
1751 shared_memory_offset_);
1752 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1753 cmd.Init(client_renderbuffer_id_, shared_memory_id_,
1754 kInvalidSharedMemoryOffset);
1755 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1758 TEST_P(GLES2DecoderTest1, IsShaderValidArgs) {
1759 SpecializedSetup<cmds::IsShader, 0>(true);
1761 cmd.Init(client_shader_id_, shared_memory_id_, shared_memory_offset_);
1762 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1763 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1766 TEST_P(GLES2DecoderTest1, IsShaderInvalidArgsBadSharedMemoryId) {
1767 SpecializedSetup<cmds::IsShader, 0>(false);
1769 cmd.Init(client_shader_id_, kInvalidSharedMemoryId, shared_memory_offset_);
1770 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1771 cmd.Init(client_shader_id_, shared_memory_id_, kInvalidSharedMemoryOffset);
1772 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1775 TEST_P(GLES2DecoderTest1, IsTextureValidArgs) {
1776 SpecializedSetup<cmds::IsTexture, 0>(true);
1777 cmds::IsTexture cmd;
1778 cmd.Init(client_texture_id_, shared_memory_id_, shared_memory_offset_);
1779 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1780 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1783 TEST_P(GLES2DecoderTest1, IsTextureInvalidArgsBadSharedMemoryId) {
1784 SpecializedSetup<cmds::IsTexture, 0>(false);
1785 cmds::IsTexture cmd;
1786 cmd.Init(client_texture_id_, kInvalidSharedMemoryId, shared_memory_offset_);
1787 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1788 cmd.Init(client_texture_id_, shared_memory_id_, kInvalidSharedMemoryOffset);
1789 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1792 TEST_P(GLES2DecoderTest1, LineWidthValidArgs) {
1793 EXPECT_CALL(*gl_, LineWidth(0.5f));
1794 SpecializedSetup<cmds::LineWidth, 0>(true);
1795 cmds::LineWidth cmd;
1797 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1798 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1801 TEST_P(GLES2DecoderTest1, LineWidthInvalidValue0_0) {
1802 SpecializedSetup<cmds::LineWidth, 0>(false);
1803 cmds::LineWidth cmd;
1805 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1806 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
1809 TEST_P(GLES2DecoderTest1, LineWidthNaNValue0) {
1810 SpecializedSetup<cmds::LineWidth, 0>(false);
1811 cmds::LineWidth cmd;
1813 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1814 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
1817 TEST_P(GLES2DecoderTest1, LinkProgramValidArgs) {
1818 EXPECT_CALL(*gl_, LinkProgram(kServiceProgramId));
1819 SpecializedSetup<cmds::LinkProgram, 0>(true);
1820 cmds::LinkProgram cmd;
1821 cmd.Init(client_program_id_);
1822 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1823 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1825 // TODO(gman): PixelStorei
1827 TEST_P(GLES2DecoderTest1, PolygonOffsetValidArgs) {
1828 EXPECT_CALL(*gl_, PolygonOffset(1, 2));
1829 SpecializedSetup<cmds::PolygonOffset, 0>(true);
1830 cmds::PolygonOffset cmd;
1832 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1833 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1835 // TODO(gman): ReadPixels
1837 // TODO(gman): ReleaseShaderCompiler
1839 TEST_P(GLES2DecoderTest1, RenderbufferStorageValidArgs) {
1840 SpecializedSetup<cmds::RenderbufferStorage, 0>(true);
1841 cmds::RenderbufferStorage cmd;
1842 cmd.Init(GL_RENDERBUFFER, GL_RGBA4, 3, 4);
1843 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1844 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1847 TEST_P(GLES2DecoderTest1, RenderbufferStorageInvalidArgs0_0) {
1848 EXPECT_CALL(*gl_, RenderbufferStorageEXT(_, _, _, _)).Times(0);
1849 SpecializedSetup<cmds::RenderbufferStorage, 0>(false);
1850 cmds::RenderbufferStorage cmd;
1851 cmd.Init(GL_FRAMEBUFFER, GL_RGBA4, 3, 4);
1852 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1853 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1856 TEST_P(GLES2DecoderTest1, RenderbufferStorageInvalidArgs2_0) {
1857 EXPECT_CALL(*gl_, RenderbufferStorageEXT(_, _, _, _)).Times(0);
1858 SpecializedSetup<cmds::RenderbufferStorage, 0>(false);
1859 cmds::RenderbufferStorage cmd;
1860 cmd.Init(GL_RENDERBUFFER, GL_RGBA4, -1, 4);
1861 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1862 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
1865 TEST_P(GLES2DecoderTest1, RenderbufferStorageInvalidArgs3_0) {
1866 EXPECT_CALL(*gl_, RenderbufferStorageEXT(_, _, _, _)).Times(0);
1867 SpecializedSetup<cmds::RenderbufferStorage, 0>(false);
1868 cmds::RenderbufferStorage cmd;
1869 cmd.Init(GL_RENDERBUFFER, GL_RGBA4, 3, -1);
1870 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1871 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
1874 TEST_P(GLES2DecoderTest1, SampleCoverageValidArgs) {
1875 EXPECT_CALL(*gl_, SampleCoverage(1, true));
1876 SpecializedSetup<cmds::SampleCoverage, 0>(true);
1877 cmds::SampleCoverage cmd;
1879 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1880 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1882 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_UNITTEST_1_AUTOGEN_H_