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.
4
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
9 // DO NOT EDIT!
10
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_
14
TEST_P(GLES2DecoderTest1,AttachShaderValidArgs)15 TEST_P(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());
22 }
23
TEST_P(GLES2DecoderTest1,BindBufferValidArgs)24 TEST_P(GLES2DecoderTest1, BindBufferValidArgs) {
25 EXPECT_CALL(*gl_, BindBuffer(GL_ARRAY_BUFFER, kServiceBufferId));
26 SpecializedSetup<cmds::BindBuffer, 0>(true);
27 cmds::BindBuffer cmd;
28 cmd.Init(GL_ARRAY_BUFFER, client_buffer_id_);
29 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
30 EXPECT_EQ(GL_NO_ERROR, GetGLError());
31 }
32
TEST_P(GLES2DecoderTest1,BindBufferValidArgsNewId)33 TEST_P(GLES2DecoderTest1, BindBufferValidArgsNewId) {
34 EXPECT_CALL(*gl_, BindBuffer(GL_ARRAY_BUFFER, kNewServiceId));
35 EXPECT_CALL(*gl_, GenBuffersARB(1, _))
36 .WillOnce(SetArgPointee<1>(kNewServiceId));
37 SpecializedSetup<cmds::BindBuffer, 0>(true);
38 cmds::BindBuffer cmd;
39 cmd.Init(GL_ARRAY_BUFFER, kNewClientId);
40 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
41 EXPECT_EQ(GL_NO_ERROR, GetGLError());
42 EXPECT_TRUE(GetBuffer(kNewClientId) != nullptr);
43 }
44
TEST_P(GLES2DecoderTest1,BindBufferInvalidArgs0_0)45 TEST_P(GLES2DecoderTest1, BindBufferInvalidArgs0_0) {
46 EXPECT_CALL(*gl_, BindBuffer(_, _)).Times(0);
47 SpecializedSetup<cmds::BindBuffer, 0>(false);
48 cmds::BindBuffer cmd;
49 cmd.Init(GL_RENDERBUFFER, client_buffer_id_);
50 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
51 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
52 }
53
TEST_P(GLES2DecoderTest1,BindFramebufferValidArgs)54 TEST_P(GLES2DecoderTest1, BindFramebufferValidArgs) {
55 EXPECT_CALL(*gl_, BindFramebufferEXT(GL_FRAMEBUFFER, kServiceFramebufferId));
56 SpecializedSetup<cmds::BindFramebuffer, 0>(true);
57 cmds::BindFramebuffer cmd;
58 cmd.Init(GL_FRAMEBUFFER, client_framebuffer_id_);
59 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
60 EXPECT_EQ(GL_NO_ERROR, GetGLError());
61 }
62
TEST_P(GLES2DecoderTest1,BindFramebufferValidArgsNewId)63 TEST_P(GLES2DecoderTest1, BindFramebufferValidArgsNewId) {
64 EXPECT_CALL(*gl_, BindFramebufferEXT(GL_FRAMEBUFFER, kNewServiceId));
65 EXPECT_CALL(*gl_, GenFramebuffersEXT(1, _))
66 .WillOnce(SetArgPointee<1>(kNewServiceId));
67 SpecializedSetup<cmds::BindFramebuffer, 0>(true);
68 cmds::BindFramebuffer cmd;
69 cmd.Init(GL_FRAMEBUFFER, kNewClientId);
70 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
71 EXPECT_EQ(GL_NO_ERROR, GetGLError());
72 EXPECT_TRUE(GetFramebuffer(kNewClientId) != nullptr);
73 }
74
TEST_P(GLES2DecoderTest1,BindFramebufferInvalidArgs0_0)75 TEST_P(GLES2DecoderTest1, BindFramebufferInvalidArgs0_0) {
76 EXPECT_CALL(*gl_, BindFramebufferEXT(_, _)).Times(0);
77 SpecializedSetup<cmds::BindFramebuffer, 0>(false);
78 cmds::BindFramebuffer cmd;
79 cmd.Init(GL_RENDERBUFFER, client_framebuffer_id_);
80 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
81 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
82 }
83
TEST_P(GLES2DecoderTest1,BindRenderbufferValidArgs)84 TEST_P(GLES2DecoderTest1, BindRenderbufferValidArgs) {
85 EXPECT_CALL(*gl_,
86 BindRenderbufferEXT(GL_RENDERBUFFER, kServiceRenderbufferId));
87 SpecializedSetup<cmds::BindRenderbuffer, 0>(true);
88 cmds::BindRenderbuffer cmd;
89 cmd.Init(GL_RENDERBUFFER, client_renderbuffer_id_);
90 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
91 EXPECT_EQ(GL_NO_ERROR, GetGLError());
92 }
93
TEST_P(GLES2DecoderTest1,BindRenderbufferValidArgsNewId)94 TEST_P(GLES2DecoderTest1, BindRenderbufferValidArgsNewId) {
95 EXPECT_CALL(*gl_, BindRenderbufferEXT(GL_RENDERBUFFER, kNewServiceId));
96 EXPECT_CALL(*gl_, GenRenderbuffersEXT(1, _))
97 .WillOnce(SetArgPointee<1>(kNewServiceId));
98 SpecializedSetup<cmds::BindRenderbuffer, 0>(true);
99 cmds::BindRenderbuffer cmd;
100 cmd.Init(GL_RENDERBUFFER, kNewClientId);
101 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
102 EXPECT_EQ(GL_NO_ERROR, GetGLError());
103 EXPECT_TRUE(GetRenderbuffer(kNewClientId) != nullptr);
104 }
105
TEST_P(GLES2DecoderTest1,BindRenderbufferInvalidArgs0_0)106 TEST_P(GLES2DecoderTest1, BindRenderbufferInvalidArgs0_0) {
107 EXPECT_CALL(*gl_, BindRenderbufferEXT(_, _)).Times(0);
108 SpecializedSetup<cmds::BindRenderbuffer, 0>(false);
109 cmds::BindRenderbuffer cmd;
110 cmd.Init(GL_FRAMEBUFFER, client_renderbuffer_id_);
111 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
112 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
113 }
114
TEST_P(GLES3DecoderTest1,BindSamplerValidArgs)115 TEST_P(GLES3DecoderTest1, BindSamplerValidArgs) {
116 EXPECT_CALL(*gl_, BindSampler(1, kServiceSamplerId));
117 SpecializedSetup<cmds::BindSampler, 0>(true);
118 cmds::BindSampler cmd;
119 cmd.Init(1, client_sampler_id_);
120 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
121 EXPECT_EQ(GL_NO_ERROR, GetGLError());
122 }
123
TEST_P(GLES2DecoderTest1,BlendColorValidArgs)124 TEST_P(GLES2DecoderTest1, BlendColorValidArgs) {
125 EXPECT_CALL(*gl_, BlendColor(1, 2, 3, 4));
126 SpecializedSetup<cmds::BlendColor, 0>(true);
127 cmds::BlendColor cmd;
128 cmd.Init(1, 2, 3, 4);
129 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
130 EXPECT_EQ(GL_NO_ERROR, GetGLError());
131 }
132
TEST_P(GLES2DecoderTest1,BlendEquationValidArgs)133 TEST_P(GLES2DecoderTest1, BlendEquationValidArgs) {
134 EXPECT_CALL(*gl_, BlendEquation(GL_FUNC_SUBTRACT));
135 SpecializedSetup<cmds::BlendEquation, 0>(true);
136 cmds::BlendEquation cmd;
137 cmd.Init(GL_FUNC_SUBTRACT);
138 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
139 EXPECT_EQ(GL_NO_ERROR, GetGLError());
140 }
141
TEST_P(GLES2DecoderTest1,BlendEquationInvalidArgs0_0)142 TEST_P(GLES2DecoderTest1, BlendEquationInvalidArgs0_0) {
143 EXPECT_CALL(*gl_, BlendEquation(_)).Times(0);
144 SpecializedSetup<cmds::BlendEquation, 0>(false);
145 cmds::BlendEquation cmd;
146 cmd.Init(GL_NONE);
147 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
148 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
149 }
150
TEST_P(GLES2DecoderTest1,BlendEquationSeparateValidArgs)151 TEST_P(GLES2DecoderTest1, BlendEquationSeparateValidArgs) {
152 EXPECT_CALL(*gl_, BlendEquationSeparate(GL_FUNC_SUBTRACT, GL_FUNC_ADD));
153 SpecializedSetup<cmds::BlendEquationSeparate, 0>(true);
154 cmds::BlendEquationSeparate cmd;
155 cmd.Init(GL_FUNC_SUBTRACT, GL_FUNC_ADD);
156 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
157 EXPECT_EQ(GL_NO_ERROR, GetGLError());
158 }
159
TEST_P(GLES2DecoderTest1,BlendEquationSeparateInvalidArgs0_0)160 TEST_P(GLES2DecoderTest1, BlendEquationSeparateInvalidArgs0_0) {
161 EXPECT_CALL(*gl_, BlendEquationSeparate(_, _)).Times(0);
162 SpecializedSetup<cmds::BlendEquationSeparate, 0>(false);
163 cmds::BlendEquationSeparate cmd;
164 cmd.Init(GL_NONE, GL_FUNC_ADD);
165 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
166 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
167 }
168
TEST_P(GLES2DecoderTest1,BlendEquationSeparateInvalidArgs1_0)169 TEST_P(GLES2DecoderTest1, BlendEquationSeparateInvalidArgs1_0) {
170 EXPECT_CALL(*gl_, BlendEquationSeparate(_, _)).Times(0);
171 SpecializedSetup<cmds::BlendEquationSeparate, 0>(false);
172 cmds::BlendEquationSeparate cmd;
173 cmd.Init(GL_FUNC_SUBTRACT, GL_NONE);
174 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
175 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
176 }
177
TEST_P(GLES2DecoderTest1,BlendFuncValidArgs)178 TEST_P(GLES2DecoderTest1, BlendFuncValidArgs) {
179 EXPECT_CALL(*gl_, BlendFunc(GL_ZERO, GL_ZERO));
180 SpecializedSetup<cmds::BlendFunc, 0>(true);
181 cmds::BlendFunc cmd;
182 cmd.Init(GL_ZERO, GL_ZERO);
183 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
184 EXPECT_EQ(GL_NO_ERROR, GetGLError());
185 }
186
TEST_P(GLES2DecoderTest1,BlendFuncSeparateValidArgs)187 TEST_P(GLES2DecoderTest1, BlendFuncSeparateValidArgs) {
188 EXPECT_CALL(*gl_, BlendFuncSeparate(GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO));
189 SpecializedSetup<cmds::BlendFuncSeparate, 0>(true);
190 cmds::BlendFuncSeparate cmd;
191 cmd.Init(GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO);
192 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
193 EXPECT_EQ(GL_NO_ERROR, GetGLError());
194 }
195
TEST_P(GLES2DecoderTest1,CheckFramebufferStatusValidArgs)196 TEST_P(GLES2DecoderTest1, CheckFramebufferStatusValidArgs) {
197 EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(GL_FRAMEBUFFER));
198 SpecializedSetup<cmds::CheckFramebufferStatus, 0>(true);
199 cmds::CheckFramebufferStatus cmd;
200 cmd.Init(GL_FRAMEBUFFER, shared_memory_id_, shared_memory_offset_);
201 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
202 EXPECT_EQ(GL_NO_ERROR, GetGLError());
203 }
204
TEST_P(GLES2DecoderTest1,CheckFramebufferStatusInvalidArgs0_0)205 TEST_P(GLES2DecoderTest1, CheckFramebufferStatusInvalidArgs0_0) {
206 EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(_)).Times(0);
207 SpecializedSetup<cmds::CheckFramebufferStatus, 0>(false);
208 cmds::CheckFramebufferStatus cmd;
209 cmd.Init(GL_RENDERBUFFER, shared_memory_id_, shared_memory_offset_);
210 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
211 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
212 }
213
TEST_P(GLES2DecoderTest1,CheckFramebufferStatusInvalidArgsBadSharedMemoryId)214 TEST_P(GLES2DecoderTest1, CheckFramebufferStatusInvalidArgsBadSharedMemoryId) {
215 EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(GL_FRAMEBUFFER)).Times(0);
216 SpecializedSetup<cmds::CheckFramebufferStatus, 0>(false);
217 cmds::CheckFramebufferStatus cmd;
218 cmd.Init(GL_FRAMEBUFFER, kInvalidSharedMemoryId, shared_memory_offset_);
219 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
220 cmd.Init(GL_FRAMEBUFFER, shared_memory_id_, kInvalidSharedMemoryOffset);
221 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
222 }
223
TEST_P(GLES2DecoderTest1,ClearValidArgs)224 TEST_P(GLES2DecoderTest1, ClearValidArgs) {
225 EXPECT_CALL(*gl_, Clear(GL_COLOR_BUFFER_BIT));
226 SpecializedSetup<cmds::Clear, 0>(true);
227 cmds::Clear cmd;
228 cmd.Init(GL_COLOR_BUFFER_BIT);
229 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
230 EXPECT_EQ(GL_NO_ERROR, GetGLError());
231 }
232
TEST_P(GLES2DecoderTest1,ClearColorValidArgs)233 TEST_P(GLES2DecoderTest1, ClearColorValidArgs) {
234 EXPECT_CALL(*gl_, ClearColor(1, 2, 3, 4));
235 SpecializedSetup<cmds::ClearColor, 0>(true);
236 cmds::ClearColor cmd;
237 cmd.Init(1, 2, 3, 4);
238 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
239 EXPECT_EQ(GL_NO_ERROR, GetGLError());
240 }
241
TEST_P(GLES2DecoderTest1,ClearDepthfValidArgs)242 TEST_P(GLES2DecoderTest1, ClearDepthfValidArgs) {
243 EXPECT_CALL(*gl_, ClearDepth(0.5f));
244 SpecializedSetup<cmds::ClearDepthf, 0>(true);
245 cmds::ClearDepthf cmd;
246 cmd.Init(0.5f);
247 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
248 EXPECT_EQ(GL_NO_ERROR, GetGLError());
249 }
250
TEST_P(GLES2DecoderTest1,ClearStencilValidArgs)251 TEST_P(GLES2DecoderTest1, ClearStencilValidArgs) {
252 EXPECT_CALL(*gl_, ClearStencil(1));
253 SpecializedSetup<cmds::ClearStencil, 0>(true);
254 cmds::ClearStencil cmd;
255 cmd.Init(1);
256 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
257 EXPECT_EQ(GL_NO_ERROR, GetGLError());
258 }
259
TEST_P(GLES2DecoderTest1,ColorMaskValidArgs)260 TEST_P(GLES2DecoderTest1, ColorMaskValidArgs) {
261 SpecializedSetup<cmds::ColorMask, 0>(true);
262 cmds::ColorMask cmd;
263 cmd.Init(true, true, true, true);
264 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
265 EXPECT_EQ(GL_NO_ERROR, GetGLError());
266 }
267
TEST_P(GLES2DecoderTest1,CopyTexSubImage2DValidArgs)268 TEST_P(GLES2DecoderTest1, CopyTexSubImage2DValidArgs) {
269 EXPECT_CALL(*gl_, CopyTexSubImage2D(GL_TEXTURE_2D, 2, 3, 4, 5, 6, 7, 8));
270 SpecializedSetup<cmds::CopyTexSubImage2D, 0>(true);
271 cmds::CopyTexSubImage2D cmd;
272 cmd.Init(GL_TEXTURE_2D, 2, 3, 4, 5, 6, 7, 8);
273 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
274 EXPECT_EQ(GL_NO_ERROR, GetGLError());
275 }
276
TEST_P(GLES2DecoderTest1,CopyTexSubImage2DInvalidArgs0_0)277 TEST_P(GLES2DecoderTest1, CopyTexSubImage2DInvalidArgs0_0) {
278 EXPECT_CALL(*gl_, CopyTexSubImage2D(_, _, _, _, _, _, _, _)).Times(0);
279 SpecializedSetup<cmds::CopyTexSubImage2D, 0>(false);
280 cmds::CopyTexSubImage2D cmd;
281 cmd.Init(GL_PROXY_TEXTURE_CUBE_MAP, 2, 3, 4, 5, 6, 7, 8);
282 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
283 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
284 }
285
TEST_P(GLES2DecoderTest1,CopyTexSubImage2DInvalidArgs6_0)286 TEST_P(GLES2DecoderTest1, CopyTexSubImage2DInvalidArgs6_0) {
287 EXPECT_CALL(*gl_, CopyTexSubImage2D(_, _, _, _, _, _, _, _)).Times(0);
288 SpecializedSetup<cmds::CopyTexSubImage2D, 0>(false);
289 cmds::CopyTexSubImage2D cmd;
290 cmd.Init(GL_TEXTURE_2D, 2, 3, 4, 5, 6, -1, 8);
291 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
292 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
293 }
294
TEST_P(GLES2DecoderTest1,CopyTexSubImage2DInvalidArgs7_0)295 TEST_P(GLES2DecoderTest1, CopyTexSubImage2DInvalidArgs7_0) {
296 EXPECT_CALL(*gl_, CopyTexSubImage2D(_, _, _, _, _, _, _, _)).Times(0);
297 SpecializedSetup<cmds::CopyTexSubImage2D, 0>(false);
298 cmds::CopyTexSubImage2D cmd;
299 cmd.Init(GL_TEXTURE_2D, 2, 3, 4, 5, 6, 7, -1);
300 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
301 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
302 }
303
TEST_P(GLES2DecoderTest1,CreateProgramValidArgs)304 TEST_P(GLES2DecoderTest1, CreateProgramValidArgs) {
305 EXPECT_CALL(*gl_, CreateProgram()).WillOnce(Return(kNewServiceId));
306 SpecializedSetup<cmds::CreateProgram, 0>(true);
307 cmds::CreateProgram cmd;
308 cmd.Init(kNewClientId);
309 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
310 EXPECT_EQ(GL_NO_ERROR, GetGLError());
311 EXPECT_TRUE(GetProgram(kNewClientId));
312 }
313
TEST_P(GLES2DecoderTest1,CreateShaderValidArgs)314 TEST_P(GLES2DecoderTest1, CreateShaderValidArgs) {
315 EXPECT_CALL(*gl_, CreateShader(GL_VERTEX_SHADER))
316 .WillOnce(Return(kNewServiceId));
317 SpecializedSetup<cmds::CreateShader, 0>(true);
318 cmds::CreateShader cmd;
319 cmd.Init(GL_VERTEX_SHADER, kNewClientId);
320 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
321 EXPECT_EQ(GL_NO_ERROR, GetGLError());
322 EXPECT_TRUE(GetShader(kNewClientId));
323 }
324
TEST_P(GLES2DecoderTest1,CreateShaderInvalidArgs0_0)325 TEST_P(GLES2DecoderTest1, CreateShaderInvalidArgs0_0) {
326 EXPECT_CALL(*gl_, CreateShader(_)).Times(0);
327 SpecializedSetup<cmds::CreateShader, 0>(false);
328 cmds::CreateShader cmd;
329 cmd.Init(GL_GEOMETRY_SHADER, kNewClientId);
330 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
331 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
332 }
333
TEST_P(GLES2DecoderTest1,CullFaceValidArgs)334 TEST_P(GLES2DecoderTest1, CullFaceValidArgs) {
335 EXPECT_CALL(*gl_, CullFace(GL_FRONT));
336 SpecializedSetup<cmds::CullFace, 0>(true);
337 cmds::CullFace cmd;
338 cmd.Init(GL_FRONT);
339 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
340 EXPECT_EQ(GL_NO_ERROR, GetGLError());
341 }
342
TEST_P(GLES2DecoderTest1,DeleteBuffersImmediateValidArgs)343 TEST_P(GLES2DecoderTest1, DeleteBuffersImmediateValidArgs) {
344 EXPECT_CALL(*gl_, DeleteBuffersARB(1, Pointee(kServiceBufferId))).Times(1);
345 cmds::DeleteBuffersImmediate& cmd =
346 *GetImmediateAs<cmds::DeleteBuffersImmediate>();
347 SpecializedSetup<cmds::DeleteBuffersImmediate, 0>(true);
348 cmd.Init(1, &client_buffer_id_);
349 EXPECT_EQ(error::kNoError,
350 ExecuteImmediateCmd(cmd, sizeof(client_buffer_id_)));
351 EXPECT_EQ(GL_NO_ERROR, GetGLError());
352 EXPECT_TRUE(GetBuffer(client_buffer_id_) == nullptr);
353 }
354
TEST_P(GLES2DecoderTest1,DeleteBuffersImmediateInvalidArgs)355 TEST_P(GLES2DecoderTest1, DeleteBuffersImmediateInvalidArgs) {
356 cmds::DeleteBuffersImmediate& cmd =
357 *GetImmediateAs<cmds::DeleteBuffersImmediate>();
358 SpecializedSetup<cmds::DeleteBuffersImmediate, 0>(false);
359 GLuint temp = kInvalidClientId;
360 cmd.Init(1, &temp);
361 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
362 }
363
TEST_P(GLES2DecoderTest1,DeleteFramebuffersImmediateValidArgs)364 TEST_P(GLES2DecoderTest1, DeleteFramebuffersImmediateValidArgs) {
365 EXPECT_CALL(*gl_, DeleteFramebuffersEXT(1, Pointee(kServiceFramebufferId)))
366 .Times(1);
367 cmds::DeleteFramebuffersImmediate& cmd =
368 *GetImmediateAs<cmds::DeleteFramebuffersImmediate>();
369 SpecializedSetup<cmds::DeleteFramebuffersImmediate, 0>(true);
370 cmd.Init(1, &client_framebuffer_id_);
371 EXPECT_EQ(error::kNoError,
372 ExecuteImmediateCmd(cmd, sizeof(client_framebuffer_id_)));
373 EXPECT_EQ(GL_NO_ERROR, GetGLError());
374 EXPECT_TRUE(GetFramebuffer(client_framebuffer_id_) == nullptr);
375 }
376
TEST_P(GLES2DecoderTest1,DeleteFramebuffersImmediateInvalidArgs)377 TEST_P(GLES2DecoderTest1, DeleteFramebuffersImmediateInvalidArgs) {
378 cmds::DeleteFramebuffersImmediate& cmd =
379 *GetImmediateAs<cmds::DeleteFramebuffersImmediate>();
380 SpecializedSetup<cmds::DeleteFramebuffersImmediate, 0>(false);
381 GLuint temp = kInvalidClientId;
382 cmd.Init(1, &temp);
383 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
384 }
385
TEST_P(GLES2DecoderTest1,DeleteProgramValidArgs)386 TEST_P(GLES2DecoderTest1, DeleteProgramValidArgs) {
387 EXPECT_CALL(*gl_, DeleteProgram(kServiceProgramId));
388 SpecializedSetup<cmds::DeleteProgram, 0>(true);
389 cmds::DeleteProgram cmd;
390 cmd.Init(client_program_id_);
391 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
392 EXPECT_EQ(GL_NO_ERROR, GetGLError());
393 }
394
TEST_P(GLES2DecoderTest1,DeleteRenderbuffersImmediateValidArgs)395 TEST_P(GLES2DecoderTest1, DeleteRenderbuffersImmediateValidArgs) {
396 EXPECT_CALL(*gl_, DeleteRenderbuffersEXT(1, Pointee(kServiceRenderbufferId)))
397 .Times(1);
398 cmds::DeleteRenderbuffersImmediate& cmd =
399 *GetImmediateAs<cmds::DeleteRenderbuffersImmediate>();
400 SpecializedSetup<cmds::DeleteRenderbuffersImmediate, 0>(true);
401 cmd.Init(1, &client_renderbuffer_id_);
402 EXPECT_EQ(error::kNoError,
403 ExecuteImmediateCmd(cmd, sizeof(client_renderbuffer_id_)));
404 EXPECT_EQ(GL_NO_ERROR, GetGLError());
405 EXPECT_TRUE(GetRenderbuffer(client_renderbuffer_id_) == nullptr);
406 }
407
TEST_P(GLES2DecoderTest1,DeleteRenderbuffersImmediateInvalidArgs)408 TEST_P(GLES2DecoderTest1, DeleteRenderbuffersImmediateInvalidArgs) {
409 cmds::DeleteRenderbuffersImmediate& cmd =
410 *GetImmediateAs<cmds::DeleteRenderbuffersImmediate>();
411 SpecializedSetup<cmds::DeleteRenderbuffersImmediate, 0>(false);
412 GLuint temp = kInvalidClientId;
413 cmd.Init(1, &temp);
414 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
415 }
416
TEST_P(GLES3DecoderTest1,DeleteSamplersImmediateValidArgs)417 TEST_P(GLES3DecoderTest1, DeleteSamplersImmediateValidArgs) {
418 EXPECT_CALL(*gl_, DeleteSamplers(1, Pointee(kServiceSamplerId))).Times(1);
419 cmds::DeleteSamplersImmediate& cmd =
420 *GetImmediateAs<cmds::DeleteSamplersImmediate>();
421 SpecializedSetup<cmds::DeleteSamplersImmediate, 0>(true);
422 cmd.Init(1, &client_sampler_id_);
423 EXPECT_EQ(error::kNoError,
424 ExecuteImmediateCmd(cmd, sizeof(client_sampler_id_)));
425 EXPECT_EQ(GL_NO_ERROR, GetGLError());
426 EXPECT_TRUE(GetSampler(client_sampler_id_) == nullptr);
427 }
428
TEST_P(GLES3DecoderTest1,DeleteSamplersImmediateInvalidArgs)429 TEST_P(GLES3DecoderTest1, DeleteSamplersImmediateInvalidArgs) {
430 cmds::DeleteSamplersImmediate& cmd =
431 *GetImmediateAs<cmds::DeleteSamplersImmediate>();
432 SpecializedSetup<cmds::DeleteSamplersImmediate, 0>(false);
433 GLuint temp = kInvalidClientId;
434 cmd.Init(1, &temp);
435 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
436 }
437
TEST_P(GLES3DecoderTest1,DeleteSyncValidArgs)438 TEST_P(GLES3DecoderTest1, DeleteSyncValidArgs) {
439 EXPECT_CALL(*gl_, DeleteSync(reinterpret_cast<GLsync>(kServiceSyncId)));
440 SpecializedSetup<cmds::DeleteSync, 0>(true);
441 cmds::DeleteSync cmd;
442 cmd.Init(client_sync_id_);
443 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
444 EXPECT_EQ(GL_NO_ERROR, GetGLError());
445 }
446
TEST_P(GLES2DecoderTest1,DeleteShaderValidArgs)447 TEST_P(GLES2DecoderTest1, DeleteShaderValidArgs) {
448 EXPECT_CALL(*gl_, DeleteShader(kServiceShaderId));
449 SpecializedSetup<cmds::DeleteShader, 0>(true);
450 cmds::DeleteShader cmd;
451 cmd.Init(client_shader_id_);
452 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
453 EXPECT_EQ(GL_NO_ERROR, GetGLError());
454 }
455
TEST_P(GLES2DecoderTest1,DeleteTexturesImmediateValidArgs)456 TEST_P(GLES2DecoderTest1, DeleteTexturesImmediateValidArgs) {
457 EXPECT_CALL(*gl_, DeleteTextures(1, Pointee(kServiceTextureId))).Times(1);
458 cmds::DeleteTexturesImmediate& cmd =
459 *GetImmediateAs<cmds::DeleteTexturesImmediate>();
460 SpecializedSetup<cmds::DeleteTexturesImmediate, 0>(true);
461 cmd.Init(1, &client_texture_id_);
462 EXPECT_EQ(error::kNoError,
463 ExecuteImmediateCmd(cmd, sizeof(client_texture_id_)));
464 EXPECT_EQ(GL_NO_ERROR, GetGLError());
465 EXPECT_TRUE(GetTexture(client_texture_id_) == nullptr);
466 }
467
TEST_P(GLES2DecoderTest1,DeleteTexturesImmediateInvalidArgs)468 TEST_P(GLES2DecoderTest1, DeleteTexturesImmediateInvalidArgs) {
469 cmds::DeleteTexturesImmediate& cmd =
470 *GetImmediateAs<cmds::DeleteTexturesImmediate>();
471 SpecializedSetup<cmds::DeleteTexturesImmediate, 0>(false);
472 GLuint temp = kInvalidClientId;
473 cmd.Init(1, &temp);
474 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
475 }
476
TEST_P(GLES2DecoderTest1,DepthFuncValidArgs)477 TEST_P(GLES2DecoderTest1, DepthFuncValidArgs) {
478 EXPECT_CALL(*gl_, DepthFunc(GL_NEVER));
479 SpecializedSetup<cmds::DepthFunc, 0>(true);
480 cmds::DepthFunc cmd;
481 cmd.Init(GL_NEVER);
482 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
483 EXPECT_EQ(GL_NO_ERROR, GetGLError());
484 }
485
TEST_P(GLES2DecoderTest1,DepthMaskValidArgs)486 TEST_P(GLES2DecoderTest1, DepthMaskValidArgs) {
487 SpecializedSetup<cmds::DepthMask, 0>(true);
488 cmds::DepthMask cmd;
489 cmd.Init(true);
490 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
491 EXPECT_EQ(GL_NO_ERROR, GetGLError());
492 }
493
TEST_P(GLES2DecoderTest1,DepthRangefValidArgs)494 TEST_P(GLES2DecoderTest1, DepthRangefValidArgs) {
495 EXPECT_CALL(*gl_, DepthRange(1, 2));
496 SpecializedSetup<cmds::DepthRangef, 0>(true);
497 cmds::DepthRangef cmd;
498 cmd.Init(1, 2);
499 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
500 EXPECT_EQ(GL_NO_ERROR, GetGLError());
501 }
502
TEST_P(GLES2DecoderTest1,DetachShaderValidArgs)503 TEST_P(GLES2DecoderTest1, DetachShaderValidArgs) {
504 EXPECT_CALL(*gl_, DetachShader(kServiceProgramId, kServiceShaderId));
505 SpecializedSetup<cmds::DetachShader, 0>(true);
506 cmds::DetachShader cmd;
507 cmd.Init(client_program_id_, client_shader_id_);
508 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
509 EXPECT_EQ(GL_NO_ERROR, GetGLError());
510 }
511
TEST_P(GLES2DecoderTest1,DisableValidArgs)512 TEST_P(GLES2DecoderTest1, DisableValidArgs) {
513 SetupExpectationsForEnableDisable(GL_BLEND, false);
514 SpecializedSetup<cmds::Disable, 0>(true);
515 cmds::Disable cmd;
516 cmd.Init(GL_BLEND);
517 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
518 EXPECT_EQ(GL_NO_ERROR, GetGLError());
519 }
520
TEST_P(GLES2DecoderTest1,DisableInvalidArgs0_0)521 TEST_P(GLES2DecoderTest1, DisableInvalidArgs0_0) {
522 EXPECT_CALL(*gl_, Disable(_)).Times(0);
523 SpecializedSetup<cmds::Disable, 0>(false);
524 cmds::Disable cmd;
525 cmd.Init(GL_CLIP_PLANE0);
526 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
527 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
528 }
529
TEST_P(GLES2DecoderTest1,DisableInvalidArgs0_1)530 TEST_P(GLES2DecoderTest1, DisableInvalidArgs0_1) {
531 EXPECT_CALL(*gl_, Disable(_)).Times(0);
532 SpecializedSetup<cmds::Disable, 0>(false);
533 cmds::Disable cmd;
534 cmd.Init(GL_POINT_SPRITE);
535 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
536 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
537 }
538
TEST_P(GLES2DecoderTest1,EnableValidArgs)539 TEST_P(GLES2DecoderTest1, EnableValidArgs) {
540 SetupExpectationsForEnableDisable(GL_BLEND, true);
541 SpecializedSetup<cmds::Enable, 0>(true);
542 cmds::Enable cmd;
543 cmd.Init(GL_BLEND);
544 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
545 EXPECT_EQ(GL_NO_ERROR, GetGLError());
546 }
547
TEST_P(GLES2DecoderTest1,EnableInvalidArgs0_0)548 TEST_P(GLES2DecoderTest1, EnableInvalidArgs0_0) {
549 EXPECT_CALL(*gl_, Enable(_)).Times(0);
550 SpecializedSetup<cmds::Enable, 0>(false);
551 cmds::Enable cmd;
552 cmd.Init(GL_CLIP_PLANE0);
553 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
554 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
555 }
556
TEST_P(GLES2DecoderTest1,EnableInvalidArgs0_1)557 TEST_P(GLES2DecoderTest1, EnableInvalidArgs0_1) {
558 EXPECT_CALL(*gl_, Enable(_)).Times(0);
559 SpecializedSetup<cmds::Enable, 0>(false);
560 cmds::Enable cmd;
561 cmd.Init(GL_POINT_SPRITE);
562 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
563 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
564 }
565
TEST_P(GLES3DecoderTest1,FenceSyncValidArgs)566 TEST_P(GLES3DecoderTest1, FenceSyncValidArgs) {
567 const GLsync kNewServiceIdGLuint = reinterpret_cast<GLsync>(kNewServiceId);
568 EXPECT_CALL(*gl_, FenceSync(GL_SYNC_GPU_COMMANDS_COMPLETE, 0))
569 .WillOnce(Return(kNewServiceIdGLuint));
570 SpecializedSetup<cmds::FenceSync, 0>(true);
571 cmds::FenceSync cmd;
572 cmd.Init(kNewClientId);
573 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
574 EXPECT_EQ(GL_NO_ERROR, GetGLError());
575 GLsync service_id = 0;
576 EXPECT_TRUE(GetSyncServiceId(kNewClientId, &service_id));
577 EXPECT_EQ(kNewServiceIdGLuint, service_id);
578 }
579
TEST_P(GLES2DecoderTest1,FinishValidArgs)580 TEST_P(GLES2DecoderTest1, FinishValidArgs) {
581 EXPECT_CALL(*gl_, Finish());
582 SpecializedSetup<cmds::Finish, 0>(true);
583 cmds::Finish cmd;
584 cmd.Init();
585 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
586 EXPECT_EQ(GL_NO_ERROR, GetGLError());
587 }
588
TEST_P(GLES2DecoderTest1,FlushValidArgs)589 TEST_P(GLES2DecoderTest1, FlushValidArgs) {
590 EXPECT_CALL(*gl_, Flush());
591 SpecializedSetup<cmds::Flush, 0>(true);
592 cmds::Flush cmd;
593 cmd.Init();
594 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
595 EXPECT_EQ(GL_NO_ERROR, GetGLError());
596 }
597
TEST_P(GLES2DecoderTest1,FramebufferRenderbufferValidArgs)598 TEST_P(GLES2DecoderTest1, FramebufferRenderbufferValidArgs) {
599 EXPECT_CALL(*gl_, FramebufferRenderbufferEXT(
600 GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER,
601 kServiceRenderbufferId));
602 SpecializedSetup<cmds::FramebufferRenderbuffer, 0>(true);
603 cmds::FramebufferRenderbuffer cmd;
604 cmd.Init(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER,
605 client_renderbuffer_id_);
606 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
607 EXPECT_EQ(GL_NO_ERROR, GetGLError());
608 }
609
TEST_P(GLES2DecoderTest1,FramebufferRenderbufferInvalidArgs0_0)610 TEST_P(GLES2DecoderTest1, FramebufferRenderbufferInvalidArgs0_0) {
611 EXPECT_CALL(*gl_, FramebufferRenderbufferEXT(_, _, _, _)).Times(0);
612 SpecializedSetup<cmds::FramebufferRenderbuffer, 0>(false);
613 cmds::FramebufferRenderbuffer cmd;
614 cmd.Init(GL_RENDERBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER,
615 client_renderbuffer_id_);
616 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
617 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
618 }
619
TEST_P(GLES2DecoderTest1,FramebufferRenderbufferInvalidArgs2_0)620 TEST_P(GLES2DecoderTest1, FramebufferRenderbufferInvalidArgs2_0) {
621 EXPECT_CALL(*gl_, FramebufferRenderbufferEXT(_, _, _, _)).Times(0);
622 SpecializedSetup<cmds::FramebufferRenderbuffer, 0>(false);
623 cmds::FramebufferRenderbuffer cmd;
624 cmd.Init(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_FRAMEBUFFER,
625 client_renderbuffer_id_);
626 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
627 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
628 }
629
TEST_P(GLES2DecoderTest1,FrontFaceValidArgs)630 TEST_P(GLES2DecoderTest1, FrontFaceValidArgs) {
631 EXPECT_CALL(*gl_, FrontFace(GL_CW));
632 SpecializedSetup<cmds::FrontFace, 0>(true);
633 cmds::FrontFace cmd;
634 cmd.Init(GL_CW);
635 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
636 EXPECT_EQ(GL_NO_ERROR, GetGLError());
637 }
638
TEST_P(GLES2DecoderTest1,GenBuffersImmediateValidArgs)639 TEST_P(GLES2DecoderTest1, GenBuffersImmediateValidArgs) {
640 EXPECT_CALL(*gl_, GenBuffersARB(1, _))
641 .WillOnce(SetArgPointee<1>(kNewServiceId));
642 cmds::GenBuffersImmediate* cmd = GetImmediateAs<cmds::GenBuffersImmediate>();
643 GLuint temp = kNewClientId;
644 SpecializedSetup<cmds::GenBuffersImmediate, 0>(true);
645 cmd->Init(1, &temp);
646 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(*cmd, sizeof(temp)));
647 EXPECT_EQ(GL_NO_ERROR, GetGLError());
648 EXPECT_TRUE(GetBuffer(kNewClientId) != nullptr);
649 }
650
TEST_P(GLES2DecoderTest1,GenBuffersImmediateDuplicateOrNullIds)651 TEST_P(GLES2DecoderTest1, GenBuffersImmediateDuplicateOrNullIds) {
652 EXPECT_CALL(*gl_, GenBuffersARB(_, _)).Times(0);
653 cmds::GenBuffersImmediate* cmd = GetImmediateAs<cmds::GenBuffersImmediate>();
654 GLuint temp[3] = {kNewClientId, kNewClientId + 1, kNewClientId};
655 SpecializedSetup<cmds::GenBuffersImmediate, 1>(true);
656 cmd->Init(3, temp);
657 EXPECT_EQ(error::kInvalidArguments, ExecuteImmediateCmd(*cmd, sizeof(temp)));
658 EXPECT_TRUE(GetBuffer(kNewClientId) == nullptr);
659 EXPECT_TRUE(GetBuffer(kNewClientId + 1) == nullptr);
660 GLuint null_id[2] = {kNewClientId, 0};
661 cmd->Init(2, null_id);
662 EXPECT_EQ(error::kInvalidArguments, ExecuteImmediateCmd(*cmd, sizeof(temp)));
663 EXPECT_TRUE(GetBuffer(kNewClientId) == nullptr);
664 }
665
TEST_P(GLES2DecoderTest1,GenBuffersImmediateInvalidArgs)666 TEST_P(GLES2DecoderTest1, GenBuffersImmediateInvalidArgs) {
667 EXPECT_CALL(*gl_, GenBuffersARB(_, _)).Times(0);
668 cmds::GenBuffersImmediate* cmd = GetImmediateAs<cmds::GenBuffersImmediate>();
669 SpecializedSetup<cmds::GenBuffersImmediate, 0>(false);
670 cmd->Init(1, &client_buffer_id_);
671 EXPECT_EQ(error::kInvalidArguments,
672 ExecuteImmediateCmd(*cmd, sizeof(&client_buffer_id_)));
673 }
674
TEST_P(GLES2DecoderTest1,GenerateMipmapValidArgs)675 TEST_P(GLES2DecoderTest1, GenerateMipmapValidArgs) {
676 EXPECT_CALL(*gl_, GenerateMipmapEXT(GL_TEXTURE_2D));
677 SpecializedSetup<cmds::GenerateMipmap, 0>(true);
678 cmds::GenerateMipmap cmd;
679 cmd.Init(GL_TEXTURE_2D);
680 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
681 EXPECT_EQ(GL_NO_ERROR, GetGLError());
682 }
683
TEST_P(GLES2DecoderTest1,GenerateMipmapInvalidArgs0_0)684 TEST_P(GLES2DecoderTest1, GenerateMipmapInvalidArgs0_0) {
685 EXPECT_CALL(*gl_, GenerateMipmapEXT(_)).Times(0);
686 SpecializedSetup<cmds::GenerateMipmap, 0>(false);
687 cmds::GenerateMipmap cmd;
688 cmd.Init(GL_TEXTURE_1D);
689 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
690 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
691 }
692
TEST_P(GLES2DecoderTest1,GenerateMipmapInvalidArgs0_1)693 TEST_P(GLES2DecoderTest1, GenerateMipmapInvalidArgs0_1) {
694 EXPECT_CALL(*gl_, GenerateMipmapEXT(_)).Times(0);
695 SpecializedSetup<cmds::GenerateMipmap, 0>(false);
696 cmds::GenerateMipmap cmd;
697 cmd.Init(GL_TEXTURE_3D);
698 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
699 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
700 }
701
TEST_P(GLES2DecoderTest1,GenFramebuffersImmediateValidArgs)702 TEST_P(GLES2DecoderTest1, GenFramebuffersImmediateValidArgs) {
703 EXPECT_CALL(*gl_, GenFramebuffersEXT(1, _))
704 .WillOnce(SetArgPointee<1>(kNewServiceId));
705 cmds::GenFramebuffersImmediate* cmd =
706 GetImmediateAs<cmds::GenFramebuffersImmediate>();
707 GLuint temp = kNewClientId;
708 SpecializedSetup<cmds::GenFramebuffersImmediate, 0>(true);
709 cmd->Init(1, &temp);
710 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(*cmd, sizeof(temp)));
711 EXPECT_EQ(GL_NO_ERROR, GetGLError());
712 EXPECT_TRUE(GetFramebuffer(kNewClientId) != nullptr);
713 }
714
TEST_P(GLES2DecoderTest1,GenFramebuffersImmediateDuplicateOrNullIds)715 TEST_P(GLES2DecoderTest1, GenFramebuffersImmediateDuplicateOrNullIds) {
716 EXPECT_CALL(*gl_, GenFramebuffersEXT(_, _)).Times(0);
717 cmds::GenFramebuffersImmediate* cmd =
718 GetImmediateAs<cmds::GenFramebuffersImmediate>();
719 GLuint temp[3] = {kNewClientId, kNewClientId + 1, kNewClientId};
720 SpecializedSetup<cmds::GenFramebuffersImmediate, 1>(true);
721 cmd->Init(3, temp);
722 EXPECT_EQ(error::kInvalidArguments, ExecuteImmediateCmd(*cmd, sizeof(temp)));
723 EXPECT_TRUE(GetFramebuffer(kNewClientId) == nullptr);
724 EXPECT_TRUE(GetFramebuffer(kNewClientId + 1) == nullptr);
725 GLuint null_id[2] = {kNewClientId, 0};
726 cmd->Init(2, null_id);
727 EXPECT_EQ(error::kInvalidArguments, ExecuteImmediateCmd(*cmd, sizeof(temp)));
728 EXPECT_TRUE(GetFramebuffer(kNewClientId) == nullptr);
729 }
730
TEST_P(GLES2DecoderTest1,GenFramebuffersImmediateInvalidArgs)731 TEST_P(GLES2DecoderTest1, GenFramebuffersImmediateInvalidArgs) {
732 EXPECT_CALL(*gl_, GenFramebuffersEXT(_, _)).Times(0);
733 cmds::GenFramebuffersImmediate* cmd =
734 GetImmediateAs<cmds::GenFramebuffersImmediate>();
735 SpecializedSetup<cmds::GenFramebuffersImmediate, 0>(false);
736 cmd->Init(1, &client_framebuffer_id_);
737 EXPECT_EQ(error::kInvalidArguments,
738 ExecuteImmediateCmd(*cmd, sizeof(&client_framebuffer_id_)));
739 }
740
TEST_P(GLES2DecoderTest1,GenRenderbuffersImmediateValidArgs)741 TEST_P(GLES2DecoderTest1, GenRenderbuffersImmediateValidArgs) {
742 EXPECT_CALL(*gl_, GenRenderbuffersEXT(1, _))
743 .WillOnce(SetArgPointee<1>(kNewServiceId));
744 cmds::GenRenderbuffersImmediate* cmd =
745 GetImmediateAs<cmds::GenRenderbuffersImmediate>();
746 GLuint temp = kNewClientId;
747 SpecializedSetup<cmds::GenRenderbuffersImmediate, 0>(true);
748 cmd->Init(1, &temp);
749 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(*cmd, sizeof(temp)));
750 EXPECT_EQ(GL_NO_ERROR, GetGLError());
751 EXPECT_TRUE(GetRenderbuffer(kNewClientId) != nullptr);
752 }
753
TEST_P(GLES2DecoderTest1,GenRenderbuffersImmediateDuplicateOrNullIds)754 TEST_P(GLES2DecoderTest1, GenRenderbuffersImmediateDuplicateOrNullIds) {
755 EXPECT_CALL(*gl_, GenRenderbuffersEXT(_, _)).Times(0);
756 cmds::GenRenderbuffersImmediate* cmd =
757 GetImmediateAs<cmds::GenRenderbuffersImmediate>();
758 GLuint temp[3] = {kNewClientId, kNewClientId + 1, kNewClientId};
759 SpecializedSetup<cmds::GenRenderbuffersImmediate, 1>(true);
760 cmd->Init(3, temp);
761 EXPECT_EQ(error::kInvalidArguments, ExecuteImmediateCmd(*cmd, sizeof(temp)));
762 EXPECT_TRUE(GetRenderbuffer(kNewClientId) == nullptr);
763 EXPECT_TRUE(GetRenderbuffer(kNewClientId + 1) == nullptr);
764 GLuint null_id[2] = {kNewClientId, 0};
765 cmd->Init(2, null_id);
766 EXPECT_EQ(error::kInvalidArguments, ExecuteImmediateCmd(*cmd, sizeof(temp)));
767 EXPECT_TRUE(GetRenderbuffer(kNewClientId) == nullptr);
768 }
769
TEST_P(GLES2DecoderTest1,GenRenderbuffersImmediateInvalidArgs)770 TEST_P(GLES2DecoderTest1, GenRenderbuffersImmediateInvalidArgs) {
771 EXPECT_CALL(*gl_, GenRenderbuffersEXT(_, _)).Times(0);
772 cmds::GenRenderbuffersImmediate* cmd =
773 GetImmediateAs<cmds::GenRenderbuffersImmediate>();
774 SpecializedSetup<cmds::GenRenderbuffersImmediate, 0>(false);
775 cmd->Init(1, &client_renderbuffer_id_);
776 EXPECT_EQ(error::kInvalidArguments,
777 ExecuteImmediateCmd(*cmd, sizeof(&client_renderbuffer_id_)));
778 }
779
TEST_P(GLES3DecoderTest1,GenSamplersImmediateValidArgs)780 TEST_P(GLES3DecoderTest1, GenSamplersImmediateValidArgs) {
781 EXPECT_CALL(*gl_, GenSamplers(1, _))
782 .WillOnce(SetArgPointee<1>(kNewServiceId));
783 cmds::GenSamplersImmediate* cmd =
784 GetImmediateAs<cmds::GenSamplersImmediate>();
785 GLuint temp = kNewClientId;
786 SpecializedSetup<cmds::GenSamplersImmediate, 0>(true);
787 cmd->Init(1, &temp);
788 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(*cmd, sizeof(temp)));
789 EXPECT_EQ(GL_NO_ERROR, GetGLError());
790 EXPECT_TRUE(GetSampler(kNewClientId) != nullptr);
791 }
792
TEST_P(GLES3DecoderTest1,GenSamplersImmediateDuplicateOrNullIds)793 TEST_P(GLES3DecoderTest1, GenSamplersImmediateDuplicateOrNullIds) {
794 EXPECT_CALL(*gl_, GenSamplers(_, _)).Times(0);
795 cmds::GenSamplersImmediate* cmd =
796 GetImmediateAs<cmds::GenSamplersImmediate>();
797 GLuint temp[3] = {kNewClientId, kNewClientId + 1, kNewClientId};
798 SpecializedSetup<cmds::GenSamplersImmediate, 1>(true);
799 cmd->Init(3, temp);
800 EXPECT_EQ(error::kInvalidArguments, ExecuteImmediateCmd(*cmd, sizeof(temp)));
801 EXPECT_TRUE(GetSampler(kNewClientId) == nullptr);
802 EXPECT_TRUE(GetSampler(kNewClientId + 1) == nullptr);
803 GLuint null_id[2] = {kNewClientId, 0};
804 cmd->Init(2, null_id);
805 EXPECT_EQ(error::kInvalidArguments, ExecuteImmediateCmd(*cmd, sizeof(temp)));
806 EXPECT_TRUE(GetSampler(kNewClientId) == nullptr);
807 }
808
TEST_P(GLES3DecoderTest1,GenSamplersImmediateInvalidArgs)809 TEST_P(GLES3DecoderTest1, GenSamplersImmediateInvalidArgs) {
810 EXPECT_CALL(*gl_, GenSamplers(_, _)).Times(0);
811 cmds::GenSamplersImmediate* cmd =
812 GetImmediateAs<cmds::GenSamplersImmediate>();
813 SpecializedSetup<cmds::GenSamplersImmediate, 0>(false);
814 cmd->Init(1, &client_sampler_id_);
815 EXPECT_EQ(error::kInvalidArguments,
816 ExecuteImmediateCmd(*cmd, sizeof(&client_sampler_id_)));
817 }
818
TEST_P(GLES2DecoderTest1,GenTexturesImmediateValidArgs)819 TEST_P(GLES2DecoderTest1, GenTexturesImmediateValidArgs) {
820 EXPECT_CALL(*gl_, GenTextures(1, _))
821 .WillOnce(SetArgPointee<1>(kNewServiceId));
822 cmds::GenTexturesImmediate* cmd =
823 GetImmediateAs<cmds::GenTexturesImmediate>();
824 GLuint temp = kNewClientId;
825 SpecializedSetup<cmds::GenTexturesImmediate, 0>(true);
826 cmd->Init(1, &temp);
827 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(*cmd, sizeof(temp)));
828 EXPECT_EQ(GL_NO_ERROR, GetGLError());
829 EXPECT_TRUE(GetTexture(kNewClientId) != nullptr);
830 }
831
TEST_P(GLES2DecoderTest1,GenTexturesImmediateDuplicateOrNullIds)832 TEST_P(GLES2DecoderTest1, GenTexturesImmediateDuplicateOrNullIds) {
833 EXPECT_CALL(*gl_, GenTextures(_, _)).Times(0);
834 cmds::GenTexturesImmediate* cmd =
835 GetImmediateAs<cmds::GenTexturesImmediate>();
836 GLuint temp[3] = {kNewClientId, kNewClientId + 1, kNewClientId};
837 SpecializedSetup<cmds::GenTexturesImmediate, 1>(true);
838 cmd->Init(3, temp);
839 EXPECT_EQ(error::kInvalidArguments, ExecuteImmediateCmd(*cmd, sizeof(temp)));
840 EXPECT_TRUE(GetTexture(kNewClientId) == nullptr);
841 EXPECT_TRUE(GetTexture(kNewClientId + 1) == nullptr);
842 GLuint null_id[2] = {kNewClientId, 0};
843 cmd->Init(2, null_id);
844 EXPECT_EQ(error::kInvalidArguments, ExecuteImmediateCmd(*cmd, sizeof(temp)));
845 EXPECT_TRUE(GetTexture(kNewClientId) == nullptr);
846 }
847
TEST_P(GLES2DecoderTest1,GenTexturesImmediateInvalidArgs)848 TEST_P(GLES2DecoderTest1, GenTexturesImmediateInvalidArgs) {
849 EXPECT_CALL(*gl_, GenTextures(_, _)).Times(0);
850 cmds::GenTexturesImmediate* cmd =
851 GetImmediateAs<cmds::GenTexturesImmediate>();
852 SpecializedSetup<cmds::GenTexturesImmediate, 0>(false);
853 cmd->Init(1, &client_texture_id_);
854 EXPECT_EQ(error::kInvalidArguments,
855 ExecuteImmediateCmd(*cmd, sizeof(&client_texture_id_)));
856 }
857
TEST_P(GLES3DecoderTest1,GenTransformFeedbacksImmediateValidArgs)858 TEST_P(GLES3DecoderTest1, GenTransformFeedbacksImmediateValidArgs) {
859 EXPECT_CALL(*gl_, GenTransformFeedbacks(1, _))
860 .WillOnce(SetArgPointee<1>(kNewServiceId));
861 cmds::GenTransformFeedbacksImmediate* cmd =
862 GetImmediateAs<cmds::GenTransformFeedbacksImmediate>();
863 GLuint temp = kNewClientId;
864 SpecializedSetup<cmds::GenTransformFeedbacksImmediate, 0>(true);
865 cmd->Init(1, &temp);
866 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(*cmd, sizeof(temp)));
867 EXPECT_EQ(GL_NO_ERROR, GetGLError());
868 EXPECT_TRUE(GetTransformFeedback(kNewClientId) != nullptr);
869 }
870
TEST_P(GLES3DecoderTest1,GenTransformFeedbacksImmediateDuplicateOrNullIds)871 TEST_P(GLES3DecoderTest1, GenTransformFeedbacksImmediateDuplicateOrNullIds) {
872 EXPECT_CALL(*gl_, GenTransformFeedbacks(_, _)).Times(0);
873 cmds::GenTransformFeedbacksImmediate* cmd =
874 GetImmediateAs<cmds::GenTransformFeedbacksImmediate>();
875 GLuint temp[3] = {kNewClientId, kNewClientId + 1, kNewClientId};
876 SpecializedSetup<cmds::GenTransformFeedbacksImmediate, 1>(true);
877 cmd->Init(3, temp);
878 EXPECT_EQ(error::kInvalidArguments, ExecuteImmediateCmd(*cmd, sizeof(temp)));
879 EXPECT_TRUE(GetTransformFeedback(kNewClientId) == nullptr);
880 EXPECT_TRUE(GetTransformFeedback(kNewClientId + 1) == nullptr);
881 GLuint null_id[2] = {kNewClientId, 0};
882 cmd->Init(2, null_id);
883 EXPECT_EQ(error::kInvalidArguments, ExecuteImmediateCmd(*cmd, sizeof(temp)));
884 EXPECT_TRUE(GetTransformFeedback(kNewClientId) == nullptr);
885 }
886
TEST_P(GLES3DecoderTest1,GenTransformFeedbacksImmediateInvalidArgs)887 TEST_P(GLES3DecoderTest1, GenTransformFeedbacksImmediateInvalidArgs) {
888 EXPECT_CALL(*gl_, GenTransformFeedbacks(_, _)).Times(0);
889 cmds::GenTransformFeedbacksImmediate* cmd =
890 GetImmediateAs<cmds::GenTransformFeedbacksImmediate>();
891 SpecializedSetup<cmds::GenTransformFeedbacksImmediate, 0>(false);
892 cmd->Init(1, &client_transformfeedback_id_);
893 EXPECT_EQ(error::kInvalidArguments,
894 ExecuteImmediateCmd(*cmd, sizeof(&client_transformfeedback_id_)));
895 }
896
TEST_P(GLES2DecoderTest1,GetBooleanvValidArgs)897 TEST_P(GLES2DecoderTest1, GetBooleanvValidArgs) {
898 EXPECT_CALL(*gl_, GetError()).WillRepeatedly(Return(GL_NO_ERROR));
899 SpecializedSetup<cmds::GetBooleanv, 0>(true);
900 typedef cmds::GetBooleanv::Result Result;
901 Result* result = static_cast<Result*>(shared_memory_address_);
902 EXPECT_CALL(*gl_, GetIntegerv(GL_ACTIVE_TEXTURE, _));
903 result->size = 0;
904 cmds::GetBooleanv cmd;
905 cmd.Init(GL_ACTIVE_TEXTURE, shared_memory_id_, shared_memory_offset_);
906 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
907 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_ACTIVE_TEXTURE),
908 result->GetNumResults());
909 EXPECT_EQ(GL_NO_ERROR, GetGLError());
910 }
911
TEST_P(GLES2DecoderTest1,GetBooleanvInvalidArgs0_0)912 TEST_P(GLES2DecoderTest1, GetBooleanvInvalidArgs0_0) {
913 EXPECT_CALL(*gl_, GetIntegerv(_, _)).Times(0);
914 SpecializedSetup<cmds::GetBooleanv, 0>(false);
915 cmds::GetBooleanv::Result* result =
916 static_cast<cmds::GetBooleanv::Result*>(shared_memory_address_);
917 result->size = 0;
918 cmds::GetBooleanv cmd;
919 cmd.Init(GL_FOG_HINT, shared_memory_id_, shared_memory_offset_);
920 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
921 EXPECT_EQ(0u, result->size);
922 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
923 }
924
TEST_P(GLES2DecoderTest1,GetBooleanvInvalidArgs1_0)925 TEST_P(GLES2DecoderTest1, GetBooleanvInvalidArgs1_0) {
926 EXPECT_CALL(*gl_, GetIntegerv(_, _)).Times(0);
927 SpecializedSetup<cmds::GetBooleanv, 0>(false);
928 cmds::GetBooleanv::Result* result =
929 static_cast<cmds::GetBooleanv::Result*>(shared_memory_address_);
930 result->size = 0;
931 cmds::GetBooleanv cmd;
932 cmd.Init(GL_ACTIVE_TEXTURE, kInvalidSharedMemoryId, 0);
933 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
934 EXPECT_EQ(0u, result->size);
935 }
936
TEST_P(GLES2DecoderTest1,GetBooleanvInvalidArgs1_1)937 TEST_P(GLES2DecoderTest1, GetBooleanvInvalidArgs1_1) {
938 EXPECT_CALL(*gl_, GetIntegerv(_, _)).Times(0);
939 SpecializedSetup<cmds::GetBooleanv, 0>(false);
940 cmds::GetBooleanv::Result* result =
941 static_cast<cmds::GetBooleanv::Result*>(shared_memory_address_);
942 result->size = 0;
943 cmds::GetBooleanv cmd;
944 cmd.Init(GL_ACTIVE_TEXTURE, shared_memory_id_, kInvalidSharedMemoryOffset);
945 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
946 EXPECT_EQ(0u, result->size);
947 }
948
TEST_P(GLES3DecoderTest1,GetBufferParameteri64vValidArgs)949 TEST_P(GLES3DecoderTest1, GetBufferParameteri64vValidArgs) {
950 SpecializedSetup<cmds::GetBufferParameteri64v, 0>(true);
951 typedef cmds::GetBufferParameteri64v::Result Result;
952 Result* result = static_cast<Result*>(shared_memory_address_);
953 result->size = 0;
954 cmds::GetBufferParameteri64v cmd;
955 cmd.Init(GL_ARRAY_BUFFER, GL_BUFFER_SIZE, shared_memory_id_,
956 shared_memory_offset_);
957 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
958 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_BUFFER_SIZE),
959 result->GetNumResults());
960 EXPECT_EQ(GL_NO_ERROR, GetGLError());
961 }
962
TEST_P(GLES2DecoderTest1,GetBufferParameterivValidArgs)963 TEST_P(GLES2DecoderTest1, GetBufferParameterivValidArgs) {
964 SpecializedSetup<cmds::GetBufferParameteriv, 0>(true);
965 typedef cmds::GetBufferParameteriv::Result Result;
966 Result* result = static_cast<Result*>(shared_memory_address_);
967 result->size = 0;
968 cmds::GetBufferParameteriv cmd;
969 cmd.Init(GL_ARRAY_BUFFER, GL_BUFFER_SIZE, shared_memory_id_,
970 shared_memory_offset_);
971 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
972 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_BUFFER_SIZE),
973 result->GetNumResults());
974 EXPECT_EQ(GL_NO_ERROR, GetGLError());
975 }
976
TEST_P(GLES2DecoderTest1,GetBufferParameterivInvalidArgs0_0)977 TEST_P(GLES2DecoderTest1, GetBufferParameterivInvalidArgs0_0) {
978 EXPECT_CALL(*gl_, GetBufferParameteriv(_, _, _)).Times(0);
979 SpecializedSetup<cmds::GetBufferParameteriv, 0>(false);
980 cmds::GetBufferParameteriv::Result* result =
981 static_cast<cmds::GetBufferParameteriv::Result*>(shared_memory_address_);
982 result->size = 0;
983 cmds::GetBufferParameteriv cmd;
984 cmd.Init(GL_RENDERBUFFER, GL_BUFFER_SIZE, shared_memory_id_,
985 shared_memory_offset_);
986 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
987 EXPECT_EQ(0u, result->size);
988 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
989 }
990
TEST_P(GLES2DecoderTest1,GetBufferParameterivInvalidArgs1_0)991 TEST_P(GLES2DecoderTest1, GetBufferParameterivInvalidArgs1_0) {
992 EXPECT_CALL(*gl_, GetBufferParameteriv(_, _, _)).Times(0);
993 SpecializedSetup<cmds::GetBufferParameteriv, 0>(false);
994 cmds::GetBufferParameteriv::Result* result =
995 static_cast<cmds::GetBufferParameteriv::Result*>(shared_memory_address_);
996 result->size = 0;
997 cmds::GetBufferParameteriv cmd;
998 cmd.Init(GL_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, shared_memory_id_,
999 shared_memory_offset_);
1000 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1001 EXPECT_EQ(0u, result->size);
1002 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1003 }
1004
TEST_P(GLES2DecoderTest1,GetBufferParameterivInvalidArgs2_0)1005 TEST_P(GLES2DecoderTest1, GetBufferParameterivInvalidArgs2_0) {
1006 EXPECT_CALL(*gl_, GetBufferParameteriv(_, _, _)).Times(0);
1007 SpecializedSetup<cmds::GetBufferParameteriv, 0>(false);
1008 cmds::GetBufferParameteriv::Result* result =
1009 static_cast<cmds::GetBufferParameteriv::Result*>(shared_memory_address_);
1010 result->size = 0;
1011 cmds::GetBufferParameteriv cmd;
1012 cmd.Init(GL_ARRAY_BUFFER, GL_BUFFER_SIZE, kInvalidSharedMemoryId, 0);
1013 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1014 EXPECT_EQ(0u, result->size);
1015 }
1016
TEST_P(GLES2DecoderTest1,GetBufferParameterivInvalidArgs2_1)1017 TEST_P(GLES2DecoderTest1, GetBufferParameterivInvalidArgs2_1) {
1018 EXPECT_CALL(*gl_, GetBufferParameteriv(_, _, _)).Times(0);
1019 SpecializedSetup<cmds::GetBufferParameteriv, 0>(false);
1020 cmds::GetBufferParameteriv::Result* result =
1021 static_cast<cmds::GetBufferParameteriv::Result*>(shared_memory_address_);
1022 result->size = 0;
1023 cmds::GetBufferParameteriv cmd;
1024 cmd.Init(GL_ARRAY_BUFFER, GL_BUFFER_SIZE, shared_memory_id_,
1025 kInvalidSharedMemoryOffset);
1026 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1027 EXPECT_EQ(0u, result->size);
1028 }
1029
TEST_P(GLES2DecoderTest1,GetErrorValidArgs)1030 TEST_P(GLES2DecoderTest1, GetErrorValidArgs) {
1031 EXPECT_CALL(*gl_, GetError());
1032 SpecializedSetup<cmds::GetError, 0>(true);
1033 cmds::GetError cmd;
1034 cmd.Init(shared_memory_id_, shared_memory_offset_);
1035 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1036 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1037 }
1038
TEST_P(GLES2DecoderTest1,GetErrorInvalidArgsBadSharedMemoryId)1039 TEST_P(GLES2DecoderTest1, GetErrorInvalidArgsBadSharedMemoryId) {
1040 EXPECT_CALL(*gl_, GetError()).Times(0);
1041 SpecializedSetup<cmds::GetError, 0>(false);
1042 cmds::GetError cmd;
1043 cmd.Init(kInvalidSharedMemoryId, shared_memory_offset_);
1044 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1045 cmd.Init(shared_memory_id_, kInvalidSharedMemoryOffset);
1046 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1047 }
1048
TEST_P(GLES2DecoderTest1,GetFloatvValidArgs)1049 TEST_P(GLES2DecoderTest1, GetFloatvValidArgs) {
1050 EXPECT_CALL(*gl_, GetError()).WillRepeatedly(Return(GL_NO_ERROR));
1051 SpecializedSetup<cmds::GetFloatv, 0>(true);
1052 typedef cmds::GetFloatv::Result Result;
1053 Result* result = static_cast<Result*>(shared_memory_address_);
1054 EXPECT_CALL(*gl_, GetIntegerv(GL_ACTIVE_TEXTURE, _));
1055 result->size = 0;
1056 cmds::GetFloatv cmd;
1057 cmd.Init(GL_ACTIVE_TEXTURE, shared_memory_id_, shared_memory_offset_);
1058 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1059 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_ACTIVE_TEXTURE),
1060 result->GetNumResults());
1061 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1062 }
1063
TEST_P(GLES2DecoderTest1,GetFloatvInvalidArgs0_0)1064 TEST_P(GLES2DecoderTest1, GetFloatvInvalidArgs0_0) {
1065 EXPECT_CALL(*gl_, GetIntegerv(_, _)).Times(0);
1066 SpecializedSetup<cmds::GetFloatv, 0>(false);
1067 cmds::GetFloatv::Result* result =
1068 static_cast<cmds::GetFloatv::Result*>(shared_memory_address_);
1069 result->size = 0;
1070 cmds::GetFloatv cmd;
1071 cmd.Init(GL_FOG_HINT, shared_memory_id_, shared_memory_offset_);
1072 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1073 EXPECT_EQ(0u, result->size);
1074 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1075 }
1076
TEST_P(GLES2DecoderTest1,GetFloatvInvalidArgs1_0)1077 TEST_P(GLES2DecoderTest1, GetFloatvInvalidArgs1_0) {
1078 EXPECT_CALL(*gl_, GetIntegerv(_, _)).Times(0);
1079 SpecializedSetup<cmds::GetFloatv, 0>(false);
1080 cmds::GetFloatv::Result* result =
1081 static_cast<cmds::GetFloatv::Result*>(shared_memory_address_);
1082 result->size = 0;
1083 cmds::GetFloatv cmd;
1084 cmd.Init(GL_ACTIVE_TEXTURE, kInvalidSharedMemoryId, 0);
1085 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1086 EXPECT_EQ(0u, result->size);
1087 }
1088
TEST_P(GLES2DecoderTest1,GetFloatvInvalidArgs1_1)1089 TEST_P(GLES2DecoderTest1, GetFloatvInvalidArgs1_1) {
1090 EXPECT_CALL(*gl_, GetIntegerv(_, _)).Times(0);
1091 SpecializedSetup<cmds::GetFloatv, 0>(false);
1092 cmds::GetFloatv::Result* result =
1093 static_cast<cmds::GetFloatv::Result*>(shared_memory_address_);
1094 result->size = 0;
1095 cmds::GetFloatv cmd;
1096 cmd.Init(GL_ACTIVE_TEXTURE, shared_memory_id_, kInvalidSharedMemoryOffset);
1097 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1098 EXPECT_EQ(0u, result->size);
1099 }
1100
TEST_P(GLES2DecoderTest1,GetFramebufferAttachmentParameterivValidArgs)1101 TEST_P(GLES2DecoderTest1, GetFramebufferAttachmentParameterivValidArgs) {
1102 EXPECT_CALL(*gl_, GetError()).WillRepeatedly(Return(GL_NO_ERROR));
1103 SpecializedSetup<cmds::GetFramebufferAttachmentParameteriv, 0>(true);
1104 typedef cmds::GetFramebufferAttachmentParameteriv::Result Result;
1105 Result* result = static_cast<Result*>(shared_memory_address_);
1106 EXPECT_CALL(*gl_,
1107 GetFramebufferAttachmentParameterivEXT(
1108 GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
1109 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, result->GetData()));
1110 result->size = 0;
1111 cmds::GetFramebufferAttachmentParameteriv cmd;
1112 cmd.Init(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
1113 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, shared_memory_id_,
1114 shared_memory_offset_);
1115 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1116 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(
1117 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE),
1118 result->GetNumResults());
1119 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1120 }
1121
TEST_P(GLES2DecoderTest1,GetFramebufferAttachmentParameterivInvalidArgs0_0)1122 TEST_P(GLES2DecoderTest1, GetFramebufferAttachmentParameterivInvalidArgs0_0) {
1123 EXPECT_CALL(*gl_, GetFramebufferAttachmentParameterivEXT(_, _, _, _))
1124 .Times(0);
1125 SpecializedSetup<cmds::GetFramebufferAttachmentParameteriv, 0>(false);
1126 cmds::GetFramebufferAttachmentParameteriv::Result* result =
1127 static_cast<cmds::GetFramebufferAttachmentParameteriv::Result*>(
1128 shared_memory_address_);
1129 result->size = 0;
1130 cmds::GetFramebufferAttachmentParameteriv cmd;
1131 cmd.Init(GL_RENDERBUFFER, GL_COLOR_ATTACHMENT0,
1132 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, shared_memory_id_,
1133 shared_memory_offset_);
1134 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1135 EXPECT_EQ(0u, result->size);
1136 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1137 }
1138
TEST_P(GLES2DecoderTest1,GetFramebufferAttachmentParameterivInvalidArgs3_0)1139 TEST_P(GLES2DecoderTest1, GetFramebufferAttachmentParameterivInvalidArgs3_0) {
1140 EXPECT_CALL(*gl_, GetFramebufferAttachmentParameterivEXT(_, _, _, _))
1141 .Times(0);
1142 SpecializedSetup<cmds::GetFramebufferAttachmentParameteriv, 0>(false);
1143 cmds::GetFramebufferAttachmentParameteriv::Result* result =
1144 static_cast<cmds::GetFramebufferAttachmentParameteriv::Result*>(
1145 shared_memory_address_);
1146 result->size = 0;
1147 cmds::GetFramebufferAttachmentParameteriv cmd;
1148 cmd.Init(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
1149 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, kInvalidSharedMemoryId, 0);
1150 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1151 EXPECT_EQ(0u, result->size);
1152 }
1153
TEST_P(GLES2DecoderTest1,GetFramebufferAttachmentParameterivInvalidArgs3_1)1154 TEST_P(GLES2DecoderTest1, GetFramebufferAttachmentParameterivInvalidArgs3_1) {
1155 EXPECT_CALL(*gl_, GetFramebufferAttachmentParameterivEXT(_, _, _, _))
1156 .Times(0);
1157 SpecializedSetup<cmds::GetFramebufferAttachmentParameteriv, 0>(false);
1158 cmds::GetFramebufferAttachmentParameteriv::Result* result =
1159 static_cast<cmds::GetFramebufferAttachmentParameteriv::Result*>(
1160 shared_memory_address_);
1161 result->size = 0;
1162 cmds::GetFramebufferAttachmentParameteriv cmd;
1163 cmd.Init(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
1164 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, shared_memory_id_,
1165 kInvalidSharedMemoryOffset);
1166 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1167 EXPECT_EQ(0u, result->size);
1168 }
1169
TEST_P(GLES3DecoderTest1,GetInteger64vValidArgs)1170 TEST_P(GLES3DecoderTest1, GetInteger64vValidArgs) {
1171 EXPECT_CALL(*gl_, GetError()).WillRepeatedly(Return(GL_NO_ERROR));
1172 SpecializedSetup<cmds::GetInteger64v, 0>(true);
1173 typedef cmds::GetInteger64v::Result Result;
1174 Result* result = static_cast<Result*>(shared_memory_address_);
1175 EXPECT_CALL(*gl_, GetIntegerv(GL_ACTIVE_TEXTURE, _));
1176 result->size = 0;
1177 cmds::GetInteger64v cmd;
1178 cmd.Init(GL_ACTIVE_TEXTURE, shared_memory_id_, shared_memory_offset_);
1179 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1180 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_ACTIVE_TEXTURE),
1181 result->GetNumResults());
1182 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1183 }
1184
TEST_P(GLES2DecoderTest1,GetIntegervValidArgs)1185 TEST_P(GLES2DecoderTest1, GetIntegervValidArgs) {
1186 EXPECT_CALL(*gl_, GetError()).WillRepeatedly(Return(GL_NO_ERROR));
1187 SpecializedSetup<cmds::GetIntegerv, 0>(true);
1188 typedef cmds::GetIntegerv::Result Result;
1189 Result* result = static_cast<Result*>(shared_memory_address_);
1190 EXPECT_CALL(*gl_, GetIntegerv(GL_ACTIVE_TEXTURE, result->GetData()));
1191 result->size = 0;
1192 cmds::GetIntegerv cmd;
1193 cmd.Init(GL_ACTIVE_TEXTURE, shared_memory_id_, shared_memory_offset_);
1194 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1195 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_ACTIVE_TEXTURE),
1196 result->GetNumResults());
1197 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1198 }
1199
TEST_P(GLES2DecoderTest1,GetIntegervInvalidArgs0_0)1200 TEST_P(GLES2DecoderTest1, GetIntegervInvalidArgs0_0) {
1201 EXPECT_CALL(*gl_, GetIntegerv(_, _)).Times(0);
1202 SpecializedSetup<cmds::GetIntegerv, 0>(false);
1203 cmds::GetIntegerv::Result* result =
1204 static_cast<cmds::GetIntegerv::Result*>(shared_memory_address_);
1205 result->size = 0;
1206 cmds::GetIntegerv cmd;
1207 cmd.Init(GL_FOG_HINT, shared_memory_id_, shared_memory_offset_);
1208 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1209 EXPECT_EQ(0u, result->size);
1210 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1211 }
1212
TEST_P(GLES2DecoderTest1,GetIntegervInvalidArgs1_0)1213 TEST_P(GLES2DecoderTest1, GetIntegervInvalidArgs1_0) {
1214 EXPECT_CALL(*gl_, GetIntegerv(_, _)).Times(0);
1215 SpecializedSetup<cmds::GetIntegerv, 0>(false);
1216 cmds::GetIntegerv::Result* result =
1217 static_cast<cmds::GetIntegerv::Result*>(shared_memory_address_);
1218 result->size = 0;
1219 cmds::GetIntegerv cmd;
1220 cmd.Init(GL_ACTIVE_TEXTURE, kInvalidSharedMemoryId, 0);
1221 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1222 EXPECT_EQ(0u, result->size);
1223 }
1224
TEST_P(GLES2DecoderTest1,GetIntegervInvalidArgs1_1)1225 TEST_P(GLES2DecoderTest1, GetIntegervInvalidArgs1_1) {
1226 EXPECT_CALL(*gl_, GetIntegerv(_, _)).Times(0);
1227 SpecializedSetup<cmds::GetIntegerv, 0>(false);
1228 cmds::GetIntegerv::Result* result =
1229 static_cast<cmds::GetIntegerv::Result*>(shared_memory_address_);
1230 result->size = 0;
1231 cmds::GetIntegerv cmd;
1232 cmd.Init(GL_ACTIVE_TEXTURE, shared_memory_id_, kInvalidSharedMemoryOffset);
1233 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
1234 EXPECT_EQ(0u, result->size);
1235 }
1236 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_UNITTEST_1_AUTOGEN_H_
1237