1 // Copyright (c) 2012 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
9 // It is included by gles2_cmd_decoder_unittest_1.cc
10 #ifndef GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_UNITTEST_1_AUTOGEN_H_
11 #define GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_UNITTEST_1_AUTOGEN_H_
13 // TODO(gman): ActiveTexture
15 TEST_F(GLES2DecoderTest1, AttachShaderValidArgs) {
16 EXPECT_CALL(*gl_, AttachShader(kServiceProgramId, kServiceShaderId));
17 SpecializedSetup<cmds::AttachShader, 0>(true);
18 cmds::AttachShader cmd;
19 cmd.Init(client_program_id_, client_shader_id_);
20 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
21 EXPECT_EQ(GL_NO_ERROR, GetGLError());
23 // TODO(gman): BindAttribLocation
25 // TODO(gman): BindAttribLocationBucket
27 TEST_F(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_F(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_F(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_F(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_F(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_F(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_F(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_F(GLES2DecoderTest1, BindRenderbufferValidArgs) {
98 *gl_, 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_F(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_F(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_F(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_F(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_F(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_F(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_F(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_F(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_F(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_F(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_F(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_F(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_F(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_F(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_F(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_F(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_F(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
269 TEST_F(GLES2DecoderTest1, CheckFramebufferStatusValidArgs) {
270 EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(GL_FRAMEBUFFER));
271 SpecializedSetup<cmds::CheckFramebufferStatus, 0>(true);
272 cmds::CheckFramebufferStatus cmd;
273 cmd.Init(GL_FRAMEBUFFER, shared_memory_id_, shared_memory_offset_);
274 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
275 EXPECT_EQ(GL_NO_ERROR, GetGLError());
278 TEST_F(GLES2DecoderTest1, CheckFramebufferStatusInvalidArgs0_0) {
279 EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(_)).Times(0);
280 SpecializedSetup<cmds::CheckFramebufferStatus, 0>(false);
281 cmds::CheckFramebufferStatus cmd;
282 cmd.Init(GL_DRAW_FRAMEBUFFER, shared_memory_id_, shared_memory_offset_);
283 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
284 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
287 TEST_F(GLES2DecoderTest1, CheckFramebufferStatusInvalidArgs0_1) {
288 EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(_)).Times(0);
289 SpecializedSetup<cmds::CheckFramebufferStatus, 0>(false);
290 cmds::CheckFramebufferStatus cmd;
291 cmd.Init(GL_READ_FRAMEBUFFER, shared_memory_id_, shared_memory_offset_);
292 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
293 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
296 TEST_F(GLES2DecoderTest1, CheckFramebufferStatusInvalidArgsBadSharedMemoryId) {
297 EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(GL_FRAMEBUFFER)).Times(0);
298 SpecializedSetup<cmds::CheckFramebufferStatus, 0>(false);
299 cmds::CheckFramebufferStatus cmd;
300 cmd.Init(GL_FRAMEBUFFER, kInvalidSharedMemoryId, shared_memory_offset_);
301 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
302 cmd.Init(GL_FRAMEBUFFER, shared_memory_id_, kInvalidSharedMemoryOffset);
303 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
306 TEST_F(GLES2DecoderTest1, ClearValidArgs) {
307 EXPECT_CALL(*gl_, Clear(1));
308 SpecializedSetup<cmds::Clear, 0>(true);
311 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
312 EXPECT_EQ(GL_NO_ERROR, GetGLError());
315 TEST_F(GLES2DecoderTest1, ClearColorValidArgs) {
316 EXPECT_CALL(*gl_, ClearColor(1, 2, 3, 4));
317 SpecializedSetup<cmds::ClearColor, 0>(true);
318 cmds::ClearColor cmd;
319 cmd.Init(1, 2, 3, 4);
320 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
321 EXPECT_EQ(GL_NO_ERROR, GetGLError());
324 TEST_F(GLES2DecoderTest1, ClearDepthfValidArgs) {
325 EXPECT_CALL(*gl_, ClearDepth(0.5f));
326 SpecializedSetup<cmds::ClearDepthf, 0>(true);
327 cmds::ClearDepthf cmd;
329 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
330 EXPECT_EQ(GL_NO_ERROR, GetGLError());
333 TEST_F(GLES2DecoderTest1, ClearStencilValidArgs) {
334 EXPECT_CALL(*gl_, ClearStencil(1));
335 SpecializedSetup<cmds::ClearStencil, 0>(true);
336 cmds::ClearStencil cmd;
338 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
339 EXPECT_EQ(GL_NO_ERROR, GetGLError());
342 TEST_F(GLES2DecoderTest1, ColorMaskValidArgs) {
343 SpecializedSetup<cmds::ColorMask, 0>(true);
345 cmd.Init(true, true, true, true);
346 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
347 EXPECT_EQ(GL_NO_ERROR, GetGLError());
349 // TODO(gman): CompileShader
350 // TODO(gman): CompressedTexImage2D
352 // TODO(gman): CompressedTexImage2DBucket
353 // TODO(gman): CompressedTexSubImage2D
355 // TODO(gman): CompressedTexSubImage2DBucket
356 // TODO(gman): CopyTexImage2D
358 TEST_F(GLES2DecoderTest1, CopyTexSubImage2DValidArgs) {
359 EXPECT_CALL(*gl_, CopyTexSubImage2D(GL_TEXTURE_2D, 2, 3, 4, 5, 6, 7, 8));
360 SpecializedSetup<cmds::CopyTexSubImage2D, 0>(true);
361 cmds::CopyTexSubImage2D cmd;
362 cmd.Init(GL_TEXTURE_2D, 2, 3, 4, 5, 6, 7, 8);
363 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
364 EXPECT_EQ(GL_NO_ERROR, GetGLError());
367 TEST_F(GLES2DecoderTest1, CopyTexSubImage2DInvalidArgs0_0) {
368 EXPECT_CALL(*gl_, CopyTexSubImage2D(_, _, _, _, _, _, _, _)).Times(0);
369 SpecializedSetup<cmds::CopyTexSubImage2D, 0>(false);
370 cmds::CopyTexSubImage2D cmd;
371 cmd.Init(GL_PROXY_TEXTURE_CUBE_MAP, 2, 3, 4, 5, 6, 7, 8);
372 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
373 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
376 TEST_F(GLES2DecoderTest1, CopyTexSubImage2DInvalidArgs6_0) {
377 EXPECT_CALL(*gl_, CopyTexSubImage2D(_, _, _, _, _, _, _, _)).Times(0);
378 SpecializedSetup<cmds::CopyTexSubImage2D, 0>(false);
379 cmds::CopyTexSubImage2D cmd;
380 cmd.Init(GL_TEXTURE_2D, 2, 3, 4, 5, 6, -1, 8);
381 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
382 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
385 TEST_F(GLES2DecoderTest1, CopyTexSubImage2DInvalidArgs7_0) {
386 EXPECT_CALL(*gl_, CopyTexSubImage2D(_, _, _, _, _, _, _, _)).Times(0);
387 SpecializedSetup<cmds::CopyTexSubImage2D, 0>(false);
388 cmds::CopyTexSubImage2D cmd;
389 cmd.Init(GL_TEXTURE_2D, 2, 3, 4, 5, 6, 7, -1);
390 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
391 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
394 TEST_F(GLES2DecoderTest1, CreateProgramValidArgs) {
395 EXPECT_CALL(*gl_, CreateProgram())
396 .WillOnce(Return(kNewServiceId));
397 SpecializedSetup<cmds::CreateProgram, 0>(true);
398 cmds::CreateProgram cmd;
399 cmd.Init(kNewClientId);
400 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
401 EXPECT_EQ(GL_NO_ERROR, GetGLError());
402 EXPECT_TRUE(GetProgram(kNewClientId) != NULL);
405 TEST_F(GLES2DecoderTest1, CreateShaderValidArgs) {
406 EXPECT_CALL(*gl_, CreateShader(GL_VERTEX_SHADER))
407 .WillOnce(Return(kNewServiceId));
408 SpecializedSetup<cmds::CreateShader, 0>(true);
409 cmds::CreateShader cmd;
410 cmd.Init(GL_VERTEX_SHADER, kNewClientId);
411 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
412 EXPECT_EQ(GL_NO_ERROR, GetGLError());
413 EXPECT_TRUE(GetShader(kNewClientId) != NULL);
416 TEST_F(GLES2DecoderTest1, CreateShaderInvalidArgs0_0) {
417 EXPECT_CALL(*gl_, CreateShader(_)).Times(0);
418 SpecializedSetup<cmds::CreateShader, 0>(false);
419 cmds::CreateShader cmd;
420 cmd.Init(GL_GEOMETRY_SHADER, kNewClientId);
421 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
422 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
425 TEST_F(GLES2DecoderTest1, CullFaceValidArgs) {
426 EXPECT_CALL(*gl_, CullFace(GL_FRONT));
427 SpecializedSetup<cmds::CullFace, 0>(true);
430 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
431 EXPECT_EQ(GL_NO_ERROR, GetGLError());
434 TEST_F(GLES2DecoderTest1, DeleteBuffersValidArgs) {
437 DeleteBuffersARB(1, Pointee(kServiceBufferId)))
439 GetSharedMemoryAs<GLuint*>()[0] = client_buffer_id_;
440 SpecializedSetup<cmds::DeleteBuffers, 0>(true);
441 cmds::DeleteBuffers cmd;
442 cmd.Init(1, shared_memory_id_, shared_memory_offset_);
443 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
444 EXPECT_EQ(GL_NO_ERROR, GetGLError());
446 GetBuffer(client_buffer_id_) == NULL);
449 TEST_F(GLES2DecoderTest1, DeleteBuffersInvalidArgs) {
450 GetSharedMemoryAs<GLuint*>()[0] = kInvalidClientId;
451 SpecializedSetup<cmds::DeleteBuffers, 0>(false);
452 cmds::DeleteBuffers cmd;
453 cmd.Init(1, shared_memory_id_, shared_memory_offset_);
454 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
457 TEST_F(GLES2DecoderTest1, DeleteBuffersImmediateValidArgs) {
460 DeleteBuffersARB(1, Pointee(kServiceBufferId)))
462 cmds::DeleteBuffersImmediate& cmd =
463 *GetImmediateAs<cmds::DeleteBuffersImmediate>();
464 SpecializedSetup<cmds::DeleteBuffersImmediate, 0>(true);
465 cmd.Init(1, &client_buffer_id_);
466 EXPECT_EQ(error::kNoError,
467 ExecuteImmediateCmd(cmd, sizeof(client_buffer_id_)));
468 EXPECT_EQ(GL_NO_ERROR, GetGLError());
470 GetBuffer(client_buffer_id_) == NULL);
473 TEST_F(GLES2DecoderTest1, DeleteBuffersImmediateInvalidArgs) {
474 cmds::DeleteBuffersImmediate& cmd =
475 *GetImmediateAs<cmds::DeleteBuffersImmediate>();
476 SpecializedSetup<cmds::DeleteBuffersImmediate, 0>(false);
477 GLuint temp = kInvalidClientId;
479 EXPECT_EQ(error::kNoError,
480 ExecuteImmediateCmd(cmd, sizeof(temp)));
483 TEST_F(GLES2DecoderTest1, DeleteFramebuffersValidArgs) {
486 DeleteFramebuffersEXT(1, Pointee(kServiceFramebufferId)))
488 GetSharedMemoryAs<GLuint*>()[0] = client_framebuffer_id_;
489 SpecializedSetup<cmds::DeleteFramebuffers, 0>(true);
490 cmds::DeleteFramebuffers cmd;
491 cmd.Init(1, shared_memory_id_, shared_memory_offset_);
492 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
493 EXPECT_EQ(GL_NO_ERROR, GetGLError());
495 GetFramebuffer(client_framebuffer_id_) == NULL);
498 TEST_F(GLES2DecoderTest1, DeleteFramebuffersInvalidArgs) {
499 GetSharedMemoryAs<GLuint*>()[0] = kInvalidClientId;
500 SpecializedSetup<cmds::DeleteFramebuffers, 0>(false);
501 cmds::DeleteFramebuffers cmd;
502 cmd.Init(1, shared_memory_id_, shared_memory_offset_);
503 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
506 TEST_F(GLES2DecoderTest1, DeleteFramebuffersImmediateValidArgs) {
509 DeleteFramebuffersEXT(1, Pointee(kServiceFramebufferId)))
511 cmds::DeleteFramebuffersImmediate& cmd =
512 *GetImmediateAs<cmds::DeleteFramebuffersImmediate>();
513 SpecializedSetup<cmds::DeleteFramebuffersImmediate, 0>(true);
514 cmd.Init(1, &client_framebuffer_id_);
515 EXPECT_EQ(error::kNoError,
516 ExecuteImmediateCmd(cmd, sizeof(client_framebuffer_id_)));
517 EXPECT_EQ(GL_NO_ERROR, GetGLError());
519 GetFramebuffer(client_framebuffer_id_) == NULL);
522 TEST_F(GLES2DecoderTest1, DeleteFramebuffersImmediateInvalidArgs) {
523 cmds::DeleteFramebuffersImmediate& cmd =
524 *GetImmediateAs<cmds::DeleteFramebuffersImmediate>();
525 SpecializedSetup<cmds::DeleteFramebuffersImmediate, 0>(false);
526 GLuint temp = kInvalidClientId;
528 EXPECT_EQ(error::kNoError,
529 ExecuteImmediateCmd(cmd, sizeof(temp)));
532 TEST_F(GLES2DecoderTest1, DeleteProgramValidArgs) {
533 EXPECT_CALL(*gl_, DeleteProgram(kServiceProgramId));
534 SpecializedSetup<cmds::DeleteProgram, 0>(true);
535 cmds::DeleteProgram cmd;
536 cmd.Init(client_program_id_);
537 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
538 EXPECT_EQ(GL_NO_ERROR, GetGLError());
541 TEST_F(GLES2DecoderTest1, DeleteRenderbuffersValidArgs) {
544 DeleteRenderbuffersEXT(1, Pointee(kServiceRenderbufferId)))
546 GetSharedMemoryAs<GLuint*>()[0] = client_renderbuffer_id_;
547 SpecializedSetup<cmds::DeleteRenderbuffers, 0>(true);
548 cmds::DeleteRenderbuffers cmd;
549 cmd.Init(1, shared_memory_id_, shared_memory_offset_);
550 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
551 EXPECT_EQ(GL_NO_ERROR, GetGLError());
553 GetRenderbuffer(client_renderbuffer_id_) == NULL);
556 TEST_F(GLES2DecoderTest1, DeleteRenderbuffersInvalidArgs) {
557 GetSharedMemoryAs<GLuint*>()[0] = kInvalidClientId;
558 SpecializedSetup<cmds::DeleteRenderbuffers, 0>(false);
559 cmds::DeleteRenderbuffers cmd;
560 cmd.Init(1, shared_memory_id_, shared_memory_offset_);
561 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
564 TEST_F(GLES2DecoderTest1, DeleteRenderbuffersImmediateValidArgs) {
567 DeleteRenderbuffersEXT(1, Pointee(kServiceRenderbufferId)))
569 cmds::DeleteRenderbuffersImmediate& cmd =
570 *GetImmediateAs<cmds::DeleteRenderbuffersImmediate>();
571 SpecializedSetup<cmds::DeleteRenderbuffersImmediate, 0>(true);
572 cmd.Init(1, &client_renderbuffer_id_);
573 EXPECT_EQ(error::kNoError,
574 ExecuteImmediateCmd(cmd, sizeof(client_renderbuffer_id_)));
575 EXPECT_EQ(GL_NO_ERROR, GetGLError());
577 GetRenderbuffer(client_renderbuffer_id_) == NULL);
580 TEST_F(GLES2DecoderTest1, DeleteRenderbuffersImmediateInvalidArgs) {
581 cmds::DeleteRenderbuffersImmediate& cmd =
582 *GetImmediateAs<cmds::DeleteRenderbuffersImmediate>();
583 SpecializedSetup<cmds::DeleteRenderbuffersImmediate, 0>(false);
584 GLuint temp = kInvalidClientId;
586 EXPECT_EQ(error::kNoError,
587 ExecuteImmediateCmd(cmd, sizeof(temp)));
590 TEST_F(GLES2DecoderTest1, DeleteShaderValidArgs) {
591 EXPECT_CALL(*gl_, DeleteShader(kServiceShaderId));
592 SpecializedSetup<cmds::DeleteShader, 0>(true);
593 cmds::DeleteShader cmd;
594 cmd.Init(client_shader_id_);
595 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
596 EXPECT_EQ(GL_NO_ERROR, GetGLError());
599 TEST_F(GLES2DecoderTest1, DeleteTexturesValidArgs) {
602 DeleteTextures(1, Pointee(kServiceTextureId)))
604 GetSharedMemoryAs<GLuint*>()[0] = client_texture_id_;
605 SpecializedSetup<cmds::DeleteTextures, 0>(true);
606 cmds::DeleteTextures cmd;
607 cmd.Init(1, shared_memory_id_, shared_memory_offset_);
608 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
609 EXPECT_EQ(GL_NO_ERROR, GetGLError());
611 GetTexture(client_texture_id_) == NULL);
614 TEST_F(GLES2DecoderTest1, DeleteTexturesInvalidArgs) {
615 GetSharedMemoryAs<GLuint*>()[0] = kInvalidClientId;
616 SpecializedSetup<cmds::DeleteTextures, 0>(false);
617 cmds::DeleteTextures cmd;
618 cmd.Init(1, shared_memory_id_, shared_memory_offset_);
619 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
622 TEST_F(GLES2DecoderTest1, DeleteTexturesImmediateValidArgs) {
625 DeleteTextures(1, Pointee(kServiceTextureId)))
627 cmds::DeleteTexturesImmediate& cmd =
628 *GetImmediateAs<cmds::DeleteTexturesImmediate>();
629 SpecializedSetup<cmds::DeleteTexturesImmediate, 0>(true);
630 cmd.Init(1, &client_texture_id_);
631 EXPECT_EQ(error::kNoError,
632 ExecuteImmediateCmd(cmd, sizeof(client_texture_id_)));
633 EXPECT_EQ(GL_NO_ERROR, GetGLError());
635 GetTexture(client_texture_id_) == NULL);
638 TEST_F(GLES2DecoderTest1, DeleteTexturesImmediateInvalidArgs) {
639 cmds::DeleteTexturesImmediate& cmd =
640 *GetImmediateAs<cmds::DeleteTexturesImmediate>();
641 SpecializedSetup<cmds::DeleteTexturesImmediate, 0>(false);
642 GLuint temp = kInvalidClientId;
644 EXPECT_EQ(error::kNoError,
645 ExecuteImmediateCmd(cmd, sizeof(temp)));
648 TEST_F(GLES2DecoderTest1, DepthFuncValidArgs) {
649 EXPECT_CALL(*gl_, DepthFunc(GL_NEVER));
650 SpecializedSetup<cmds::DepthFunc, 0>(true);
653 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
654 EXPECT_EQ(GL_NO_ERROR, GetGLError());
657 TEST_F(GLES2DecoderTest1, DepthMaskValidArgs) {
658 SpecializedSetup<cmds::DepthMask, 0>(true);
661 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
662 EXPECT_EQ(GL_NO_ERROR, GetGLError());
665 TEST_F(GLES2DecoderTest1, DepthRangefValidArgs) {
666 EXPECT_CALL(*gl_, DepthRange(1, 2));
667 SpecializedSetup<cmds::DepthRangef, 0>(true);
668 cmds::DepthRangef cmd;
670 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
671 EXPECT_EQ(GL_NO_ERROR, GetGLError());
674 TEST_F(GLES2DecoderTest1, DetachShaderValidArgs) {
675 EXPECT_CALL(*gl_, DetachShader(kServiceProgramId, kServiceShaderId));
676 SpecializedSetup<cmds::DetachShader, 0>(true);
677 cmds::DetachShader cmd;
678 cmd.Init(client_program_id_, client_shader_id_);
679 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
680 EXPECT_EQ(GL_NO_ERROR, GetGLError());
683 TEST_F(GLES2DecoderTest1, DisableValidArgs) {
684 EXPECT_CALL(*gl_, Disable(GL_BLEND));
685 SpecializedSetup<cmds::Disable, 0>(true);
688 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
689 EXPECT_EQ(GL_NO_ERROR, GetGLError());
692 TEST_F(GLES2DecoderTest1, DisableInvalidArgs0_0) {
693 EXPECT_CALL(*gl_, Disable(_)).Times(0);
694 SpecializedSetup<cmds::Disable, 0>(false);
696 cmd.Init(GL_CLIP_PLANE0);
697 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
698 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
701 TEST_F(GLES2DecoderTest1, DisableInvalidArgs0_1) {
702 EXPECT_CALL(*gl_, Disable(_)).Times(0);
703 SpecializedSetup<cmds::Disable, 0>(false);
705 cmd.Init(GL_POINT_SPRITE);
706 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
707 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
710 TEST_F(GLES2DecoderTest1, DisableVertexAttribArrayValidArgs) {
711 EXPECT_CALL(*gl_, DisableVertexAttribArray(1));
712 SpecializedSetup<cmds::DisableVertexAttribArray, 0>(true);
713 cmds::DisableVertexAttribArray cmd;
715 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
716 EXPECT_EQ(GL_NO_ERROR, GetGLError());
718 // TODO(gman): DrawArrays
720 // TODO(gman): DrawElements
723 TEST_F(GLES2DecoderTest1, EnableValidArgs) {
724 EXPECT_CALL(*gl_, Enable(GL_BLEND));
725 SpecializedSetup<cmds::Enable, 0>(true);
728 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
729 EXPECT_EQ(GL_NO_ERROR, GetGLError());
732 TEST_F(GLES2DecoderTest1, EnableInvalidArgs0_0) {
733 EXPECT_CALL(*gl_, Enable(_)).Times(0);
734 SpecializedSetup<cmds::Enable, 0>(false);
736 cmd.Init(GL_CLIP_PLANE0);
737 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
738 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
741 TEST_F(GLES2DecoderTest1, EnableInvalidArgs0_1) {
742 EXPECT_CALL(*gl_, Enable(_)).Times(0);
743 SpecializedSetup<cmds::Enable, 0>(false);
745 cmd.Init(GL_POINT_SPRITE);
746 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
747 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
750 TEST_F(GLES2DecoderTest1, EnableVertexAttribArrayValidArgs) {
751 EXPECT_CALL(*gl_, EnableVertexAttribArray(1));
752 SpecializedSetup<cmds::EnableVertexAttribArray, 0>(true);
753 cmds::EnableVertexAttribArray cmd;
755 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
756 EXPECT_EQ(GL_NO_ERROR, GetGLError());
759 TEST_F(GLES2DecoderTest1, FinishValidArgs) {
760 EXPECT_CALL(*gl_, Finish());
761 SpecializedSetup<cmds::Finish, 0>(true);
764 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
765 EXPECT_EQ(GL_NO_ERROR, GetGLError());
768 TEST_F(GLES2DecoderTest1, FlushValidArgs) {
769 EXPECT_CALL(*gl_, Flush());
770 SpecializedSetup<cmds::Flush, 0>(true);
773 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
774 EXPECT_EQ(GL_NO_ERROR, GetGLError());
777 TEST_F(GLES2DecoderTest1, FramebufferRenderbufferValidArgs) {
779 *gl_, FramebufferRenderbufferEXT(
780 GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER,
781 kServiceRenderbufferId));
782 SpecializedSetup<cmds::FramebufferRenderbuffer, 0>(true);
783 cmds::FramebufferRenderbuffer cmd;
785 GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER,
786 client_renderbuffer_id_);
787 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
788 EXPECT_EQ(GL_NO_ERROR, GetGLError());
791 TEST_F(GLES2DecoderTest1, FramebufferRenderbufferInvalidArgs0_0) {
792 EXPECT_CALL(*gl_, FramebufferRenderbufferEXT(_, _, _, _)).Times(0);
793 SpecializedSetup<cmds::FramebufferRenderbuffer, 0>(false);
794 cmds::FramebufferRenderbuffer cmd;
796 GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER,
797 client_renderbuffer_id_);
798 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
799 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
802 TEST_F(GLES2DecoderTest1, FramebufferRenderbufferInvalidArgs0_1) {
803 EXPECT_CALL(*gl_, FramebufferRenderbufferEXT(_, _, _, _)).Times(0);
804 SpecializedSetup<cmds::FramebufferRenderbuffer, 0>(false);
805 cmds::FramebufferRenderbuffer cmd;
807 GL_READ_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER,
808 client_renderbuffer_id_);
809 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
810 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
813 TEST_F(GLES2DecoderTest1, FramebufferRenderbufferInvalidArgs2_0) {
814 EXPECT_CALL(*gl_, FramebufferRenderbufferEXT(_, _, _, _)).Times(0);
815 SpecializedSetup<cmds::FramebufferRenderbuffer, 0>(false);
816 cmds::FramebufferRenderbuffer cmd;
818 GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_FRAMEBUFFER,
819 client_renderbuffer_id_);
820 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
821 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
824 TEST_F(GLES2DecoderTest1, FramebufferTexture2DValidArgs) {
826 *gl_, FramebufferTexture2DEXT(
827 GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
828 kServiceTextureId, 0));
829 SpecializedSetup<cmds::FramebufferTexture2D, 0>(true);
830 cmds::FramebufferTexture2D cmd;
832 GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, client_texture_id_,
834 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
835 EXPECT_EQ(GL_NO_ERROR, GetGLError());
838 TEST_F(GLES2DecoderTest1, FramebufferTexture2DInvalidArgs0_0) {
839 EXPECT_CALL(*gl_, FramebufferTexture2DEXT(_, _, _, _, _)).Times(0);
840 SpecializedSetup<cmds::FramebufferTexture2D, 0>(false);
841 cmds::FramebufferTexture2D cmd;
843 GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
844 client_texture_id_, 0);
845 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
846 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
849 TEST_F(GLES2DecoderTest1, FramebufferTexture2DInvalidArgs0_1) {
850 EXPECT_CALL(*gl_, FramebufferTexture2DEXT(_, _, _, _, _)).Times(0);
851 SpecializedSetup<cmds::FramebufferTexture2D, 0>(false);
852 cmds::FramebufferTexture2D cmd;
854 GL_READ_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
855 client_texture_id_, 0);
856 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
857 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
860 TEST_F(GLES2DecoderTest1, FramebufferTexture2DInvalidArgs2_0) {
861 EXPECT_CALL(*gl_, FramebufferTexture2DEXT(_, _, _, _, _)).Times(0);
862 SpecializedSetup<cmds::FramebufferTexture2D, 0>(false);
863 cmds::FramebufferTexture2D cmd;
865 GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_PROXY_TEXTURE_CUBE_MAP,
866 client_texture_id_, 0);
867 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
868 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
871 TEST_F(GLES2DecoderTest1, FramebufferTexture2DInvalidArgs4_0) {
872 EXPECT_CALL(*gl_, FramebufferTexture2DEXT(_, _, _, _, _)).Times(0);
873 SpecializedSetup<cmds::FramebufferTexture2D, 0>(false);
874 cmds::FramebufferTexture2D cmd;
876 GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, client_texture_id_,
878 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
879 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
882 TEST_F(GLES2DecoderTest1, FrontFaceValidArgs) {
883 EXPECT_CALL(*gl_, FrontFace(GL_CW));
884 SpecializedSetup<cmds::FrontFace, 0>(true);
887 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
888 EXPECT_EQ(GL_NO_ERROR, GetGLError());
891 TEST_F(GLES2DecoderTest1, GenBuffersValidArgs) {
892 EXPECT_CALL(*gl_, GenBuffersARB(1, _))
893 .WillOnce(SetArgumentPointee<1>(kNewServiceId));
894 GetSharedMemoryAs<GLuint*>()[0] = kNewClientId;
895 SpecializedSetup<cmds::GenBuffers, 0>(true);
896 cmds::GenBuffers cmd;
897 cmd.Init(1, shared_memory_id_, shared_memory_offset_);
898 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
899 EXPECT_EQ(GL_NO_ERROR, GetGLError());
900 EXPECT_TRUE(GetBuffer(kNewClientId) != NULL);
903 TEST_F(GLES2DecoderTest1, GenBuffersInvalidArgs) {
904 EXPECT_CALL(*gl_, GenBuffersARB(_, _)).Times(0);
905 GetSharedMemoryAs<GLuint*>()[0] = client_buffer_id_;
906 SpecializedSetup<cmds::GenBuffers, 0>(false);
907 cmds::GenBuffers cmd;
908 cmd.Init(1, shared_memory_id_, shared_memory_offset_);
909 EXPECT_EQ(error::kInvalidArguments, ExecuteCmd(cmd));
912 TEST_F(GLES2DecoderTest1, GenBuffersImmediateValidArgs) {
913 EXPECT_CALL(*gl_, GenBuffersARB(1, _))
914 .WillOnce(SetArgumentPointee<1>(kNewServiceId));
915 cmds::GenBuffersImmediate* cmd = GetImmediateAs<cmds::GenBuffersImmediate>();
916 GLuint temp = kNewClientId;
917 SpecializedSetup<cmds::GenBuffersImmediate, 0>(true);
919 EXPECT_EQ(error::kNoError,
920 ExecuteImmediateCmd(*cmd, sizeof(temp)));
921 EXPECT_EQ(GL_NO_ERROR, GetGLError());
922 EXPECT_TRUE(GetBuffer(kNewClientId) != NULL);
925 TEST_F(GLES2DecoderTest1, GenBuffersImmediateInvalidArgs) {
926 EXPECT_CALL(*gl_, GenBuffersARB(_, _)).Times(0);
927 cmds::GenBuffersImmediate* cmd = GetImmediateAs<cmds::GenBuffersImmediate>();
928 SpecializedSetup<cmds::GenBuffersImmediate, 0>(false);
929 cmd->Init(1, &client_buffer_id_);
930 EXPECT_EQ(error::kInvalidArguments,
931 ExecuteImmediateCmd(*cmd, sizeof(&client_buffer_id_)));
934 TEST_F(GLES2DecoderTest1, GenerateMipmapValidArgs) {
935 EXPECT_CALL(*gl_, GenerateMipmapEXT(GL_TEXTURE_2D));
936 SpecializedSetup<cmds::GenerateMipmap, 0>(true);
937 cmds::GenerateMipmap cmd;
938 cmd.Init(GL_TEXTURE_2D);
939 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
940 EXPECT_EQ(GL_NO_ERROR, GetGLError());
943 TEST_F(GLES2DecoderTest1, GenerateMipmapInvalidArgs0_0) {
944 EXPECT_CALL(*gl_, GenerateMipmapEXT(_)).Times(0);
945 SpecializedSetup<cmds::GenerateMipmap, 0>(false);
946 cmds::GenerateMipmap cmd;
947 cmd.Init(GL_TEXTURE_1D);
948 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
949 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
952 TEST_F(GLES2DecoderTest1, GenerateMipmapInvalidArgs0_1) {
953 EXPECT_CALL(*gl_, GenerateMipmapEXT(_)).Times(0);
954 SpecializedSetup<cmds::GenerateMipmap, 0>(false);
955 cmds::GenerateMipmap cmd;
956 cmd.Init(GL_TEXTURE_3D);
957 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
958 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
961 TEST_F(GLES2DecoderTest1, GenFramebuffersValidArgs) {
962 EXPECT_CALL(*gl_, GenFramebuffersEXT(1, _))
963 .WillOnce(SetArgumentPointee<1>(kNewServiceId));
964 GetSharedMemoryAs<GLuint*>()[0] = kNewClientId;
965 SpecializedSetup<cmds::GenFramebuffers, 0>(true);
966 cmds::GenFramebuffers cmd;
967 cmd.Init(1, shared_memory_id_, shared_memory_offset_);
968 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
969 EXPECT_EQ(GL_NO_ERROR, GetGLError());
970 EXPECT_TRUE(GetFramebuffer(kNewClientId) != NULL);
973 TEST_F(GLES2DecoderTest1, GenFramebuffersInvalidArgs) {
974 EXPECT_CALL(*gl_, GenFramebuffersEXT(_, _)).Times(0);
975 GetSharedMemoryAs<GLuint*>()[0] = client_framebuffer_id_;
976 SpecializedSetup<cmds::GenFramebuffers, 0>(false);
977 cmds::GenFramebuffers cmd;
978 cmd.Init(1, shared_memory_id_, shared_memory_offset_);
979 EXPECT_EQ(error::kInvalidArguments, ExecuteCmd(cmd));
982 TEST_F(GLES2DecoderTest1, GenFramebuffersImmediateValidArgs) {
983 EXPECT_CALL(*gl_, GenFramebuffersEXT(1, _))
984 .WillOnce(SetArgumentPointee<1>(kNewServiceId));
985 cmds::GenFramebuffersImmediate* cmd =
986 GetImmediateAs<cmds::GenFramebuffersImmediate>();
987 GLuint temp = kNewClientId;
988 SpecializedSetup<cmds::GenFramebuffersImmediate, 0>(true);
990 EXPECT_EQ(error::kNoError,
991 ExecuteImmediateCmd(*cmd, sizeof(temp)));
992 EXPECT_EQ(GL_NO_ERROR, GetGLError());
993 EXPECT_TRUE(GetFramebuffer(kNewClientId) != NULL);
996 TEST_F(GLES2DecoderTest1, GenFramebuffersImmediateInvalidArgs) {
997 EXPECT_CALL(*gl_, GenFramebuffersEXT(_, _)).Times(0);
998 cmds::GenFramebuffersImmediate* cmd =
999 GetImmediateAs<cmds::GenFramebuffersImmediate>();
1000 SpecializedSetup<cmds::GenFramebuffersImmediate, 0>(false);
1001 cmd->Init(1, &client_framebuffer_id_);
1002 EXPECT_EQ(error::kInvalidArguments,
1003 ExecuteImmediateCmd(*cmd, sizeof(&client_framebuffer_id_)));
1006 TEST_F(GLES2DecoderTest1, GenRenderbuffersValidArgs) {
1007 EXPECT_CALL(*gl_, GenRenderbuffersEXT(1, _))
1008 .WillOnce(SetArgumentPointee<1>(kNewServiceId));
1009 GetSharedMemoryAs<GLuint*>()[0] = kNewClientId;
1010 SpecializedSetup<cmds::GenRenderbuffers, 0>(true);
1011 cmds::GenRenderbuffers cmd;
1012 cmd.Init(1, shared_memory_id_, shared_memory_offset_);
1013 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1014 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1015 EXPECT_TRUE(GetRenderbuffer(kNewClientId) != NULL);
1018 TEST_F(GLES2DecoderTest1, GenRenderbuffersInvalidArgs) {
1019 EXPECT_CALL(*gl_, GenRenderbuffersEXT(_, _)).Times(0);
1020 GetSharedMemoryAs<GLuint*>()[0] = client_renderbuffer_id_;
1021 SpecializedSetup<cmds::GenRenderbuffers, 0>(false);
1022 cmds::GenRenderbuffers cmd;
1023 cmd.Init(1, shared_memory_id_, shared_memory_offset_);
1024 EXPECT_EQ(error::kInvalidArguments, ExecuteCmd(cmd));
1027 TEST_F(GLES2DecoderTest1, GenRenderbuffersImmediateValidArgs) {
1028 EXPECT_CALL(*gl_, GenRenderbuffersEXT(1, _))
1029 .WillOnce(SetArgumentPointee<1>(kNewServiceId));
1030 cmds::GenRenderbuffersImmediate* cmd =
1031 GetImmediateAs<cmds::GenRenderbuffersImmediate>();
1032 GLuint temp = kNewClientId;
1033 SpecializedSetup<cmds::GenRenderbuffersImmediate, 0>(true);
1034 cmd->Init(1, &temp);
1035 EXPECT_EQ(error::kNoError,
1036 ExecuteImmediateCmd(*cmd, sizeof(temp)));
1037 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1038 EXPECT_TRUE(GetRenderbuffer(kNewClientId) != NULL);
1041 TEST_F(GLES2DecoderTest1, GenRenderbuffersImmediateInvalidArgs) {
1042 EXPECT_CALL(*gl_, GenRenderbuffersEXT(_, _)).Times(0);
1043 cmds::GenRenderbuffersImmediate* cmd =
1044 GetImmediateAs<cmds::GenRenderbuffersImmediate>();
1045 SpecializedSetup<cmds::GenRenderbuffersImmediate, 0>(false);
1046 cmd->Init(1, &client_renderbuffer_id_);
1047 EXPECT_EQ(error::kInvalidArguments,
1048 ExecuteImmediateCmd(*cmd, sizeof(&client_renderbuffer_id_)));
1051 TEST_F(GLES2DecoderTest1, GenTexturesValidArgs) {
1052 EXPECT_CALL(*gl_, GenTextures(1, _))
1053 .WillOnce(SetArgumentPointee<1>(kNewServiceId));
1054 GetSharedMemoryAs<GLuint*>()[0] = kNewClientId;
1055 SpecializedSetup<cmds::GenTextures, 0>(true);
1056 cmds::GenTextures cmd;
1057 cmd.Init(1, shared_memory_id_, shared_memory_offset_);
1058 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1059 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1060 EXPECT_TRUE(GetTexture(kNewClientId) != NULL);
1063 TEST_F(GLES2DecoderTest1, GenTexturesInvalidArgs) {
1064 EXPECT_CALL(*gl_, GenTextures(_, _)).Times(0);
1065 GetSharedMemoryAs<GLuint*>()[0] = client_texture_id_;
1066 SpecializedSetup<cmds::GenTextures, 0>(false);
1067 cmds::GenTextures cmd;
1068 cmd.Init(1, shared_memory_id_, shared_memory_offset_);
1069 EXPECT_EQ(error::kInvalidArguments, ExecuteCmd(cmd));
1072 TEST_F(GLES2DecoderTest1, GenTexturesImmediateValidArgs) {
1073 EXPECT_CALL(*gl_, GenTextures(1, _))
1074 .WillOnce(SetArgumentPointee<1>(kNewServiceId));
1075 cmds::GenTexturesImmediate* cmd =
1076 GetImmediateAs<cmds::GenTexturesImmediate>();
1077 GLuint temp = kNewClientId;
1078 SpecializedSetup<cmds::GenTexturesImmediate, 0>(true);
1079 cmd->Init(1, &temp);
1080 EXPECT_EQ(error::kNoError,
1081 ExecuteImmediateCmd(*cmd, sizeof(temp)));
1082 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1083 EXPECT_TRUE(GetTexture(kNewClientId) != NULL);
1086 TEST_F(GLES2DecoderTest1, GenTexturesImmediateInvalidArgs) {
1087 EXPECT_CALL(*gl_, GenTextures(_, _)).Times(0);
1088 cmds::GenTexturesImmediate* cmd =
1089 GetImmediateAs<cmds::GenTexturesImmediate>();
1090 SpecializedSetup<cmds::GenTexturesImmediate, 0>(false);
1091 cmd->Init(1, &client_texture_id_);
1092 EXPECT_EQ(error::kInvalidArguments,
1093 ExecuteImmediateCmd(*cmd, sizeof(&client_texture_id_)));
1095 // TODO(gman): GetActiveAttrib
1097 // TODO(gman): GetActiveUniform
1099 // TODO(gman): GetAttachedShaders
1101 // TODO(gman): GetAttribLocation
1103 // TODO(gman): GetAttribLocationBucket
1106 TEST_F(GLES2DecoderTest1, GetBooleanvValidArgs) {
1107 EXPECT_CALL(*gl_, GetError())
1108 .WillOnce(Return(GL_NO_ERROR))
1109 .WillOnce(Return(GL_NO_ERROR))
1110 .RetiresOnSaturation();
1111 SpecializedSetup<cmds::GetBooleanv, 0>(true);
1112 typedef cmds::GetBooleanv::Result Result;
1113 Result* result = static_cast<Result*>(shared_memory_address_);
1114 EXPECT_CALL(*gl_, GetBooleanv(GL_ACTIVE_TEXTURE, result->GetData()));
1116 cmds::GetBooleanv cmd;
1117 cmd.Init(GL_ACTIVE_TEXTURE, shared_memory_id_, shared_memory_offset_);
1118 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1119 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(
1121 result->GetNumResults());
1122 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1125 TEST_F(GLES2DecoderTest1, GetBooleanvInvalidArgs0_0) {
1126 EXPECT_CALL(*gl_, GetBooleanv(_, _)).Times(0);
1127 SpecializedSetup<cmds::GetBooleanv, 0>(false);
1128 cmds::GetBooleanv::Result* result =
1129 static_cast<cmds::GetBooleanv::Result*>(shared_memory_address_);
1131 cmds::GetBooleanv cmd;
1132 cmd.Init(GL_FOG_HINT, shared_memory_id_, shared_memory_offset_);
1133 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1134 EXPECT_EQ(0u, result->size);
1135 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1138 TEST_F(GLES2DecoderTest1, GetBooleanvInvalidArgs1_0) {
1139 EXPECT_CALL(*gl_, GetBooleanv(_, _)).Times(0);
1140 SpecializedSetup<cmds::GetBooleanv, 0>(false);
1141 cmds::GetBooleanv::Result* result =
1142 static_cast<cmds::GetBooleanv::Result*>(shared_memory_address_);
1144 cmds::GetBooleanv cmd;
1145 cmd.Init(GL_ACTIVE_TEXTURE, kInvalidSharedMemoryId, 0);
1146 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1147 EXPECT_EQ(0u, result->size);
1150 TEST_F(GLES2DecoderTest1, GetBooleanvInvalidArgs1_1) {
1151 EXPECT_CALL(*gl_, GetBooleanv(_, _)).Times(0);
1152 SpecializedSetup<cmds::GetBooleanv, 0>(false);
1153 cmds::GetBooleanv::Result* result =
1154 static_cast<cmds::GetBooleanv::Result*>(shared_memory_address_);
1156 cmds::GetBooleanv cmd;
1157 cmd.Init(GL_ACTIVE_TEXTURE, shared_memory_id_, kInvalidSharedMemoryOffset);
1158 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1159 EXPECT_EQ(0u, result->size);
1162 TEST_F(GLES2DecoderTest1, GetBufferParameterivValidArgs) {
1163 SpecializedSetup<cmds::GetBufferParameteriv, 0>(true);
1164 typedef cmds::GetBufferParameteriv::Result Result;
1165 Result* result = static_cast<Result*>(shared_memory_address_);
1167 cmds::GetBufferParameteriv cmd;
1169 GL_ARRAY_BUFFER, GL_BUFFER_SIZE, shared_memory_id_,
1170 shared_memory_offset_);
1171 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1172 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(
1174 result->GetNumResults());
1175 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1178 TEST_F(GLES2DecoderTest1, GetBufferParameterivInvalidArgs0_0) {
1179 EXPECT_CALL(*gl_, GetBufferParameteriv(_, _, _)).Times(0);
1180 SpecializedSetup<cmds::GetBufferParameteriv, 0>(false);
1181 cmds::GetBufferParameteriv::Result* result =
1182 static_cast<cmds::GetBufferParameteriv::Result*>(shared_memory_address_);
1184 cmds::GetBufferParameteriv cmd;
1186 GL_RENDERBUFFER, GL_BUFFER_SIZE, shared_memory_id_,
1187 shared_memory_offset_);
1188 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1189 EXPECT_EQ(0u, result->size);
1190 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1193 TEST_F(GLES2DecoderTest1, GetBufferParameterivInvalidArgs1_0) {
1194 EXPECT_CALL(*gl_, GetBufferParameteriv(_, _, _)).Times(0);
1195 SpecializedSetup<cmds::GetBufferParameteriv, 0>(false);
1196 cmds::GetBufferParameteriv::Result* result =
1197 static_cast<cmds::GetBufferParameteriv::Result*>(shared_memory_address_);
1199 cmds::GetBufferParameteriv cmd;
1201 GL_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, shared_memory_id_,
1202 shared_memory_offset_);
1203 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1204 EXPECT_EQ(0u, result->size);
1205 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1208 TEST_F(GLES2DecoderTest1, GetBufferParameterivInvalidArgs2_0) {
1209 EXPECT_CALL(*gl_, GetBufferParameteriv(_, _, _)).Times(0);
1210 SpecializedSetup<cmds::GetBufferParameteriv, 0>(false);
1211 cmds::GetBufferParameteriv::Result* result =
1212 static_cast<cmds::GetBufferParameteriv::Result*>(shared_memory_address_);
1214 cmds::GetBufferParameteriv cmd;
1215 cmd.Init(GL_ARRAY_BUFFER, GL_BUFFER_SIZE, kInvalidSharedMemoryId, 0);
1216 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1217 EXPECT_EQ(0u, result->size);
1220 TEST_F(GLES2DecoderTest1, GetBufferParameterivInvalidArgs2_1) {
1221 EXPECT_CALL(*gl_, GetBufferParameteriv(_, _, _)).Times(0);
1222 SpecializedSetup<cmds::GetBufferParameteriv, 0>(false);
1223 cmds::GetBufferParameteriv::Result* result =
1224 static_cast<cmds::GetBufferParameteriv::Result*>(shared_memory_address_);
1226 cmds::GetBufferParameteriv cmd;
1228 GL_ARRAY_BUFFER, GL_BUFFER_SIZE, shared_memory_id_,
1229 kInvalidSharedMemoryOffset);
1230 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1231 EXPECT_EQ(0u, result->size);
1234 TEST_F(GLES2DecoderTest1, GetErrorValidArgs) {
1235 EXPECT_CALL(*gl_, GetError());
1236 SpecializedSetup<cmds::GetError, 0>(true);
1238 cmd.Init(shared_memory_id_, shared_memory_offset_);
1239 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1240 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1243 TEST_F(GLES2DecoderTest1, GetErrorInvalidArgsBadSharedMemoryId) {
1244 EXPECT_CALL(*gl_, GetError()).Times(0);
1245 SpecializedSetup<cmds::GetError, 0>(false);
1247 cmd.Init(kInvalidSharedMemoryId, shared_memory_offset_);
1248 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1249 cmd.Init(shared_memory_id_, kInvalidSharedMemoryOffset);
1250 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1253 TEST_F(GLES2DecoderTest1, GetFloatvValidArgs) {
1254 EXPECT_CALL(*gl_, GetError())
1255 .WillOnce(Return(GL_NO_ERROR))
1256 .WillOnce(Return(GL_NO_ERROR))
1257 .RetiresOnSaturation();
1258 SpecializedSetup<cmds::GetFloatv, 0>(true);
1259 typedef cmds::GetFloatv::Result Result;
1260 Result* result = static_cast<Result*>(shared_memory_address_);
1261 EXPECT_CALL(*gl_, GetFloatv(GL_ACTIVE_TEXTURE, result->GetData()));
1263 cmds::GetFloatv cmd;
1264 cmd.Init(GL_ACTIVE_TEXTURE, shared_memory_id_, shared_memory_offset_);
1265 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1266 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(
1268 result->GetNumResults());
1269 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1272 TEST_F(GLES2DecoderTest1, GetFloatvInvalidArgs0_0) {
1273 EXPECT_CALL(*gl_, GetFloatv(_, _)).Times(0);
1274 SpecializedSetup<cmds::GetFloatv, 0>(false);
1275 cmds::GetFloatv::Result* result =
1276 static_cast<cmds::GetFloatv::Result*>(shared_memory_address_);
1278 cmds::GetFloatv cmd;
1279 cmd.Init(GL_FOG_HINT, shared_memory_id_, shared_memory_offset_);
1280 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1281 EXPECT_EQ(0u, result->size);
1282 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1285 TEST_F(GLES2DecoderTest1, GetFloatvInvalidArgs1_0) {
1286 EXPECT_CALL(*gl_, GetFloatv(_, _)).Times(0);
1287 SpecializedSetup<cmds::GetFloatv, 0>(false);
1288 cmds::GetFloatv::Result* result =
1289 static_cast<cmds::GetFloatv::Result*>(shared_memory_address_);
1291 cmds::GetFloatv cmd;
1292 cmd.Init(GL_ACTIVE_TEXTURE, kInvalidSharedMemoryId, 0);
1293 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1294 EXPECT_EQ(0u, result->size);
1297 TEST_F(GLES2DecoderTest1, GetFloatvInvalidArgs1_1) {
1298 EXPECT_CALL(*gl_, GetFloatv(_, _)).Times(0);
1299 SpecializedSetup<cmds::GetFloatv, 0>(false);
1300 cmds::GetFloatv::Result* result =
1301 static_cast<cmds::GetFloatv::Result*>(shared_memory_address_);
1303 cmds::GetFloatv cmd;
1304 cmd.Init(GL_ACTIVE_TEXTURE, shared_memory_id_, kInvalidSharedMemoryOffset);
1305 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1306 EXPECT_EQ(0u, result->size);
1309 TEST_F(GLES2DecoderTest1, GetFramebufferAttachmentParameterivValidArgs) {
1310 EXPECT_CALL(*gl_, GetError())
1311 .WillOnce(Return(GL_NO_ERROR))
1312 .WillOnce(Return(GL_NO_ERROR))
1313 .RetiresOnSaturation();
1314 SpecializedSetup<cmds::GetFramebufferAttachmentParameteriv, 0>(true);
1315 typedef cmds::GetFramebufferAttachmentParameteriv::Result Result;
1316 Result* result = static_cast<Result*>(shared_memory_address_);
1318 *gl_, GetFramebufferAttachmentParameterivEXT(
1319 GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
1320 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, result->GetData()));
1322 cmds::GetFramebufferAttachmentParameteriv cmd;
1324 GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
1325 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, shared_memory_id_,
1326 shared_memory_offset_);
1327 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1328 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(
1329 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE),
1330 result->GetNumResults());
1331 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1334 TEST_F(GLES2DecoderTest1, GetFramebufferAttachmentParameterivInvalidArgs0_0) {
1336 *gl_, GetFramebufferAttachmentParameterivEXT(_, _, _, _)).Times(0);
1337 SpecializedSetup<cmds::GetFramebufferAttachmentParameteriv, 0>(false);
1338 cmds::GetFramebufferAttachmentParameteriv::Result* result =
1339 static_cast<cmds::GetFramebufferAttachmentParameteriv::Result*>(
1340 shared_memory_address_);
1342 cmds::GetFramebufferAttachmentParameteriv cmd;
1344 GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
1345 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, shared_memory_id_,
1346 shared_memory_offset_);
1347 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1348 EXPECT_EQ(0u, result->size);
1349 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1352 TEST_F(GLES2DecoderTest1, GetFramebufferAttachmentParameterivInvalidArgs0_1) {
1354 *gl_, GetFramebufferAttachmentParameterivEXT(_, _, _, _)).Times(0);
1355 SpecializedSetup<cmds::GetFramebufferAttachmentParameteriv, 0>(false);
1356 cmds::GetFramebufferAttachmentParameteriv::Result* result =
1357 static_cast<cmds::GetFramebufferAttachmentParameteriv::Result*>(
1358 shared_memory_address_);
1360 cmds::GetFramebufferAttachmentParameteriv cmd;
1362 GL_READ_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
1363 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, shared_memory_id_,
1364 shared_memory_offset_);
1365 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1366 EXPECT_EQ(0u, result->size);
1367 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1370 TEST_F(GLES2DecoderTest1, GetFramebufferAttachmentParameterivInvalidArgs3_0) {
1372 *gl_, GetFramebufferAttachmentParameterivEXT(_, _, _, _)).Times(0);
1373 SpecializedSetup<cmds::GetFramebufferAttachmentParameteriv, 0>(false);
1374 cmds::GetFramebufferAttachmentParameteriv::Result* result =
1375 static_cast<cmds::GetFramebufferAttachmentParameteriv::Result*>(
1376 shared_memory_address_);
1378 cmds::GetFramebufferAttachmentParameteriv cmd;
1380 GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
1381 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, kInvalidSharedMemoryId, 0);
1382 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1383 EXPECT_EQ(0u, result->size);
1386 TEST_F(GLES2DecoderTest1, GetFramebufferAttachmentParameterivInvalidArgs3_1) {
1388 *gl_, GetFramebufferAttachmentParameterivEXT(_, _, _, _)).Times(0);
1389 SpecializedSetup<cmds::GetFramebufferAttachmentParameteriv, 0>(false);
1390 cmds::GetFramebufferAttachmentParameteriv::Result* result =
1391 static_cast<cmds::GetFramebufferAttachmentParameteriv::Result*>(
1392 shared_memory_address_);
1394 cmds::GetFramebufferAttachmentParameteriv cmd;
1396 GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
1397 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, shared_memory_id_,
1398 kInvalidSharedMemoryOffset);
1399 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1400 EXPECT_EQ(0u, result->size);
1403 TEST_F(GLES2DecoderTest1, GetIntegervValidArgs) {
1404 EXPECT_CALL(*gl_, GetError())
1405 .WillOnce(Return(GL_NO_ERROR))
1406 .WillOnce(Return(GL_NO_ERROR))
1407 .RetiresOnSaturation();
1408 SpecializedSetup<cmds::GetIntegerv, 0>(true);
1409 typedef cmds::GetIntegerv::Result Result;
1410 Result* result = static_cast<Result*>(shared_memory_address_);
1411 EXPECT_CALL(*gl_, GetIntegerv(GL_ACTIVE_TEXTURE, result->GetData()));
1413 cmds::GetIntegerv cmd;
1414 cmd.Init(GL_ACTIVE_TEXTURE, shared_memory_id_, shared_memory_offset_);
1415 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1416 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(
1418 result->GetNumResults());
1419 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1422 TEST_F(GLES2DecoderTest1, GetIntegervInvalidArgs0_0) {
1423 EXPECT_CALL(*gl_, GetIntegerv(_, _)).Times(0);
1424 SpecializedSetup<cmds::GetIntegerv, 0>(false);
1425 cmds::GetIntegerv::Result* result =
1426 static_cast<cmds::GetIntegerv::Result*>(shared_memory_address_);
1428 cmds::GetIntegerv cmd;
1429 cmd.Init(GL_FOG_HINT, shared_memory_id_, shared_memory_offset_);
1430 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1431 EXPECT_EQ(0u, result->size);
1432 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1435 TEST_F(GLES2DecoderTest1, GetIntegervInvalidArgs1_0) {
1436 EXPECT_CALL(*gl_, GetIntegerv(_, _)).Times(0);
1437 SpecializedSetup<cmds::GetIntegerv, 0>(false);
1438 cmds::GetIntegerv::Result* result =
1439 static_cast<cmds::GetIntegerv::Result*>(shared_memory_address_);
1441 cmds::GetIntegerv cmd;
1442 cmd.Init(GL_ACTIVE_TEXTURE, kInvalidSharedMemoryId, 0);
1443 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1444 EXPECT_EQ(0u, result->size);
1447 TEST_F(GLES2DecoderTest1, GetIntegervInvalidArgs1_1) {
1448 EXPECT_CALL(*gl_, GetIntegerv(_, _)).Times(0);
1449 SpecializedSetup<cmds::GetIntegerv, 0>(false);
1450 cmds::GetIntegerv::Result* result =
1451 static_cast<cmds::GetIntegerv::Result*>(shared_memory_address_);
1453 cmds::GetIntegerv cmd;
1454 cmd.Init(GL_ACTIVE_TEXTURE, shared_memory_id_, kInvalidSharedMemoryOffset);
1455 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1456 EXPECT_EQ(0u, result->size);
1459 TEST_F(GLES2DecoderTest1, GetProgramivValidArgs) {
1460 SpecializedSetup<cmds::GetProgramiv, 0>(true);
1461 typedef cmds::GetProgramiv::Result Result;
1462 Result* result = static_cast<Result*>(shared_memory_address_);
1464 cmds::GetProgramiv cmd;
1466 client_program_id_, GL_DELETE_STATUS, shared_memory_id_,
1467 shared_memory_offset_);
1468 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1469 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(
1471 result->GetNumResults());
1472 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1475 TEST_F(GLES2DecoderTest1, GetProgramivInvalidArgs2_0) {
1476 EXPECT_CALL(*gl_, GetProgramiv(_, _, _)).Times(0);
1477 SpecializedSetup<cmds::GetProgramiv, 0>(false);
1478 cmds::GetProgramiv::Result* result =
1479 static_cast<cmds::GetProgramiv::Result*>(shared_memory_address_);
1481 cmds::GetProgramiv cmd;
1482 cmd.Init(client_program_id_, GL_DELETE_STATUS, kInvalidSharedMemoryId, 0);
1483 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1484 EXPECT_EQ(0u, result->size);
1487 TEST_F(GLES2DecoderTest1, GetProgramivInvalidArgs2_1) {
1488 EXPECT_CALL(*gl_, GetProgramiv(_, _, _)).Times(0);
1489 SpecializedSetup<cmds::GetProgramiv, 0>(false);
1490 cmds::GetProgramiv::Result* result =
1491 static_cast<cmds::GetProgramiv::Result*>(shared_memory_address_);
1493 cmds::GetProgramiv cmd;
1495 client_program_id_, GL_DELETE_STATUS, shared_memory_id_,
1496 kInvalidSharedMemoryOffset);
1497 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1498 EXPECT_EQ(0u, result->size);
1501 TEST_F(GLES2DecoderTest1, GetProgramInfoLogValidArgs) {
1502 const char* kInfo = "hello";
1503 const uint32 kBucketId = 123;
1504 SpecializedSetup<cmds::GetProgramInfoLog, 0>(true);
1506 cmds::GetProgramInfoLog cmd;
1507 cmd.Init(client_program_id_, kBucketId);
1508 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1509 CommonDecoder::Bucket* bucket = decoder_->GetBucket(kBucketId);
1510 ASSERT_TRUE(bucket != NULL);
1511 EXPECT_EQ(strlen(kInfo) + 1, bucket->size());
1512 EXPECT_EQ(0, memcmp(bucket->GetData(0, bucket->size()), kInfo,
1514 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1517 TEST_F(GLES2DecoderTest1, GetProgramInfoLogInvalidArgs) {
1518 const uint32 kBucketId = 123;
1519 cmds::GetProgramInfoLog cmd;
1520 cmd.Init(kInvalidClientId, kBucketId);
1521 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1522 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
1525 TEST_F(GLES2DecoderTest1, GetRenderbufferParameterivValidArgs) {
1526 EXPECT_CALL(*gl_, GetError())
1527 .WillOnce(Return(GL_NO_ERROR))
1528 .WillOnce(Return(GL_NO_ERROR))
1529 .RetiresOnSaturation();
1530 SpecializedSetup<cmds::GetRenderbufferParameteriv, 0>(true);
1531 typedef cmds::GetRenderbufferParameteriv::Result Result;
1532 Result* result = static_cast<Result*>(shared_memory_address_);
1534 *gl_, GetRenderbufferParameterivEXT(
1535 GL_RENDERBUFFER, GL_RENDERBUFFER_RED_SIZE, result->GetData()));
1537 cmds::GetRenderbufferParameteriv cmd;
1539 GL_RENDERBUFFER, GL_RENDERBUFFER_RED_SIZE, shared_memory_id_,
1540 shared_memory_offset_);
1541 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1542 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(
1543 GL_RENDERBUFFER_RED_SIZE),
1544 result->GetNumResults());
1545 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1548 TEST_F(GLES2DecoderTest1, GetRenderbufferParameterivInvalidArgs0_0) {
1549 EXPECT_CALL(*gl_, GetRenderbufferParameterivEXT(_, _, _)).Times(0);
1550 SpecializedSetup<cmds::GetRenderbufferParameteriv, 0>(false);
1551 cmds::GetRenderbufferParameteriv::Result* result =
1552 static_cast<cmds::GetRenderbufferParameteriv::Result*>(
1553 shared_memory_address_);
1555 cmds::GetRenderbufferParameteriv cmd;
1557 GL_FRAMEBUFFER, GL_RENDERBUFFER_RED_SIZE, shared_memory_id_,
1558 shared_memory_offset_);
1559 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1560 EXPECT_EQ(0u, result->size);
1561 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1564 TEST_F(GLES2DecoderTest1, GetRenderbufferParameterivInvalidArgs2_0) {
1565 EXPECT_CALL(*gl_, GetRenderbufferParameterivEXT(_, _, _)).Times(0);
1566 SpecializedSetup<cmds::GetRenderbufferParameteriv, 0>(false);
1567 cmds::GetRenderbufferParameteriv::Result* result =
1568 static_cast<cmds::GetRenderbufferParameteriv::Result*>(
1569 shared_memory_address_);
1571 cmds::GetRenderbufferParameteriv cmd;
1573 GL_RENDERBUFFER, GL_RENDERBUFFER_RED_SIZE, kInvalidSharedMemoryId, 0);
1574 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1575 EXPECT_EQ(0u, result->size);
1578 TEST_F(GLES2DecoderTest1, GetRenderbufferParameterivInvalidArgs2_1) {
1579 EXPECT_CALL(*gl_, GetRenderbufferParameterivEXT(_, _, _)).Times(0);
1580 SpecializedSetup<cmds::GetRenderbufferParameteriv, 0>(false);
1581 cmds::GetRenderbufferParameteriv::Result* result =
1582 static_cast<cmds::GetRenderbufferParameteriv::Result*>(
1583 shared_memory_address_);
1585 cmds::GetRenderbufferParameteriv cmd;
1587 GL_RENDERBUFFER, GL_RENDERBUFFER_RED_SIZE, shared_memory_id_,
1588 kInvalidSharedMemoryOffset);
1589 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1590 EXPECT_EQ(0u, result->size);
1593 TEST_F(GLES2DecoderTest1, GetShaderivValidArgs) {
1594 EXPECT_CALL(*gl_, GetError())
1595 .WillOnce(Return(GL_NO_ERROR))
1596 .WillOnce(Return(GL_NO_ERROR))
1597 .RetiresOnSaturation();
1598 SpecializedSetup<cmds::GetShaderiv, 0>(true);
1599 typedef cmds::GetShaderiv::Result Result;
1600 Result* result = static_cast<Result*>(shared_memory_address_);
1602 *gl_, GetShaderiv(kServiceShaderId, GL_SHADER_TYPE, result->GetData()));
1604 cmds::GetShaderiv cmd;
1606 client_shader_id_, GL_SHADER_TYPE, shared_memory_id_,
1607 shared_memory_offset_);
1608 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1609 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(
1611 result->GetNumResults());
1612 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1615 TEST_F(GLES2DecoderTest1, GetShaderivInvalidArgs2_0) {
1616 EXPECT_CALL(*gl_, GetShaderiv(_, _, _)).Times(0);
1617 SpecializedSetup<cmds::GetShaderiv, 0>(false);
1618 cmds::GetShaderiv::Result* result =
1619 static_cast<cmds::GetShaderiv::Result*>(shared_memory_address_);
1621 cmds::GetShaderiv cmd;
1622 cmd.Init(client_shader_id_, GL_SHADER_TYPE, kInvalidSharedMemoryId, 0);
1623 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1624 EXPECT_EQ(0u, result->size);
1627 TEST_F(GLES2DecoderTest1, GetShaderivInvalidArgs2_1) {
1628 EXPECT_CALL(*gl_, GetShaderiv(_, _, _)).Times(0);
1629 SpecializedSetup<cmds::GetShaderiv, 0>(false);
1630 cmds::GetShaderiv::Result* result =
1631 static_cast<cmds::GetShaderiv::Result*>(shared_memory_address_);
1633 cmds::GetShaderiv cmd;
1635 client_shader_id_, GL_SHADER_TYPE, shared_memory_id_,
1636 kInvalidSharedMemoryOffset);
1637 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1638 EXPECT_EQ(0u, result->size);
1640 // TODO(gman): GetShaderInfoLog
1641 // TODO(gman): GetShaderPrecisionFormat
1643 // TODO(gman): GetShaderSource
1644 // TODO(gman): GetString
1647 TEST_F(GLES2DecoderTest1, GetTexParameterfvValidArgs) {
1648 EXPECT_CALL(*gl_, GetError())
1649 .WillOnce(Return(GL_NO_ERROR))
1650 .WillOnce(Return(GL_NO_ERROR))
1651 .RetiresOnSaturation();
1652 SpecializedSetup<cmds::GetTexParameterfv, 0>(true);
1653 typedef cmds::GetTexParameterfv::Result Result;
1654 Result* result = static_cast<Result*>(shared_memory_address_);
1656 *gl_, GetTexParameterfv(
1657 GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, result->GetData()));
1659 cmds::GetTexParameterfv cmd;
1661 GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, shared_memory_id_,
1662 shared_memory_offset_);
1663 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1664 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(
1665 GL_TEXTURE_MAG_FILTER),
1666 result->GetNumResults());
1667 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1670 TEST_F(GLES2DecoderTest1, GetTexParameterfvInvalidArgs0_0) {
1671 EXPECT_CALL(*gl_, GetTexParameterfv(_, _, _)).Times(0);
1672 SpecializedSetup<cmds::GetTexParameterfv, 0>(false);
1673 cmds::GetTexParameterfv::Result* result =
1674 static_cast<cmds::GetTexParameterfv::Result*>(shared_memory_address_);
1676 cmds::GetTexParameterfv cmd;
1678 GL_PROXY_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, shared_memory_id_,
1679 shared_memory_offset_);
1680 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1681 EXPECT_EQ(0u, result->size);
1682 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1685 TEST_F(GLES2DecoderTest1, GetTexParameterfvInvalidArgs1_0) {
1686 EXPECT_CALL(*gl_, GetTexParameterfv(_, _, _)).Times(0);
1687 SpecializedSetup<cmds::GetTexParameterfv, 0>(false);
1688 cmds::GetTexParameterfv::Result* result =
1689 static_cast<cmds::GetTexParameterfv::Result*>(shared_memory_address_);
1691 cmds::GetTexParameterfv cmd;
1693 GL_TEXTURE_2D, GL_GENERATE_MIPMAP, shared_memory_id_,
1694 shared_memory_offset_);
1695 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1696 EXPECT_EQ(0u, result->size);
1697 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1700 TEST_F(GLES2DecoderTest1, GetTexParameterfvInvalidArgs2_0) {
1701 EXPECT_CALL(*gl_, GetTexParameterfv(_, _, _)).Times(0);
1702 SpecializedSetup<cmds::GetTexParameterfv, 0>(false);
1703 cmds::GetTexParameterfv::Result* result =
1704 static_cast<cmds::GetTexParameterfv::Result*>(shared_memory_address_);
1706 cmds::GetTexParameterfv cmd;
1707 cmd.Init(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, kInvalidSharedMemoryId, 0);
1708 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1709 EXPECT_EQ(0u, result->size);
1712 TEST_F(GLES2DecoderTest1, GetTexParameterfvInvalidArgs2_1) {
1713 EXPECT_CALL(*gl_, GetTexParameterfv(_, _, _)).Times(0);
1714 SpecializedSetup<cmds::GetTexParameterfv, 0>(false);
1715 cmds::GetTexParameterfv::Result* result =
1716 static_cast<cmds::GetTexParameterfv::Result*>(shared_memory_address_);
1718 cmds::GetTexParameterfv cmd;
1720 GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, shared_memory_id_,
1721 kInvalidSharedMemoryOffset);
1722 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1723 EXPECT_EQ(0u, result->size);
1726 TEST_F(GLES2DecoderTest1, GetTexParameterivValidArgs) {
1727 EXPECT_CALL(*gl_, GetError())
1728 .WillOnce(Return(GL_NO_ERROR))
1729 .WillOnce(Return(GL_NO_ERROR))
1730 .RetiresOnSaturation();
1731 SpecializedSetup<cmds::GetTexParameteriv, 0>(true);
1732 typedef cmds::GetTexParameteriv::Result Result;
1733 Result* result = static_cast<Result*>(shared_memory_address_);
1735 *gl_, GetTexParameteriv(
1736 GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, result->GetData()));
1738 cmds::GetTexParameteriv cmd;
1740 GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, shared_memory_id_,
1741 shared_memory_offset_);
1742 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1743 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(
1744 GL_TEXTURE_MAG_FILTER),
1745 result->GetNumResults());
1746 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1749 TEST_F(GLES2DecoderTest1, GetTexParameterivInvalidArgs0_0) {
1750 EXPECT_CALL(*gl_, GetTexParameteriv(_, _, _)).Times(0);
1751 SpecializedSetup<cmds::GetTexParameteriv, 0>(false);
1752 cmds::GetTexParameteriv::Result* result =
1753 static_cast<cmds::GetTexParameteriv::Result*>(shared_memory_address_);
1755 cmds::GetTexParameteriv cmd;
1757 GL_PROXY_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, shared_memory_id_,
1758 shared_memory_offset_);
1759 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1760 EXPECT_EQ(0u, result->size);
1761 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1764 TEST_F(GLES2DecoderTest1, GetTexParameterivInvalidArgs1_0) {
1765 EXPECT_CALL(*gl_, GetTexParameteriv(_, _, _)).Times(0);
1766 SpecializedSetup<cmds::GetTexParameteriv, 0>(false);
1767 cmds::GetTexParameteriv::Result* result =
1768 static_cast<cmds::GetTexParameteriv::Result*>(shared_memory_address_);
1770 cmds::GetTexParameteriv cmd;
1772 GL_TEXTURE_2D, GL_GENERATE_MIPMAP, shared_memory_id_,
1773 shared_memory_offset_);
1774 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1775 EXPECT_EQ(0u, result->size);
1776 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1779 TEST_F(GLES2DecoderTest1, GetTexParameterivInvalidArgs2_0) {
1780 EXPECT_CALL(*gl_, GetTexParameteriv(_, _, _)).Times(0);
1781 SpecializedSetup<cmds::GetTexParameteriv, 0>(false);
1782 cmds::GetTexParameteriv::Result* result =
1783 static_cast<cmds::GetTexParameteriv::Result*>(shared_memory_address_);
1785 cmds::GetTexParameteriv cmd;
1786 cmd.Init(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, kInvalidSharedMemoryId, 0);
1787 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1788 EXPECT_EQ(0u, result->size);
1791 TEST_F(GLES2DecoderTest1, GetTexParameterivInvalidArgs2_1) {
1792 EXPECT_CALL(*gl_, GetTexParameteriv(_, _, _)).Times(0);
1793 SpecializedSetup<cmds::GetTexParameteriv, 0>(false);
1794 cmds::GetTexParameteriv::Result* result =
1795 static_cast<cmds::GetTexParameteriv::Result*>(shared_memory_address_);
1797 cmds::GetTexParameteriv cmd;
1799 GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, shared_memory_id_,
1800 kInvalidSharedMemoryOffset);
1801 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1802 EXPECT_EQ(0u, result->size);
1804 // TODO(gman): GetUniformfv
1806 // TODO(gman): GetUniformiv
1808 // TODO(gman): GetUniformLocation
1810 // TODO(gman): GetUniformLocationBucket
1813 TEST_F(GLES2DecoderTest1, GetVertexAttribfvValidArgs) {
1814 SpecializedSetup<cmds::GetVertexAttribfv, 0>(true);
1815 typedef cmds::GetVertexAttribfv::Result Result;
1816 Result* result = static_cast<Result*>(shared_memory_address_);
1818 cmds::GetVertexAttribfv cmd;
1820 1, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, shared_memory_id_,
1821 shared_memory_offset_);
1822 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1823 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(
1824 GL_VERTEX_ATTRIB_ARRAY_NORMALIZED),
1825 result->GetNumResults());
1826 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1829 TEST_F(GLES2DecoderTest1, GetVertexAttribfvInvalidArgs2_0) {
1830 EXPECT_CALL(*gl_, GetVertexAttribfv(_, _, _)).Times(0);
1831 SpecializedSetup<cmds::GetVertexAttribfv, 0>(false);
1832 cmds::GetVertexAttribfv::Result* result =
1833 static_cast<cmds::GetVertexAttribfv::Result*>(shared_memory_address_);
1835 cmds::GetVertexAttribfv cmd;
1836 cmd.Init(1, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, kInvalidSharedMemoryId, 0);
1837 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1838 EXPECT_EQ(0u, result->size);
1841 TEST_F(GLES2DecoderTest1, GetVertexAttribfvInvalidArgs2_1) {
1842 EXPECT_CALL(*gl_, GetVertexAttribfv(_, _, _)).Times(0);
1843 SpecializedSetup<cmds::GetVertexAttribfv, 0>(false);
1844 cmds::GetVertexAttribfv::Result* result =
1845 static_cast<cmds::GetVertexAttribfv::Result*>(shared_memory_address_);
1847 cmds::GetVertexAttribfv cmd;
1849 1, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, shared_memory_id_,
1850 kInvalidSharedMemoryOffset);
1851 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1852 EXPECT_EQ(0u, result->size);
1855 TEST_F(GLES2DecoderTest1, GetVertexAttribivValidArgs) {
1856 SpecializedSetup<cmds::GetVertexAttribiv, 0>(true);
1857 typedef cmds::GetVertexAttribiv::Result Result;
1858 Result* result = static_cast<Result*>(shared_memory_address_);
1860 cmds::GetVertexAttribiv cmd;
1862 1, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, shared_memory_id_,
1863 shared_memory_offset_);
1864 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1865 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(
1866 GL_VERTEX_ATTRIB_ARRAY_NORMALIZED),
1867 result->GetNumResults());
1868 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1871 TEST_F(GLES2DecoderTest1, GetVertexAttribivInvalidArgs2_0) {
1872 EXPECT_CALL(*gl_, GetVertexAttribiv(_, _, _)).Times(0);
1873 SpecializedSetup<cmds::GetVertexAttribiv, 0>(false);
1874 cmds::GetVertexAttribiv::Result* result =
1875 static_cast<cmds::GetVertexAttribiv::Result*>(shared_memory_address_);
1877 cmds::GetVertexAttribiv cmd;
1878 cmd.Init(1, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, kInvalidSharedMemoryId, 0);
1879 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1880 EXPECT_EQ(0u, result->size);
1883 TEST_F(GLES2DecoderTest1, GetVertexAttribivInvalidArgs2_1) {
1884 EXPECT_CALL(*gl_, GetVertexAttribiv(_, _, _)).Times(0);
1885 SpecializedSetup<cmds::GetVertexAttribiv, 0>(false);
1886 cmds::GetVertexAttribiv::Result* result =
1887 static_cast<cmds::GetVertexAttribiv::Result*>(shared_memory_address_);
1889 cmds::GetVertexAttribiv cmd;
1891 1, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, shared_memory_id_,
1892 kInvalidSharedMemoryOffset);
1893 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1894 EXPECT_EQ(0u, result->size);
1896 // TODO(gman): GetVertexAttribPointerv
1899 TEST_F(GLES2DecoderTest1, HintValidArgs) {
1900 EXPECT_CALL(*gl_, Hint(GL_GENERATE_MIPMAP_HINT, GL_FASTEST));
1901 SpecializedSetup<cmds::Hint, 0>(true);
1903 cmd.Init(GL_GENERATE_MIPMAP_HINT, GL_FASTEST);
1904 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1905 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1908 TEST_F(GLES2DecoderTest1, HintInvalidArgs0_0) {
1909 EXPECT_CALL(*gl_, Hint(_, _)).Times(0);
1910 SpecializedSetup<cmds::Hint, 0>(false);
1912 cmd.Init(GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST);
1913 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1914 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1917 TEST_F(GLES2DecoderTest1, IsBufferValidArgs) {
1918 SpecializedSetup<cmds::IsBuffer, 0>(true);
1920 cmd.Init(client_buffer_id_, shared_memory_id_, shared_memory_offset_);
1921 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1922 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1925 TEST_F(GLES2DecoderTest1, IsBufferInvalidArgsBadSharedMemoryId) {
1926 SpecializedSetup<cmds::IsBuffer, 0>(false);
1928 cmd.Init(client_buffer_id_, kInvalidSharedMemoryId, shared_memory_offset_);
1929 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1930 cmd.Init(client_buffer_id_, shared_memory_id_, kInvalidSharedMemoryOffset);
1931 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1934 TEST_F(GLES2DecoderTest1, IsEnabledValidArgs) {
1935 SpecializedSetup<cmds::IsEnabled, 0>(true);
1936 cmds::IsEnabled cmd;
1937 cmd.Init(GL_BLEND, shared_memory_id_, shared_memory_offset_);
1938 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1939 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1942 TEST_F(GLES2DecoderTest1, IsEnabledInvalidArgs0_0) {
1943 EXPECT_CALL(*gl_, IsEnabled(_)).Times(0);
1944 SpecializedSetup<cmds::IsEnabled, 0>(false);
1945 cmds::IsEnabled cmd;
1946 cmd.Init(GL_CLIP_PLANE0, shared_memory_id_, shared_memory_offset_);
1947 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1948 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1951 TEST_F(GLES2DecoderTest1, IsEnabledInvalidArgs0_1) {
1952 EXPECT_CALL(*gl_, IsEnabled(_)).Times(0);
1953 SpecializedSetup<cmds::IsEnabled, 0>(false);
1954 cmds::IsEnabled cmd;
1955 cmd.Init(GL_POINT_SPRITE, shared_memory_id_, shared_memory_offset_);
1956 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1957 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1960 TEST_F(GLES2DecoderTest1, IsEnabledInvalidArgsBadSharedMemoryId) {
1961 SpecializedSetup<cmds::IsEnabled, 0>(false);
1962 cmds::IsEnabled cmd;
1963 cmd.Init(GL_BLEND, kInvalidSharedMemoryId, shared_memory_offset_);
1964 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1965 cmd.Init(GL_BLEND, shared_memory_id_, kInvalidSharedMemoryOffset);
1966 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1969 TEST_F(GLES2DecoderTest1, IsFramebufferValidArgs) {
1970 SpecializedSetup<cmds::IsFramebuffer, 0>(true);
1971 cmds::IsFramebuffer cmd;
1972 cmd.Init(client_framebuffer_id_, shared_memory_id_, shared_memory_offset_);
1973 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1974 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1977 TEST_F(GLES2DecoderTest1, IsFramebufferInvalidArgsBadSharedMemoryId) {
1978 SpecializedSetup<cmds::IsFramebuffer, 0>(false);
1979 cmds::IsFramebuffer cmd;
1981 client_framebuffer_id_, kInvalidSharedMemoryId, shared_memory_offset_);
1982 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1984 client_framebuffer_id_, shared_memory_id_, kInvalidSharedMemoryOffset);
1985 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1988 TEST_F(GLES2DecoderTest1, IsProgramValidArgs) {
1989 SpecializedSetup<cmds::IsProgram, 0>(true);
1990 cmds::IsProgram cmd;
1991 cmd.Init(client_program_id_, shared_memory_id_, shared_memory_offset_);
1992 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1993 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1996 TEST_F(GLES2DecoderTest1, IsProgramInvalidArgsBadSharedMemoryId) {
1997 SpecializedSetup<cmds::IsProgram, 0>(false);
1998 cmds::IsProgram cmd;
1999 cmd.Init(client_program_id_, kInvalidSharedMemoryId, shared_memory_offset_);
2000 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
2001 cmd.Init(client_program_id_, shared_memory_id_, kInvalidSharedMemoryOffset);
2002 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
2004 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_UNITTEST_1_AUTOGEN_H_