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. 4 5// This file is auto-generated from 6// gpu/command_buffer/build_gles2_cmd_buffer.py 7// DO NOT EDIT! 8 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_ 12 13// TODO(gman): ActiveTexture 14 15TEST_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()); 22} 23// TODO(gman): BindAttribLocation 24 25// TODO(gman): BindAttribLocationImmediate 26 27// TODO(gman): BindAttribLocationBucket 28 29TEST_F(GLES2DecoderTest1, BindBufferValidArgs) { 30 EXPECT_CALL(*gl_, BindBuffer(GL_ARRAY_BUFFER, kServiceBufferId)); 31 SpecializedSetup<cmds::BindBuffer, 0>(true); 32 cmds::BindBuffer cmd; 33 cmd.Init(GL_ARRAY_BUFFER, client_buffer_id_); 34 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 35 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 36} 37 38TEST_F(GLES2DecoderTest1, BindBufferValidArgsNewId) { 39 EXPECT_CALL(*gl_, BindBuffer(GL_ARRAY_BUFFER, kNewServiceId)); 40 EXPECT_CALL(*gl_, GenBuffersARB(1, _)) 41 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); 42 SpecializedSetup<cmds::BindBuffer, 0>(true); 43 cmds::BindBuffer cmd; 44 cmd.Init(GL_ARRAY_BUFFER, kNewClientId); 45 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 46 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 47 EXPECT_TRUE(GetBuffer(kNewClientId) != NULL); 48} 49 50TEST_F(GLES2DecoderTest1, BindBufferInvalidArgs0_0) { 51 EXPECT_CALL(*gl_, BindBuffer(_, _)).Times(0); 52 SpecializedSetup<cmds::BindBuffer, 0>(false); 53 cmds::BindBuffer cmd; 54 cmd.Init(GL_RENDERBUFFER, client_buffer_id_); 55 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 56 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 57} 58 59TEST_F(GLES2DecoderTest1, BindFramebufferValidArgs) { 60 EXPECT_CALL(*gl_, BindFramebufferEXT(GL_FRAMEBUFFER, kServiceFramebufferId)); 61 SpecializedSetup<cmds::BindFramebuffer, 0>(true); 62 cmds::BindFramebuffer cmd; 63 cmd.Init(GL_FRAMEBUFFER, client_framebuffer_id_); 64 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 65 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 66} 67 68TEST_F(GLES2DecoderTest1, BindFramebufferValidArgsNewId) { 69 EXPECT_CALL(*gl_, BindFramebufferEXT(GL_FRAMEBUFFER, kNewServiceId)); 70 EXPECT_CALL(*gl_, GenFramebuffersEXT(1, _)) 71 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); 72 SpecializedSetup<cmds::BindFramebuffer, 0>(true); 73 cmds::BindFramebuffer cmd; 74 cmd.Init(GL_FRAMEBUFFER, kNewClientId); 75 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 76 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 77 EXPECT_TRUE(GetFramebuffer(kNewClientId) != NULL); 78} 79 80TEST_F(GLES2DecoderTest1, BindFramebufferInvalidArgs0_0) { 81 EXPECT_CALL(*gl_, BindFramebufferEXT(_, _)).Times(0); 82 SpecializedSetup<cmds::BindFramebuffer, 0>(false); 83 cmds::BindFramebuffer cmd; 84 cmd.Init(GL_DRAW_FRAMEBUFFER, client_framebuffer_id_); 85 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 86 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 87} 88 89TEST_F(GLES2DecoderTest1, BindFramebufferInvalidArgs0_1) { 90 EXPECT_CALL(*gl_, BindFramebufferEXT(_, _)).Times(0); 91 SpecializedSetup<cmds::BindFramebuffer, 0>(false); 92 cmds::BindFramebuffer cmd; 93 cmd.Init(GL_READ_FRAMEBUFFER, client_framebuffer_id_); 94 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 95 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 96} 97 98TEST_F(GLES2DecoderTest1, BindRenderbufferValidArgs) { 99 EXPECT_CALL( 100 *gl_, BindRenderbufferEXT(GL_RENDERBUFFER, kServiceRenderbufferId)); 101 SpecializedSetup<cmds::BindRenderbuffer, 0>(true); 102 cmds::BindRenderbuffer cmd; 103 cmd.Init(GL_RENDERBUFFER, client_renderbuffer_id_); 104 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 105 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 106} 107 108TEST_F(GLES2DecoderTest1, BindRenderbufferValidArgsNewId) { 109 EXPECT_CALL(*gl_, BindRenderbufferEXT(GL_RENDERBUFFER, kNewServiceId)); 110 EXPECT_CALL(*gl_, GenRenderbuffersEXT(1, _)) 111 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); 112 SpecializedSetup<cmds::BindRenderbuffer, 0>(true); 113 cmds::BindRenderbuffer cmd; 114 cmd.Init(GL_RENDERBUFFER, kNewClientId); 115 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 116 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 117 EXPECT_TRUE(GetRenderbuffer(kNewClientId) != NULL); 118} 119 120TEST_F(GLES2DecoderTest1, BindRenderbufferInvalidArgs0_0) { 121 EXPECT_CALL(*gl_, BindRenderbufferEXT(_, _)).Times(0); 122 SpecializedSetup<cmds::BindRenderbuffer, 0>(false); 123 cmds::BindRenderbuffer cmd; 124 cmd.Init(GL_FRAMEBUFFER, client_renderbuffer_id_); 125 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 126 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 127} 128 129TEST_F(GLES2DecoderTest1, BindTextureValidArgs) { 130 EXPECT_CALL(*gl_, BindTexture(GL_TEXTURE_2D, kServiceTextureId)); 131 SpecializedSetup<cmds::BindTexture, 0>(true); 132 cmds::BindTexture cmd; 133 cmd.Init(GL_TEXTURE_2D, client_texture_id_); 134 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 135 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 136} 137 138TEST_F(GLES2DecoderTest1, BindTextureValidArgsNewId) { 139 EXPECT_CALL(*gl_, BindTexture(GL_TEXTURE_2D, kNewServiceId)); 140 EXPECT_CALL(*gl_, GenTextures(1, _)) 141 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); 142 SpecializedSetup<cmds::BindTexture, 0>(true); 143 cmds::BindTexture cmd; 144 cmd.Init(GL_TEXTURE_2D, kNewClientId); 145 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 146 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 147 EXPECT_TRUE(GetTexture(kNewClientId) != NULL); 148} 149 150TEST_F(GLES2DecoderTest1, BindTextureInvalidArgs0_0) { 151 EXPECT_CALL(*gl_, BindTexture(_, _)).Times(0); 152 SpecializedSetup<cmds::BindTexture, 0>(false); 153 cmds::BindTexture cmd; 154 cmd.Init(GL_TEXTURE_1D, client_texture_id_); 155 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 156 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 157} 158 159TEST_F(GLES2DecoderTest1, BindTextureInvalidArgs0_1) { 160 EXPECT_CALL(*gl_, BindTexture(_, _)).Times(0); 161 SpecializedSetup<cmds::BindTexture, 0>(false); 162 cmds::BindTexture cmd; 163 cmd.Init(GL_TEXTURE_3D, client_texture_id_); 164 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 165 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 166} 167 168TEST_F(GLES2DecoderTest1, BlendColorValidArgs) { 169 EXPECT_CALL(*gl_, BlendColor(1, 2, 3, 4)); 170 SpecializedSetup<cmds::BlendColor, 0>(true); 171 cmds::BlendColor cmd; 172 cmd.Init(1, 2, 3, 4); 173 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 174 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 175} 176 177TEST_F(GLES2DecoderTest1, BlendEquationValidArgs) { 178 EXPECT_CALL(*gl_, BlendEquation(GL_FUNC_SUBTRACT)); 179 SpecializedSetup<cmds::BlendEquation, 0>(true); 180 cmds::BlendEquation cmd; 181 cmd.Init(GL_FUNC_SUBTRACT); 182 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 183 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 184} 185 186TEST_F(GLES2DecoderTest1, BlendEquationInvalidArgs0_0) { 187 EXPECT_CALL(*gl_, BlendEquation(_)).Times(0); 188 SpecializedSetup<cmds::BlendEquation, 0>(false); 189 cmds::BlendEquation cmd; 190 cmd.Init(GL_MIN); 191 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 192 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 193} 194 195TEST_F(GLES2DecoderTest1, BlendEquationInvalidArgs0_1) { 196 EXPECT_CALL(*gl_, BlendEquation(_)).Times(0); 197 SpecializedSetup<cmds::BlendEquation, 0>(false); 198 cmds::BlendEquation cmd; 199 cmd.Init(GL_MAX); 200 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 201 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 202} 203 204TEST_F(GLES2DecoderTest1, BlendEquationSeparateValidArgs) { 205 EXPECT_CALL(*gl_, BlendEquationSeparate(GL_FUNC_SUBTRACT, GL_FUNC_ADD)); 206 SpecializedSetup<cmds::BlendEquationSeparate, 0>(true); 207 cmds::BlendEquationSeparate cmd; 208 cmd.Init(GL_FUNC_SUBTRACT, GL_FUNC_ADD); 209 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 210 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 211} 212 213TEST_F(GLES2DecoderTest1, BlendEquationSeparateInvalidArgs0_0) { 214 EXPECT_CALL(*gl_, BlendEquationSeparate(_, _)).Times(0); 215 SpecializedSetup<cmds::BlendEquationSeparate, 0>(false); 216 cmds::BlendEquationSeparate cmd; 217 cmd.Init(GL_MIN, GL_FUNC_ADD); 218 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 219 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 220} 221 222TEST_F(GLES2DecoderTest1, BlendEquationSeparateInvalidArgs0_1) { 223 EXPECT_CALL(*gl_, BlendEquationSeparate(_, _)).Times(0); 224 SpecializedSetup<cmds::BlendEquationSeparate, 0>(false); 225 cmds::BlendEquationSeparate cmd; 226 cmd.Init(GL_MAX, GL_FUNC_ADD); 227 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 228 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 229} 230 231TEST_F(GLES2DecoderTest1, BlendEquationSeparateInvalidArgs1_0) { 232 EXPECT_CALL(*gl_, BlendEquationSeparate(_, _)).Times(0); 233 SpecializedSetup<cmds::BlendEquationSeparate, 0>(false); 234 cmds::BlendEquationSeparate cmd; 235 cmd.Init(GL_FUNC_SUBTRACT, GL_MIN); 236 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 237 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 238} 239 240TEST_F(GLES2DecoderTest1, BlendEquationSeparateInvalidArgs1_1) { 241 EXPECT_CALL(*gl_, BlendEquationSeparate(_, _)).Times(0); 242 SpecializedSetup<cmds::BlendEquationSeparate, 0>(false); 243 cmds::BlendEquationSeparate cmd; 244 cmd.Init(GL_FUNC_SUBTRACT, GL_MAX); 245 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 246 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 247} 248 249TEST_F(GLES2DecoderTest1, BlendFuncValidArgs) { 250 EXPECT_CALL(*gl_, BlendFunc(GL_ZERO, GL_ZERO)); 251 SpecializedSetup<cmds::BlendFunc, 0>(true); 252 cmds::BlendFunc cmd; 253 cmd.Init(GL_ZERO, GL_ZERO); 254 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 255 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 256} 257 258TEST_F(GLES2DecoderTest1, BlendFuncSeparateValidArgs) { 259 EXPECT_CALL(*gl_, BlendFuncSeparate(GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO)); 260 SpecializedSetup<cmds::BlendFuncSeparate, 0>(true); 261 cmds::BlendFuncSeparate cmd; 262 cmd.Init(GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO); 263 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 264 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 265} 266// TODO(gman): BufferData 267 268// TODO(gman): BufferDataImmediate 269 270// TODO(gman): BufferSubData 271 272// TODO(gman): BufferSubDataImmediate 273 274 275TEST_F(GLES2DecoderTest1, CheckFramebufferStatusValidArgs) { 276 EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(GL_FRAMEBUFFER)); 277 SpecializedSetup<cmds::CheckFramebufferStatus, 0>(true); 278 cmds::CheckFramebufferStatus cmd; 279 cmd.Init(GL_FRAMEBUFFER, shared_memory_id_, shared_memory_offset_); 280 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 281 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 282} 283 284TEST_F(GLES2DecoderTest1, CheckFramebufferStatusInvalidArgs0_0) { 285 EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(_)).Times(0); 286 SpecializedSetup<cmds::CheckFramebufferStatus, 0>(false); 287 cmds::CheckFramebufferStatus cmd; 288 cmd.Init(GL_DRAW_FRAMEBUFFER, shared_memory_id_, shared_memory_offset_); 289 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 290 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 291} 292 293TEST_F(GLES2DecoderTest1, CheckFramebufferStatusInvalidArgs0_1) { 294 EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(_)).Times(0); 295 SpecializedSetup<cmds::CheckFramebufferStatus, 0>(false); 296 cmds::CheckFramebufferStatus cmd; 297 cmd.Init(GL_READ_FRAMEBUFFER, shared_memory_id_, shared_memory_offset_); 298 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 299 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 300} 301 302TEST_F(GLES2DecoderTest1, CheckFramebufferStatusInvalidArgsBadSharedMemoryId) { 303 EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(GL_FRAMEBUFFER)).Times(0); 304 SpecializedSetup<cmds::CheckFramebufferStatus, 0>(false); 305 cmds::CheckFramebufferStatus cmd; 306 cmd.Init(GL_FRAMEBUFFER, kInvalidSharedMemoryId, shared_memory_offset_); 307 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 308 cmd.Init(GL_FRAMEBUFFER, shared_memory_id_, kInvalidSharedMemoryOffset); 309 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 310} 311 312TEST_F(GLES2DecoderTest1, ClearValidArgs) { 313 EXPECT_CALL(*gl_, Clear(1)); 314 SpecializedSetup<cmds::Clear, 0>(true); 315 cmds::Clear cmd; 316 cmd.Init(1); 317 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 318 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 319} 320 321TEST_F(GLES2DecoderTest1, ClearColorValidArgs) { 322 EXPECT_CALL(*gl_, ClearColor(1, 2, 3, 4)); 323 SpecializedSetup<cmds::ClearColor, 0>(true); 324 cmds::ClearColor cmd; 325 cmd.Init(1, 2, 3, 4); 326 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 327 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 328} 329 330TEST_F(GLES2DecoderTest1, ClearDepthfValidArgs) { 331 EXPECT_CALL(*gl_, ClearDepth(0.5f)); 332 SpecializedSetup<cmds::ClearDepthf, 0>(true); 333 cmds::ClearDepthf cmd; 334 cmd.Init(0.5f); 335 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 336 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 337} 338 339TEST_F(GLES2DecoderTest1, ClearStencilValidArgs) { 340 EXPECT_CALL(*gl_, ClearStencil(1)); 341 SpecializedSetup<cmds::ClearStencil, 0>(true); 342 cmds::ClearStencil cmd; 343 cmd.Init(1); 344 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 345 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 346} 347 348TEST_F(GLES2DecoderTest1, ColorMaskValidArgs) { 349 SpecializedSetup<cmds::ColorMask, 0>(true); 350 cmds::ColorMask cmd; 351 cmd.Init(true, true, true, true); 352 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 353 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 354} 355// TODO(gman): CompileShader 356// TODO(gman): CompressedTexImage2D 357 358// TODO(gman): CompressedTexImage2DImmediate 359 360// TODO(gman): CompressedTexImage2DBucket 361// TODO(gman): CompressedTexSubImage2D 362 363// TODO(gman): CompressedTexSubImage2DImmediate 364 365// TODO(gman): CompressedTexSubImage2DBucket 366// TODO(gman): CopyTexImage2D 367 368TEST_F(GLES2DecoderTest1, CopyTexSubImage2DValidArgs) { 369 EXPECT_CALL(*gl_, CopyTexSubImage2D(GL_TEXTURE_2D, 2, 3, 4, 5, 6, 7, 8)); 370 SpecializedSetup<cmds::CopyTexSubImage2D, 0>(true); 371 cmds::CopyTexSubImage2D cmd; 372 cmd.Init(GL_TEXTURE_2D, 2, 3, 4, 5, 6, 7, 8); 373 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 374 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 375} 376 377TEST_F(GLES2DecoderTest1, CopyTexSubImage2DInvalidArgs0_0) { 378 EXPECT_CALL(*gl_, CopyTexSubImage2D(_, _, _, _, _, _, _, _)).Times(0); 379 SpecializedSetup<cmds::CopyTexSubImage2D, 0>(false); 380 cmds::CopyTexSubImage2D cmd; 381 cmd.Init(GL_PROXY_TEXTURE_CUBE_MAP, 2, 3, 4, 5, 6, 7, 8); 382 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 383 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 384} 385 386TEST_F(GLES2DecoderTest1, CopyTexSubImage2DInvalidArgs6_0) { 387 EXPECT_CALL(*gl_, CopyTexSubImage2D(_, _, _, _, _, _, _, _)).Times(0); 388 SpecializedSetup<cmds::CopyTexSubImage2D, 0>(false); 389 cmds::CopyTexSubImage2D cmd; 390 cmd.Init(GL_TEXTURE_2D, 2, 3, 4, 5, 6, -1, 8); 391 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 392 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 393} 394 395TEST_F(GLES2DecoderTest1, CopyTexSubImage2DInvalidArgs7_0) { 396 EXPECT_CALL(*gl_, CopyTexSubImage2D(_, _, _, _, _, _, _, _)).Times(0); 397 SpecializedSetup<cmds::CopyTexSubImage2D, 0>(false); 398 cmds::CopyTexSubImage2D cmd; 399 cmd.Init(GL_TEXTURE_2D, 2, 3, 4, 5, 6, 7, -1); 400 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 401 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 402} 403 404TEST_F(GLES2DecoderTest1, CreateProgramValidArgs) { 405 EXPECT_CALL(*gl_, CreateProgram()) 406 .WillOnce(Return(kNewServiceId)); 407 SpecializedSetup<cmds::CreateProgram, 0>(true); 408 cmds::CreateProgram cmd; 409 cmd.Init(kNewClientId); 410 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 411 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 412 EXPECT_TRUE(GetProgram(kNewClientId) != NULL); 413} 414 415TEST_F(GLES2DecoderTest1, CreateShaderValidArgs) { 416 EXPECT_CALL(*gl_, CreateShader(GL_VERTEX_SHADER)) 417 .WillOnce(Return(kNewServiceId)); 418 SpecializedSetup<cmds::CreateShader, 0>(true); 419 cmds::CreateShader cmd; 420 cmd.Init(GL_VERTEX_SHADER, kNewClientId); 421 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 422 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 423 EXPECT_TRUE(GetShader(kNewClientId) != NULL); 424} 425 426TEST_F(GLES2DecoderTest1, CreateShaderInvalidArgs0_0) { 427 EXPECT_CALL(*gl_, CreateShader(_)).Times(0); 428 SpecializedSetup<cmds::CreateShader, 0>(false); 429 cmds::CreateShader cmd; 430 cmd.Init(GL_GEOMETRY_SHADER, kNewClientId); 431 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 432 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 433} 434 435TEST_F(GLES2DecoderTest1, CullFaceValidArgs) { 436 EXPECT_CALL(*gl_, CullFace(GL_FRONT)); 437 SpecializedSetup<cmds::CullFace, 0>(true); 438 cmds::CullFace cmd; 439 cmd.Init(GL_FRONT); 440 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 441 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 442} 443 444TEST_F(GLES2DecoderTest1, DeleteBuffersValidArgs) { 445 EXPECT_CALL( 446 *gl_, 447 DeleteBuffersARB(1, Pointee(kServiceBufferId))) 448 .Times(1); 449 GetSharedMemoryAs<GLuint*>()[0] = client_buffer_id_; 450 SpecializedSetup<cmds::DeleteBuffers, 0>(true); 451 cmds::DeleteBuffers cmd; 452 cmd.Init(1, shared_memory_id_, shared_memory_offset_); 453 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 454 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 455 EXPECT_TRUE( 456 GetBuffer(client_buffer_id_) == NULL); 457} 458 459TEST_F(GLES2DecoderTest1, DeleteBuffersInvalidArgs) { 460 GetSharedMemoryAs<GLuint*>()[0] = kInvalidClientId; 461 SpecializedSetup<cmds::DeleteBuffers, 0>(false); 462 cmds::DeleteBuffers cmd; 463 cmd.Init(1, shared_memory_id_, shared_memory_offset_); 464 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 465} 466 467TEST_F(GLES2DecoderTest1, DeleteBuffersImmediateValidArgs) { 468 EXPECT_CALL( 469 *gl_, 470 DeleteBuffersARB(1, Pointee(kServiceBufferId))) 471 .Times(1); 472 cmds::DeleteBuffersImmediate& cmd = 473 *GetImmediateAs<cmds::DeleteBuffersImmediate>(); 474 SpecializedSetup<cmds::DeleteBuffersImmediate, 0>(true); 475 cmd.Init(1, &client_buffer_id_); 476 EXPECT_EQ(error::kNoError, 477 ExecuteImmediateCmd(cmd, sizeof(client_buffer_id_))); 478 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 479 EXPECT_TRUE( 480 GetBuffer(client_buffer_id_) == NULL); 481} 482 483TEST_F(GLES2DecoderTest1, DeleteBuffersImmediateInvalidArgs) { 484 cmds::DeleteBuffersImmediate& cmd = 485 *GetImmediateAs<cmds::DeleteBuffersImmediate>(); 486 SpecializedSetup<cmds::DeleteBuffersImmediate, 0>(false); 487 GLuint temp = kInvalidClientId; 488 cmd.Init(1, &temp); 489 EXPECT_EQ(error::kNoError, 490 ExecuteImmediateCmd(cmd, sizeof(temp))); 491} 492 493TEST_F(GLES2DecoderTest1, DeleteFramebuffersValidArgs) { 494 EXPECT_CALL( 495 *gl_, 496 DeleteFramebuffersEXT(1, Pointee(kServiceFramebufferId))) 497 .Times(1); 498 GetSharedMemoryAs<GLuint*>()[0] = client_framebuffer_id_; 499 SpecializedSetup<cmds::DeleteFramebuffers, 0>(true); 500 cmds::DeleteFramebuffers cmd; 501 cmd.Init(1, shared_memory_id_, shared_memory_offset_); 502 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 503 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 504 EXPECT_TRUE( 505 GetFramebuffer(client_framebuffer_id_) == NULL); 506} 507 508TEST_F(GLES2DecoderTest1, DeleteFramebuffersInvalidArgs) { 509 GetSharedMemoryAs<GLuint*>()[0] = kInvalidClientId; 510 SpecializedSetup<cmds::DeleteFramebuffers, 0>(false); 511 cmds::DeleteFramebuffers cmd; 512 cmd.Init(1, shared_memory_id_, shared_memory_offset_); 513 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 514} 515 516TEST_F(GLES2DecoderTest1, DeleteFramebuffersImmediateValidArgs) { 517 EXPECT_CALL( 518 *gl_, 519 DeleteFramebuffersEXT(1, Pointee(kServiceFramebufferId))) 520 .Times(1); 521 cmds::DeleteFramebuffersImmediate& cmd = 522 *GetImmediateAs<cmds::DeleteFramebuffersImmediate>(); 523 SpecializedSetup<cmds::DeleteFramebuffersImmediate, 0>(true); 524 cmd.Init(1, &client_framebuffer_id_); 525 EXPECT_EQ(error::kNoError, 526 ExecuteImmediateCmd(cmd, sizeof(client_framebuffer_id_))); 527 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 528 EXPECT_TRUE( 529 GetFramebuffer(client_framebuffer_id_) == NULL); 530} 531 532TEST_F(GLES2DecoderTest1, DeleteFramebuffersImmediateInvalidArgs) { 533 cmds::DeleteFramebuffersImmediate& cmd = 534 *GetImmediateAs<cmds::DeleteFramebuffersImmediate>(); 535 SpecializedSetup<cmds::DeleteFramebuffersImmediate, 0>(false); 536 GLuint temp = kInvalidClientId; 537 cmd.Init(1, &temp); 538 EXPECT_EQ(error::kNoError, 539 ExecuteImmediateCmd(cmd, sizeof(temp))); 540} 541 542TEST_F(GLES2DecoderTest1, DeleteProgramValidArgs) { 543 EXPECT_CALL(*gl_, DeleteProgram(kServiceProgramId)); 544 SpecializedSetup<cmds::DeleteProgram, 0>(true); 545 cmds::DeleteProgram cmd; 546 cmd.Init(client_program_id_); 547 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 548 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 549} 550 551TEST_F(GLES2DecoderTest1, DeleteRenderbuffersValidArgs) { 552 EXPECT_CALL( 553 *gl_, 554 DeleteRenderbuffersEXT(1, Pointee(kServiceRenderbufferId))) 555 .Times(1); 556 GetSharedMemoryAs<GLuint*>()[0] = client_renderbuffer_id_; 557 SpecializedSetup<cmds::DeleteRenderbuffers, 0>(true); 558 cmds::DeleteRenderbuffers cmd; 559 cmd.Init(1, shared_memory_id_, shared_memory_offset_); 560 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 561 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 562 EXPECT_TRUE( 563 GetRenderbuffer(client_renderbuffer_id_) == NULL); 564} 565 566TEST_F(GLES2DecoderTest1, DeleteRenderbuffersInvalidArgs) { 567 GetSharedMemoryAs<GLuint*>()[0] = kInvalidClientId; 568 SpecializedSetup<cmds::DeleteRenderbuffers, 0>(false); 569 cmds::DeleteRenderbuffers cmd; 570 cmd.Init(1, shared_memory_id_, shared_memory_offset_); 571 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 572} 573 574TEST_F(GLES2DecoderTest1, DeleteRenderbuffersImmediateValidArgs) { 575 EXPECT_CALL( 576 *gl_, 577 DeleteRenderbuffersEXT(1, Pointee(kServiceRenderbufferId))) 578 .Times(1); 579 cmds::DeleteRenderbuffersImmediate& cmd = 580 *GetImmediateAs<cmds::DeleteRenderbuffersImmediate>(); 581 SpecializedSetup<cmds::DeleteRenderbuffersImmediate, 0>(true); 582 cmd.Init(1, &client_renderbuffer_id_); 583 EXPECT_EQ(error::kNoError, 584 ExecuteImmediateCmd(cmd, sizeof(client_renderbuffer_id_))); 585 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 586 EXPECT_TRUE( 587 GetRenderbuffer(client_renderbuffer_id_) == NULL); 588} 589 590TEST_F(GLES2DecoderTest1, DeleteRenderbuffersImmediateInvalidArgs) { 591 cmds::DeleteRenderbuffersImmediate& cmd = 592 *GetImmediateAs<cmds::DeleteRenderbuffersImmediate>(); 593 SpecializedSetup<cmds::DeleteRenderbuffersImmediate, 0>(false); 594 GLuint temp = kInvalidClientId; 595 cmd.Init(1, &temp); 596 EXPECT_EQ(error::kNoError, 597 ExecuteImmediateCmd(cmd, sizeof(temp))); 598} 599 600TEST_F(GLES2DecoderTest1, DeleteShaderValidArgs) { 601 EXPECT_CALL(*gl_, DeleteShader(kServiceShaderId)); 602 SpecializedSetup<cmds::DeleteShader, 0>(true); 603 cmds::DeleteShader cmd; 604 cmd.Init(client_shader_id_); 605 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 606 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 607} 608 609TEST_F(GLES2DecoderTest1, DeleteTexturesValidArgs) { 610 EXPECT_CALL( 611 *gl_, 612 DeleteTextures(1, Pointee(kServiceTextureId))) 613 .Times(1); 614 GetSharedMemoryAs<GLuint*>()[0] = client_texture_id_; 615 SpecializedSetup<cmds::DeleteTextures, 0>(true); 616 cmds::DeleteTextures cmd; 617 cmd.Init(1, shared_memory_id_, shared_memory_offset_); 618 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 619 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 620 EXPECT_TRUE( 621 GetTexture(client_texture_id_) == NULL); 622} 623 624TEST_F(GLES2DecoderTest1, DeleteTexturesInvalidArgs) { 625 GetSharedMemoryAs<GLuint*>()[0] = kInvalidClientId; 626 SpecializedSetup<cmds::DeleteTextures, 0>(false); 627 cmds::DeleteTextures cmd; 628 cmd.Init(1, shared_memory_id_, shared_memory_offset_); 629 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 630} 631 632TEST_F(GLES2DecoderTest1, DeleteTexturesImmediateValidArgs) { 633 EXPECT_CALL( 634 *gl_, 635 DeleteTextures(1, Pointee(kServiceTextureId))) 636 .Times(1); 637 cmds::DeleteTexturesImmediate& cmd = 638 *GetImmediateAs<cmds::DeleteTexturesImmediate>(); 639 SpecializedSetup<cmds::DeleteTexturesImmediate, 0>(true); 640 cmd.Init(1, &client_texture_id_); 641 EXPECT_EQ(error::kNoError, 642 ExecuteImmediateCmd(cmd, sizeof(client_texture_id_))); 643 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 644 EXPECT_TRUE( 645 GetTexture(client_texture_id_) == NULL); 646} 647 648TEST_F(GLES2DecoderTest1, DeleteTexturesImmediateInvalidArgs) { 649 cmds::DeleteTexturesImmediate& cmd = 650 *GetImmediateAs<cmds::DeleteTexturesImmediate>(); 651 SpecializedSetup<cmds::DeleteTexturesImmediate, 0>(false); 652 GLuint temp = kInvalidClientId; 653 cmd.Init(1, &temp); 654 EXPECT_EQ(error::kNoError, 655 ExecuteImmediateCmd(cmd, sizeof(temp))); 656} 657 658TEST_F(GLES2DecoderTest1, DepthFuncValidArgs) { 659 EXPECT_CALL(*gl_, DepthFunc(GL_NEVER)); 660 SpecializedSetup<cmds::DepthFunc, 0>(true); 661 cmds::DepthFunc cmd; 662 cmd.Init(GL_NEVER); 663 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 664 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 665} 666 667TEST_F(GLES2DecoderTest1, DepthMaskValidArgs) { 668 SpecializedSetup<cmds::DepthMask, 0>(true); 669 cmds::DepthMask cmd; 670 cmd.Init(true); 671 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 672 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 673} 674 675TEST_F(GLES2DecoderTest1, DepthRangefValidArgs) { 676 EXPECT_CALL(*gl_, DepthRange(1, 2)); 677 SpecializedSetup<cmds::DepthRangef, 0>(true); 678 cmds::DepthRangef cmd; 679 cmd.Init(1, 2); 680 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 681 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 682} 683 684TEST_F(GLES2DecoderTest1, DetachShaderValidArgs) { 685 EXPECT_CALL(*gl_, DetachShader(kServiceProgramId, kServiceShaderId)); 686 SpecializedSetup<cmds::DetachShader, 0>(true); 687 cmds::DetachShader cmd; 688 cmd.Init(client_program_id_, client_shader_id_); 689 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 690 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 691} 692 693TEST_F(GLES2DecoderTest1, DisableValidArgs) { 694 EXPECT_CALL(*gl_, Disable(GL_BLEND)); 695 SpecializedSetup<cmds::Disable, 0>(true); 696 cmds::Disable cmd; 697 cmd.Init(GL_BLEND); 698 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 699 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 700} 701 702TEST_F(GLES2DecoderTest1, DisableInvalidArgs0_0) { 703 EXPECT_CALL(*gl_, Disable(_)).Times(0); 704 SpecializedSetup<cmds::Disable, 0>(false); 705 cmds::Disable cmd; 706 cmd.Init(GL_CLIP_PLANE0); 707 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 708 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 709} 710 711TEST_F(GLES2DecoderTest1, DisableInvalidArgs0_1) { 712 EXPECT_CALL(*gl_, Disable(_)).Times(0); 713 SpecializedSetup<cmds::Disable, 0>(false); 714 cmds::Disable cmd; 715 cmd.Init(GL_POINT_SPRITE); 716 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 717 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 718} 719 720TEST_F(GLES2DecoderTest1, DisableVertexAttribArrayValidArgs) { 721 EXPECT_CALL(*gl_, DisableVertexAttribArray(1)); 722 SpecializedSetup<cmds::DisableVertexAttribArray, 0>(true); 723 cmds::DisableVertexAttribArray cmd; 724 cmd.Init(1); 725 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 726 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 727} 728// TODO(gman): DrawArrays 729 730// TODO(gman): DrawElements 731 732 733TEST_F(GLES2DecoderTest1, EnableValidArgs) { 734 EXPECT_CALL(*gl_, Enable(GL_BLEND)); 735 SpecializedSetup<cmds::Enable, 0>(true); 736 cmds::Enable cmd; 737 cmd.Init(GL_BLEND); 738 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 739 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 740} 741 742TEST_F(GLES2DecoderTest1, EnableInvalidArgs0_0) { 743 EXPECT_CALL(*gl_, Enable(_)).Times(0); 744 SpecializedSetup<cmds::Enable, 0>(false); 745 cmds::Enable cmd; 746 cmd.Init(GL_CLIP_PLANE0); 747 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 748 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 749} 750 751TEST_F(GLES2DecoderTest1, EnableInvalidArgs0_1) { 752 EXPECT_CALL(*gl_, Enable(_)).Times(0); 753 SpecializedSetup<cmds::Enable, 0>(false); 754 cmds::Enable cmd; 755 cmd.Init(GL_POINT_SPRITE); 756 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 757 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 758} 759 760TEST_F(GLES2DecoderTest1, EnableVertexAttribArrayValidArgs) { 761 EXPECT_CALL(*gl_, EnableVertexAttribArray(1)); 762 SpecializedSetup<cmds::EnableVertexAttribArray, 0>(true); 763 cmds::EnableVertexAttribArray cmd; 764 cmd.Init(1); 765 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 766 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 767} 768 769TEST_F(GLES2DecoderTest1, FinishValidArgs) { 770 EXPECT_CALL(*gl_, Finish()); 771 SpecializedSetup<cmds::Finish, 0>(true); 772 cmds::Finish cmd; 773 cmd.Init(); 774 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 775 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 776} 777 778TEST_F(GLES2DecoderTest1, FlushValidArgs) { 779 EXPECT_CALL(*gl_, Flush()); 780 SpecializedSetup<cmds::Flush, 0>(true); 781 cmds::Flush cmd; 782 cmd.Init(); 783 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 784 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 785} 786 787TEST_F(GLES2DecoderTest1, FramebufferRenderbufferValidArgs) { 788 EXPECT_CALL( 789 *gl_, FramebufferRenderbufferEXT( 790 GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, 791 kServiceRenderbufferId)); 792 SpecializedSetup<cmds::FramebufferRenderbuffer, 0>(true); 793 cmds::FramebufferRenderbuffer cmd; 794 cmd.Init( 795 GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, 796 client_renderbuffer_id_); 797 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 798 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 799} 800 801TEST_F(GLES2DecoderTest1, FramebufferRenderbufferInvalidArgs0_0) { 802 EXPECT_CALL(*gl_, FramebufferRenderbufferEXT(_, _, _, _)).Times(0); 803 SpecializedSetup<cmds::FramebufferRenderbuffer, 0>(false); 804 cmds::FramebufferRenderbuffer cmd; 805 cmd.Init( 806 GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, 807 client_renderbuffer_id_); 808 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 809 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 810} 811 812TEST_F(GLES2DecoderTest1, FramebufferRenderbufferInvalidArgs0_1) { 813 EXPECT_CALL(*gl_, FramebufferRenderbufferEXT(_, _, _, _)).Times(0); 814 SpecializedSetup<cmds::FramebufferRenderbuffer, 0>(false); 815 cmds::FramebufferRenderbuffer cmd; 816 cmd.Init( 817 GL_READ_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, 818 client_renderbuffer_id_); 819 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 820 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 821} 822 823TEST_F(GLES2DecoderTest1, FramebufferRenderbufferInvalidArgs2_0) { 824 EXPECT_CALL(*gl_, FramebufferRenderbufferEXT(_, _, _, _)).Times(0); 825 SpecializedSetup<cmds::FramebufferRenderbuffer, 0>(false); 826 cmds::FramebufferRenderbuffer cmd; 827 cmd.Init( 828 GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_FRAMEBUFFER, 829 client_renderbuffer_id_); 830 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 831 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 832} 833 834TEST_F(GLES2DecoderTest1, FramebufferTexture2DValidArgs) { 835 EXPECT_CALL( 836 *gl_, FramebufferTexture2DEXT( 837 GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, 838 kServiceTextureId, 0)); 839 SpecializedSetup<cmds::FramebufferTexture2D, 0>(true); 840 cmds::FramebufferTexture2D cmd; 841 cmd.Init( 842 GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, client_texture_id_, 843 0); 844 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 845 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 846} 847 848TEST_F(GLES2DecoderTest1, FramebufferTexture2DInvalidArgs0_0) { 849 EXPECT_CALL(*gl_, FramebufferTexture2DEXT(_, _, _, _, _)).Times(0); 850 SpecializedSetup<cmds::FramebufferTexture2D, 0>(false); 851 cmds::FramebufferTexture2D cmd; 852 cmd.Init( 853 GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, 854 client_texture_id_, 0); 855 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 856 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 857} 858 859TEST_F(GLES2DecoderTest1, FramebufferTexture2DInvalidArgs0_1) { 860 EXPECT_CALL(*gl_, FramebufferTexture2DEXT(_, _, _, _, _)).Times(0); 861 SpecializedSetup<cmds::FramebufferTexture2D, 0>(false); 862 cmds::FramebufferTexture2D cmd; 863 cmd.Init( 864 GL_READ_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, 865 client_texture_id_, 0); 866 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 867 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 868} 869 870TEST_F(GLES2DecoderTest1, FramebufferTexture2DInvalidArgs2_0) { 871 EXPECT_CALL(*gl_, FramebufferTexture2DEXT(_, _, _, _, _)).Times(0); 872 SpecializedSetup<cmds::FramebufferTexture2D, 0>(false); 873 cmds::FramebufferTexture2D cmd; 874 cmd.Init( 875 GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_PROXY_TEXTURE_CUBE_MAP, 876 client_texture_id_, 0); 877 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 878 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 879} 880 881TEST_F(GLES2DecoderTest1, FramebufferTexture2DInvalidArgs4_0) { 882 EXPECT_CALL(*gl_, FramebufferTexture2DEXT(_, _, _, _, _)).Times(0); 883 SpecializedSetup<cmds::FramebufferTexture2D, 0>(false); 884 cmds::FramebufferTexture2D cmd; 885 cmd.Init( 886 GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, client_texture_id_, 887 1); 888 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 889 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 890} 891 892TEST_F(GLES2DecoderTest1, FrontFaceValidArgs) { 893 EXPECT_CALL(*gl_, FrontFace(GL_CW)); 894 SpecializedSetup<cmds::FrontFace, 0>(true); 895 cmds::FrontFace cmd; 896 cmd.Init(GL_CW); 897 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 898 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 899} 900 901TEST_F(GLES2DecoderTest1, GenBuffersValidArgs) { 902 EXPECT_CALL(*gl_, GenBuffersARB(1, _)) 903 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); 904 GetSharedMemoryAs<GLuint*>()[0] = kNewClientId; 905 SpecializedSetup<cmds::GenBuffers, 0>(true); 906 cmds::GenBuffers cmd; 907 cmd.Init(1, shared_memory_id_, shared_memory_offset_); 908 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 909 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 910 EXPECT_TRUE(GetBuffer(kNewClientId) != NULL); 911} 912 913TEST_F(GLES2DecoderTest1, GenBuffersInvalidArgs) { 914 EXPECT_CALL(*gl_, GenBuffersARB(_, _)).Times(0); 915 GetSharedMemoryAs<GLuint*>()[0] = client_buffer_id_; 916 SpecializedSetup<cmds::GenBuffers, 0>(false); 917 cmds::GenBuffers cmd; 918 cmd.Init(1, shared_memory_id_, shared_memory_offset_); 919 EXPECT_EQ(error::kInvalidArguments, ExecuteCmd(cmd)); 920} 921 922TEST_F(GLES2DecoderTest1, GenBuffersImmediateValidArgs) { 923 EXPECT_CALL(*gl_, GenBuffersARB(1, _)) 924 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); 925 cmds::GenBuffersImmediate* cmd = GetImmediateAs<cmds::GenBuffersImmediate>(); 926 GLuint temp = kNewClientId; 927 SpecializedSetup<cmds::GenBuffersImmediate, 0>(true); 928 cmd->Init(1, &temp); 929 EXPECT_EQ(error::kNoError, 930 ExecuteImmediateCmd(*cmd, sizeof(temp))); 931 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 932 EXPECT_TRUE(GetBuffer(kNewClientId) != NULL); 933} 934 935TEST_F(GLES2DecoderTest1, GenBuffersImmediateInvalidArgs) { 936 EXPECT_CALL(*gl_, GenBuffersARB(_, _)).Times(0); 937 cmds::GenBuffersImmediate* cmd = GetImmediateAs<cmds::GenBuffersImmediate>(); 938 SpecializedSetup<cmds::GenBuffersImmediate, 0>(false); 939 cmd->Init(1, &client_buffer_id_); 940 EXPECT_EQ(error::kInvalidArguments, 941 ExecuteImmediateCmd(*cmd, sizeof(&client_buffer_id_))); 942} 943 944TEST_F(GLES2DecoderTest1, GenerateMipmapValidArgs) { 945 EXPECT_CALL(*gl_, GenerateMipmapEXT(GL_TEXTURE_2D)); 946 SpecializedSetup<cmds::GenerateMipmap, 0>(true); 947 cmds::GenerateMipmap cmd; 948 cmd.Init(GL_TEXTURE_2D); 949 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 950 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 951} 952 953TEST_F(GLES2DecoderTest1, GenerateMipmapInvalidArgs0_0) { 954 EXPECT_CALL(*gl_, GenerateMipmapEXT(_)).Times(0); 955 SpecializedSetup<cmds::GenerateMipmap, 0>(false); 956 cmds::GenerateMipmap cmd; 957 cmd.Init(GL_TEXTURE_1D); 958 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 959 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 960} 961 962TEST_F(GLES2DecoderTest1, GenerateMipmapInvalidArgs0_1) { 963 EXPECT_CALL(*gl_, GenerateMipmapEXT(_)).Times(0); 964 SpecializedSetup<cmds::GenerateMipmap, 0>(false); 965 cmds::GenerateMipmap cmd; 966 cmd.Init(GL_TEXTURE_3D); 967 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 968 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 969} 970 971TEST_F(GLES2DecoderTest1, GenFramebuffersValidArgs) { 972 EXPECT_CALL(*gl_, GenFramebuffersEXT(1, _)) 973 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); 974 GetSharedMemoryAs<GLuint*>()[0] = kNewClientId; 975 SpecializedSetup<cmds::GenFramebuffers, 0>(true); 976 cmds::GenFramebuffers cmd; 977 cmd.Init(1, shared_memory_id_, shared_memory_offset_); 978 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 979 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 980 EXPECT_TRUE(GetFramebuffer(kNewClientId) != NULL); 981} 982 983TEST_F(GLES2DecoderTest1, GenFramebuffersInvalidArgs) { 984 EXPECT_CALL(*gl_, GenFramebuffersEXT(_, _)).Times(0); 985 GetSharedMemoryAs<GLuint*>()[0] = client_framebuffer_id_; 986 SpecializedSetup<cmds::GenFramebuffers, 0>(false); 987 cmds::GenFramebuffers cmd; 988 cmd.Init(1, shared_memory_id_, shared_memory_offset_); 989 EXPECT_EQ(error::kInvalidArguments, ExecuteCmd(cmd)); 990} 991 992TEST_F(GLES2DecoderTest1, GenFramebuffersImmediateValidArgs) { 993 EXPECT_CALL(*gl_, GenFramebuffersEXT(1, _)) 994 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); 995 cmds::GenFramebuffersImmediate* cmd = 996 GetImmediateAs<cmds::GenFramebuffersImmediate>(); 997 GLuint temp = kNewClientId; 998 SpecializedSetup<cmds::GenFramebuffersImmediate, 0>(true); 999 cmd->Init(1, &temp); 1000 EXPECT_EQ(error::kNoError, 1001 ExecuteImmediateCmd(*cmd, sizeof(temp))); 1002 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1003 EXPECT_TRUE(GetFramebuffer(kNewClientId) != NULL); 1004} 1005 1006TEST_F(GLES2DecoderTest1, GenFramebuffersImmediateInvalidArgs) { 1007 EXPECT_CALL(*gl_, GenFramebuffersEXT(_, _)).Times(0); 1008 cmds::GenFramebuffersImmediate* cmd = 1009 GetImmediateAs<cmds::GenFramebuffersImmediate>(); 1010 SpecializedSetup<cmds::GenFramebuffersImmediate, 0>(false); 1011 cmd->Init(1, &client_framebuffer_id_); 1012 EXPECT_EQ(error::kInvalidArguments, 1013 ExecuteImmediateCmd(*cmd, sizeof(&client_framebuffer_id_))); 1014} 1015 1016TEST_F(GLES2DecoderTest1, GenRenderbuffersValidArgs) { 1017 EXPECT_CALL(*gl_, GenRenderbuffersEXT(1, _)) 1018 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); 1019 GetSharedMemoryAs<GLuint*>()[0] = kNewClientId; 1020 SpecializedSetup<cmds::GenRenderbuffers, 0>(true); 1021 cmds::GenRenderbuffers cmd; 1022 cmd.Init(1, shared_memory_id_, shared_memory_offset_); 1023 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1024 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1025 EXPECT_TRUE(GetRenderbuffer(kNewClientId) != NULL); 1026} 1027 1028TEST_F(GLES2DecoderTest1, GenRenderbuffersInvalidArgs) { 1029 EXPECT_CALL(*gl_, GenRenderbuffersEXT(_, _)).Times(0); 1030 GetSharedMemoryAs<GLuint*>()[0] = client_renderbuffer_id_; 1031 SpecializedSetup<cmds::GenRenderbuffers, 0>(false); 1032 cmds::GenRenderbuffers cmd; 1033 cmd.Init(1, shared_memory_id_, shared_memory_offset_); 1034 EXPECT_EQ(error::kInvalidArguments, ExecuteCmd(cmd)); 1035} 1036 1037TEST_F(GLES2DecoderTest1, GenRenderbuffersImmediateValidArgs) { 1038 EXPECT_CALL(*gl_, GenRenderbuffersEXT(1, _)) 1039 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); 1040 cmds::GenRenderbuffersImmediate* cmd = 1041 GetImmediateAs<cmds::GenRenderbuffersImmediate>(); 1042 GLuint temp = kNewClientId; 1043 SpecializedSetup<cmds::GenRenderbuffersImmediate, 0>(true); 1044 cmd->Init(1, &temp); 1045 EXPECT_EQ(error::kNoError, 1046 ExecuteImmediateCmd(*cmd, sizeof(temp))); 1047 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1048 EXPECT_TRUE(GetRenderbuffer(kNewClientId) != NULL); 1049} 1050 1051TEST_F(GLES2DecoderTest1, GenRenderbuffersImmediateInvalidArgs) { 1052 EXPECT_CALL(*gl_, GenRenderbuffersEXT(_, _)).Times(0); 1053 cmds::GenRenderbuffersImmediate* cmd = 1054 GetImmediateAs<cmds::GenRenderbuffersImmediate>(); 1055 SpecializedSetup<cmds::GenRenderbuffersImmediate, 0>(false); 1056 cmd->Init(1, &client_renderbuffer_id_); 1057 EXPECT_EQ(error::kInvalidArguments, 1058 ExecuteImmediateCmd(*cmd, sizeof(&client_renderbuffer_id_))); 1059} 1060 1061TEST_F(GLES2DecoderTest1, GenTexturesValidArgs) { 1062 EXPECT_CALL(*gl_, GenTextures(1, _)) 1063 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); 1064 GetSharedMemoryAs<GLuint*>()[0] = kNewClientId; 1065 SpecializedSetup<cmds::GenTextures, 0>(true); 1066 cmds::GenTextures cmd; 1067 cmd.Init(1, shared_memory_id_, shared_memory_offset_); 1068 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1069 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1070 EXPECT_TRUE(GetTexture(kNewClientId) != NULL); 1071} 1072 1073TEST_F(GLES2DecoderTest1, GenTexturesInvalidArgs) { 1074 EXPECT_CALL(*gl_, GenTextures(_, _)).Times(0); 1075 GetSharedMemoryAs<GLuint*>()[0] = client_texture_id_; 1076 SpecializedSetup<cmds::GenTextures, 0>(false); 1077 cmds::GenTextures cmd; 1078 cmd.Init(1, shared_memory_id_, shared_memory_offset_); 1079 EXPECT_EQ(error::kInvalidArguments, ExecuteCmd(cmd)); 1080} 1081 1082TEST_F(GLES2DecoderTest1, GenTexturesImmediateValidArgs) { 1083 EXPECT_CALL(*gl_, GenTextures(1, _)) 1084 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); 1085 cmds::GenTexturesImmediate* cmd = 1086 GetImmediateAs<cmds::GenTexturesImmediate>(); 1087 GLuint temp = kNewClientId; 1088 SpecializedSetup<cmds::GenTexturesImmediate, 0>(true); 1089 cmd->Init(1, &temp); 1090 EXPECT_EQ(error::kNoError, 1091 ExecuteImmediateCmd(*cmd, sizeof(temp))); 1092 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1093 EXPECT_TRUE(GetTexture(kNewClientId) != NULL); 1094} 1095 1096TEST_F(GLES2DecoderTest1, GenTexturesImmediateInvalidArgs) { 1097 EXPECT_CALL(*gl_, GenTextures(_, _)).Times(0); 1098 cmds::GenTexturesImmediate* cmd = 1099 GetImmediateAs<cmds::GenTexturesImmediate>(); 1100 SpecializedSetup<cmds::GenTexturesImmediate, 0>(false); 1101 cmd->Init(1, &client_texture_id_); 1102 EXPECT_EQ(error::kInvalidArguments, 1103 ExecuteImmediateCmd(*cmd, sizeof(&client_texture_id_))); 1104} 1105// TODO(gman): GetActiveAttrib 1106 1107// TODO(gman): GetActiveUniform 1108 1109// TODO(gman): GetAttachedShaders 1110 1111// TODO(gman): GetAttribLocation 1112 1113// TODO(gman): GetAttribLocationImmediate 1114 1115// TODO(gman): GetAttribLocationBucket 1116 1117 1118TEST_F(GLES2DecoderTest1, GetBooleanvValidArgs) { 1119 EXPECT_CALL(*gl_, GetError()) 1120 .WillOnce(Return(GL_NO_ERROR)) 1121 .WillOnce(Return(GL_NO_ERROR)) 1122 .RetiresOnSaturation(); 1123 SpecializedSetup<cmds::GetBooleanv, 0>(true); 1124 typedef cmds::GetBooleanv::Result Result; 1125 Result* result = static_cast<Result*>(shared_memory_address_); 1126 EXPECT_CALL(*gl_, GetBooleanv(GL_ACTIVE_TEXTURE, result->GetData())); 1127 result->size = 0; 1128 cmds::GetBooleanv cmd; 1129 cmd.Init(GL_ACTIVE_TEXTURE, shared_memory_id_, shared_memory_offset_); 1130 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1131 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned( 1132 GL_ACTIVE_TEXTURE), 1133 result->GetNumResults()); 1134 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1135} 1136 1137TEST_F(GLES2DecoderTest1, GetBooleanvInvalidArgs0_0) { 1138 EXPECT_CALL(*gl_, GetBooleanv(_, _)).Times(0); 1139 SpecializedSetup<cmds::GetBooleanv, 0>(false); 1140 cmds::GetBooleanv::Result* result = 1141 static_cast<cmds::GetBooleanv::Result*>(shared_memory_address_); 1142 result->size = 0; 1143 cmds::GetBooleanv cmd; 1144 cmd.Init(GL_FOG_HINT, shared_memory_id_, shared_memory_offset_); 1145 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1146 EXPECT_EQ(0u, result->size); 1147 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 1148} 1149 1150TEST_F(GLES2DecoderTest1, GetBooleanvInvalidArgs1_0) { 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_); 1155 result->size = 0; 1156 cmds::GetBooleanv cmd; 1157 cmd.Init(GL_ACTIVE_TEXTURE, kInvalidSharedMemoryId, 0); 1158 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1159 EXPECT_EQ(0u, result->size); 1160} 1161 1162TEST_F(GLES2DecoderTest1, GetBooleanvInvalidArgs1_1) { 1163 EXPECT_CALL(*gl_, GetBooleanv(_, _)).Times(0); 1164 SpecializedSetup<cmds::GetBooleanv, 0>(false); 1165 cmds::GetBooleanv::Result* result = 1166 static_cast<cmds::GetBooleanv::Result*>(shared_memory_address_); 1167 result->size = 0; 1168 cmds::GetBooleanv cmd; 1169 cmd.Init(GL_ACTIVE_TEXTURE, shared_memory_id_, kInvalidSharedMemoryOffset); 1170 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1171 EXPECT_EQ(0u, result->size); 1172} 1173 1174TEST_F(GLES2DecoderTest1, GetBufferParameterivValidArgs) { 1175 SpecializedSetup<cmds::GetBufferParameteriv, 0>(true); 1176 typedef cmds::GetBufferParameteriv::Result Result; 1177 Result* result = static_cast<Result*>(shared_memory_address_); 1178 result->size = 0; 1179 cmds::GetBufferParameteriv cmd; 1180 cmd.Init( 1181 GL_ARRAY_BUFFER, GL_BUFFER_SIZE, shared_memory_id_, 1182 shared_memory_offset_); 1183 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1184 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned( 1185 GL_BUFFER_SIZE), 1186 result->GetNumResults()); 1187 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1188} 1189 1190TEST_F(GLES2DecoderTest1, GetBufferParameterivInvalidArgs0_0) { 1191 EXPECT_CALL(*gl_, GetBufferParameteriv(_, _, _)).Times(0); 1192 SpecializedSetup<cmds::GetBufferParameteriv, 0>(false); 1193 cmds::GetBufferParameteriv::Result* result = 1194 static_cast<cmds::GetBufferParameteriv::Result*>(shared_memory_address_); 1195 result->size = 0; 1196 cmds::GetBufferParameteriv cmd; 1197 cmd.Init( 1198 GL_RENDERBUFFER, GL_BUFFER_SIZE, shared_memory_id_, 1199 shared_memory_offset_); 1200 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1201 EXPECT_EQ(0u, result->size); 1202 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 1203} 1204 1205TEST_F(GLES2DecoderTest1, GetBufferParameterivInvalidArgs1_0) { 1206 EXPECT_CALL(*gl_, GetBufferParameteriv(_, _, _)).Times(0); 1207 SpecializedSetup<cmds::GetBufferParameteriv, 0>(false); 1208 cmds::GetBufferParameteriv::Result* result = 1209 static_cast<cmds::GetBufferParameteriv::Result*>(shared_memory_address_); 1210 result->size = 0; 1211 cmds::GetBufferParameteriv cmd; 1212 cmd.Init( 1213 GL_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, shared_memory_id_, 1214 shared_memory_offset_); 1215 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1216 EXPECT_EQ(0u, result->size); 1217 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 1218} 1219 1220TEST_F(GLES2DecoderTest1, GetBufferParameterivInvalidArgs2_0) { 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_); 1225 result->size = 0; 1226 cmds::GetBufferParameteriv cmd; 1227 cmd.Init(GL_ARRAY_BUFFER, GL_BUFFER_SIZE, kInvalidSharedMemoryId, 0); 1228 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1229 EXPECT_EQ(0u, result->size); 1230} 1231 1232TEST_F(GLES2DecoderTest1, GetBufferParameterivInvalidArgs2_1) { 1233 EXPECT_CALL(*gl_, GetBufferParameteriv(_, _, _)).Times(0); 1234 SpecializedSetup<cmds::GetBufferParameteriv, 0>(false); 1235 cmds::GetBufferParameteriv::Result* result = 1236 static_cast<cmds::GetBufferParameteriv::Result*>(shared_memory_address_); 1237 result->size = 0; 1238 cmds::GetBufferParameteriv cmd; 1239 cmd.Init( 1240 GL_ARRAY_BUFFER, GL_BUFFER_SIZE, shared_memory_id_, 1241 kInvalidSharedMemoryOffset); 1242 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1243 EXPECT_EQ(0u, result->size); 1244} 1245 1246TEST_F(GLES2DecoderTest1, GetErrorValidArgs) { 1247 EXPECT_CALL(*gl_, GetError()); 1248 SpecializedSetup<cmds::GetError, 0>(true); 1249 cmds::GetError cmd; 1250 cmd.Init(shared_memory_id_, shared_memory_offset_); 1251 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1252 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1253} 1254 1255TEST_F(GLES2DecoderTest1, GetErrorInvalidArgsBadSharedMemoryId) { 1256 EXPECT_CALL(*gl_, GetError()).Times(0); 1257 SpecializedSetup<cmds::GetError, 0>(false); 1258 cmds::GetError cmd; 1259 cmd.Init(kInvalidSharedMemoryId, shared_memory_offset_); 1260 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1261 cmd.Init(shared_memory_id_, kInvalidSharedMemoryOffset); 1262 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1263} 1264 1265TEST_F(GLES2DecoderTest1, GetFloatvValidArgs) { 1266 EXPECT_CALL(*gl_, GetError()) 1267 .WillOnce(Return(GL_NO_ERROR)) 1268 .WillOnce(Return(GL_NO_ERROR)) 1269 .RetiresOnSaturation(); 1270 SpecializedSetup<cmds::GetFloatv, 0>(true); 1271 typedef cmds::GetFloatv::Result Result; 1272 Result* result = static_cast<Result*>(shared_memory_address_); 1273 EXPECT_CALL(*gl_, GetFloatv(GL_ACTIVE_TEXTURE, result->GetData())); 1274 result->size = 0; 1275 cmds::GetFloatv cmd; 1276 cmd.Init(GL_ACTIVE_TEXTURE, shared_memory_id_, shared_memory_offset_); 1277 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1278 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned( 1279 GL_ACTIVE_TEXTURE), 1280 result->GetNumResults()); 1281 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1282} 1283 1284TEST_F(GLES2DecoderTest1, GetFloatvInvalidArgs0_0) { 1285 EXPECT_CALL(*gl_, GetFloatv(_, _)).Times(0); 1286 SpecializedSetup<cmds::GetFloatv, 0>(false); 1287 cmds::GetFloatv::Result* result = 1288 static_cast<cmds::GetFloatv::Result*>(shared_memory_address_); 1289 result->size = 0; 1290 cmds::GetFloatv cmd; 1291 cmd.Init(GL_FOG_HINT, shared_memory_id_, shared_memory_offset_); 1292 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1293 EXPECT_EQ(0u, result->size); 1294 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 1295} 1296 1297TEST_F(GLES2DecoderTest1, GetFloatvInvalidArgs1_0) { 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_); 1302 result->size = 0; 1303 cmds::GetFloatv cmd; 1304 cmd.Init(GL_ACTIVE_TEXTURE, kInvalidSharedMemoryId, 0); 1305 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1306 EXPECT_EQ(0u, result->size); 1307} 1308 1309TEST_F(GLES2DecoderTest1, GetFloatvInvalidArgs1_1) { 1310 EXPECT_CALL(*gl_, GetFloatv(_, _)).Times(0); 1311 SpecializedSetup<cmds::GetFloatv, 0>(false); 1312 cmds::GetFloatv::Result* result = 1313 static_cast<cmds::GetFloatv::Result*>(shared_memory_address_); 1314 result->size = 0; 1315 cmds::GetFloatv cmd; 1316 cmd.Init(GL_ACTIVE_TEXTURE, shared_memory_id_, kInvalidSharedMemoryOffset); 1317 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1318 EXPECT_EQ(0u, result->size); 1319} 1320 1321TEST_F(GLES2DecoderTest1, GetFramebufferAttachmentParameterivValidArgs) { 1322 EXPECT_CALL(*gl_, GetError()) 1323 .WillOnce(Return(GL_NO_ERROR)) 1324 .WillOnce(Return(GL_NO_ERROR)) 1325 .RetiresOnSaturation(); 1326 SpecializedSetup<cmds::GetFramebufferAttachmentParameteriv, 0>(true); 1327 typedef cmds::GetFramebufferAttachmentParameteriv::Result Result; 1328 Result* result = static_cast<Result*>(shared_memory_address_); 1329 EXPECT_CALL( 1330 *gl_, GetFramebufferAttachmentParameterivEXT( 1331 GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, 1332 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, result->GetData())); 1333 result->size = 0; 1334 cmds::GetFramebufferAttachmentParameteriv cmd; 1335 cmd.Init( 1336 GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, 1337 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, shared_memory_id_, 1338 shared_memory_offset_); 1339 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1340 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned( 1341 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE), 1342 result->GetNumResults()); 1343 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1344} 1345 1346TEST_F(GLES2DecoderTest1, GetFramebufferAttachmentParameterivInvalidArgs0_0) { 1347 EXPECT_CALL( 1348 *gl_, GetFramebufferAttachmentParameterivEXT(_, _, _, _)).Times(0); 1349 SpecializedSetup<cmds::GetFramebufferAttachmentParameteriv, 0>(false); 1350 cmds::GetFramebufferAttachmentParameteriv::Result* result = 1351 static_cast<cmds::GetFramebufferAttachmentParameteriv::Result*>( 1352 shared_memory_address_); 1353 result->size = 0; 1354 cmds::GetFramebufferAttachmentParameteriv cmd; 1355 cmd.Init( 1356 GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, 1357 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, shared_memory_id_, 1358 shared_memory_offset_); 1359 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1360 EXPECT_EQ(0u, result->size); 1361 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 1362} 1363 1364TEST_F(GLES2DecoderTest1, GetFramebufferAttachmentParameterivInvalidArgs0_1) { 1365 EXPECT_CALL( 1366 *gl_, GetFramebufferAttachmentParameterivEXT(_, _, _, _)).Times(0); 1367 SpecializedSetup<cmds::GetFramebufferAttachmentParameteriv, 0>(false); 1368 cmds::GetFramebufferAttachmentParameteriv::Result* result = 1369 static_cast<cmds::GetFramebufferAttachmentParameteriv::Result*>( 1370 shared_memory_address_); 1371 result->size = 0; 1372 cmds::GetFramebufferAttachmentParameteriv cmd; 1373 cmd.Init( 1374 GL_READ_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, 1375 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, shared_memory_id_, 1376 shared_memory_offset_); 1377 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1378 EXPECT_EQ(0u, result->size); 1379 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 1380} 1381 1382TEST_F(GLES2DecoderTest1, GetFramebufferAttachmentParameterivInvalidArgs3_0) { 1383 EXPECT_CALL( 1384 *gl_, GetFramebufferAttachmentParameterivEXT(_, _, _, _)).Times(0); 1385 SpecializedSetup<cmds::GetFramebufferAttachmentParameteriv, 0>(false); 1386 cmds::GetFramebufferAttachmentParameteriv::Result* result = 1387 static_cast<cmds::GetFramebufferAttachmentParameteriv::Result*>( 1388 shared_memory_address_); 1389 result->size = 0; 1390 cmds::GetFramebufferAttachmentParameteriv cmd; 1391 cmd.Init( 1392 GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, 1393 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, kInvalidSharedMemoryId, 0); 1394 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1395 EXPECT_EQ(0u, result->size); 1396} 1397 1398TEST_F(GLES2DecoderTest1, GetFramebufferAttachmentParameterivInvalidArgs3_1) { 1399 EXPECT_CALL( 1400 *gl_, GetFramebufferAttachmentParameterivEXT(_, _, _, _)).Times(0); 1401 SpecializedSetup<cmds::GetFramebufferAttachmentParameteriv, 0>(false); 1402 cmds::GetFramebufferAttachmentParameteriv::Result* result = 1403 static_cast<cmds::GetFramebufferAttachmentParameteriv::Result*>( 1404 shared_memory_address_); 1405 result->size = 0; 1406 cmds::GetFramebufferAttachmentParameteriv cmd; 1407 cmd.Init( 1408 GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, 1409 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, shared_memory_id_, 1410 kInvalidSharedMemoryOffset); 1411 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1412 EXPECT_EQ(0u, result->size); 1413} 1414 1415TEST_F(GLES2DecoderTest1, GetIntegervValidArgs) { 1416 EXPECT_CALL(*gl_, GetError()) 1417 .WillOnce(Return(GL_NO_ERROR)) 1418 .WillOnce(Return(GL_NO_ERROR)) 1419 .RetiresOnSaturation(); 1420 SpecializedSetup<cmds::GetIntegerv, 0>(true); 1421 typedef cmds::GetIntegerv::Result Result; 1422 Result* result = static_cast<Result*>(shared_memory_address_); 1423 EXPECT_CALL(*gl_, GetIntegerv(GL_ACTIVE_TEXTURE, result->GetData())); 1424 result->size = 0; 1425 cmds::GetIntegerv cmd; 1426 cmd.Init(GL_ACTIVE_TEXTURE, shared_memory_id_, shared_memory_offset_); 1427 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1428 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned( 1429 GL_ACTIVE_TEXTURE), 1430 result->GetNumResults()); 1431 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1432} 1433 1434TEST_F(GLES2DecoderTest1, GetIntegervInvalidArgs0_0) { 1435 EXPECT_CALL(*gl_, GetIntegerv(_, _)).Times(0); 1436 SpecializedSetup<cmds::GetIntegerv, 0>(false); 1437 cmds::GetIntegerv::Result* result = 1438 static_cast<cmds::GetIntegerv::Result*>(shared_memory_address_); 1439 result->size = 0; 1440 cmds::GetIntegerv cmd; 1441 cmd.Init(GL_FOG_HINT, shared_memory_id_, shared_memory_offset_); 1442 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1443 EXPECT_EQ(0u, result->size); 1444 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 1445} 1446 1447TEST_F(GLES2DecoderTest1, GetIntegervInvalidArgs1_0) { 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_); 1452 result->size = 0; 1453 cmds::GetIntegerv cmd; 1454 cmd.Init(GL_ACTIVE_TEXTURE, kInvalidSharedMemoryId, 0); 1455 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1456 EXPECT_EQ(0u, result->size); 1457} 1458 1459TEST_F(GLES2DecoderTest1, GetIntegervInvalidArgs1_1) { 1460 EXPECT_CALL(*gl_, GetIntegerv(_, _)).Times(0); 1461 SpecializedSetup<cmds::GetIntegerv, 0>(false); 1462 cmds::GetIntegerv::Result* result = 1463 static_cast<cmds::GetIntegerv::Result*>(shared_memory_address_); 1464 result->size = 0; 1465 cmds::GetIntegerv cmd; 1466 cmd.Init(GL_ACTIVE_TEXTURE, shared_memory_id_, kInvalidSharedMemoryOffset); 1467 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1468 EXPECT_EQ(0u, result->size); 1469} 1470 1471TEST_F(GLES2DecoderTest1, GetProgramivValidArgs) { 1472 SpecializedSetup<cmds::GetProgramiv, 0>(true); 1473 typedef cmds::GetProgramiv::Result Result; 1474 Result* result = static_cast<Result*>(shared_memory_address_); 1475 result->size = 0; 1476 cmds::GetProgramiv cmd; 1477 cmd.Init( 1478 client_program_id_, GL_DELETE_STATUS, shared_memory_id_, 1479 shared_memory_offset_); 1480 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1481 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned( 1482 GL_DELETE_STATUS), 1483 result->GetNumResults()); 1484 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1485} 1486 1487TEST_F(GLES2DecoderTest1, GetProgramivInvalidArgs2_0) { 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_); 1492 result->size = 0; 1493 cmds::GetProgramiv cmd; 1494 cmd.Init(client_program_id_, GL_DELETE_STATUS, kInvalidSharedMemoryId, 0); 1495 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1496 EXPECT_EQ(0u, result->size); 1497} 1498 1499TEST_F(GLES2DecoderTest1, GetProgramivInvalidArgs2_1) { 1500 EXPECT_CALL(*gl_, GetProgramiv(_, _, _)).Times(0); 1501 SpecializedSetup<cmds::GetProgramiv, 0>(false); 1502 cmds::GetProgramiv::Result* result = 1503 static_cast<cmds::GetProgramiv::Result*>(shared_memory_address_); 1504 result->size = 0; 1505 cmds::GetProgramiv cmd; 1506 cmd.Init( 1507 client_program_id_, GL_DELETE_STATUS, shared_memory_id_, 1508 kInvalidSharedMemoryOffset); 1509 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1510 EXPECT_EQ(0u, result->size); 1511} 1512 1513TEST_F(GLES2DecoderTest1, GetProgramInfoLogValidArgs) { 1514 const char* kInfo = "hello"; 1515 const uint32 kBucketId = 123; 1516 SpecializedSetup<cmds::GetProgramInfoLog, 0>(true); 1517 1518 cmds::GetProgramInfoLog cmd; 1519 cmd.Init(client_program_id_, kBucketId); 1520 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1521 CommonDecoder::Bucket* bucket = decoder_->GetBucket(kBucketId); 1522 ASSERT_TRUE(bucket != NULL); 1523 EXPECT_EQ(strlen(kInfo) + 1, bucket->size()); 1524 EXPECT_EQ(0, memcmp(bucket->GetData(0, bucket->size()), kInfo, 1525 bucket->size())); 1526 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1527} 1528 1529TEST_F(GLES2DecoderTest1, GetProgramInfoLogInvalidArgs) { 1530 const uint32 kBucketId = 123; 1531 cmds::GetProgramInfoLog cmd; 1532 cmd.Init(kInvalidClientId, kBucketId); 1533 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1534 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 1535} 1536 1537TEST_F(GLES2DecoderTest1, GetRenderbufferParameterivValidArgs) { 1538 EXPECT_CALL(*gl_, GetError()) 1539 .WillOnce(Return(GL_NO_ERROR)) 1540 .WillOnce(Return(GL_NO_ERROR)) 1541 .RetiresOnSaturation(); 1542 SpecializedSetup<cmds::GetRenderbufferParameteriv, 0>(true); 1543 typedef cmds::GetRenderbufferParameteriv::Result Result; 1544 Result* result = static_cast<Result*>(shared_memory_address_); 1545 EXPECT_CALL( 1546 *gl_, GetRenderbufferParameterivEXT( 1547 GL_RENDERBUFFER, GL_RENDERBUFFER_RED_SIZE, result->GetData())); 1548 result->size = 0; 1549 cmds::GetRenderbufferParameteriv cmd; 1550 cmd.Init( 1551 GL_RENDERBUFFER, GL_RENDERBUFFER_RED_SIZE, shared_memory_id_, 1552 shared_memory_offset_); 1553 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1554 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned( 1555 GL_RENDERBUFFER_RED_SIZE), 1556 result->GetNumResults()); 1557 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1558} 1559 1560TEST_F(GLES2DecoderTest1, GetRenderbufferParameterivInvalidArgs0_0) { 1561 EXPECT_CALL(*gl_, GetRenderbufferParameterivEXT(_, _, _)).Times(0); 1562 SpecializedSetup<cmds::GetRenderbufferParameteriv, 0>(false); 1563 cmds::GetRenderbufferParameteriv::Result* result = 1564 static_cast<cmds::GetRenderbufferParameteriv::Result*>( 1565 shared_memory_address_); 1566 result->size = 0; 1567 cmds::GetRenderbufferParameteriv cmd; 1568 cmd.Init( 1569 GL_FRAMEBUFFER, GL_RENDERBUFFER_RED_SIZE, shared_memory_id_, 1570 shared_memory_offset_); 1571 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1572 EXPECT_EQ(0u, result->size); 1573 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 1574} 1575 1576TEST_F(GLES2DecoderTest1, GetRenderbufferParameterivInvalidArgs2_0) { 1577 EXPECT_CALL(*gl_, GetRenderbufferParameterivEXT(_, _, _)).Times(0); 1578 SpecializedSetup<cmds::GetRenderbufferParameteriv, 0>(false); 1579 cmds::GetRenderbufferParameteriv::Result* result = 1580 static_cast<cmds::GetRenderbufferParameteriv::Result*>( 1581 shared_memory_address_); 1582 result->size = 0; 1583 cmds::GetRenderbufferParameteriv cmd; 1584 cmd.Init( 1585 GL_RENDERBUFFER, GL_RENDERBUFFER_RED_SIZE, kInvalidSharedMemoryId, 0); 1586 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1587 EXPECT_EQ(0u, result->size); 1588} 1589 1590TEST_F(GLES2DecoderTest1, GetRenderbufferParameterivInvalidArgs2_1) { 1591 EXPECT_CALL(*gl_, GetRenderbufferParameterivEXT(_, _, _)).Times(0); 1592 SpecializedSetup<cmds::GetRenderbufferParameteriv, 0>(false); 1593 cmds::GetRenderbufferParameteriv::Result* result = 1594 static_cast<cmds::GetRenderbufferParameteriv::Result*>( 1595 shared_memory_address_); 1596 result->size = 0; 1597 cmds::GetRenderbufferParameteriv cmd; 1598 cmd.Init( 1599 GL_RENDERBUFFER, GL_RENDERBUFFER_RED_SIZE, shared_memory_id_, 1600 kInvalidSharedMemoryOffset); 1601 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1602 EXPECT_EQ(0u, result->size); 1603} 1604 1605TEST_F(GLES2DecoderTest1, GetShaderivValidArgs) { 1606 EXPECT_CALL(*gl_, GetError()) 1607 .WillOnce(Return(GL_NO_ERROR)) 1608 .WillOnce(Return(GL_NO_ERROR)) 1609 .RetiresOnSaturation(); 1610 SpecializedSetup<cmds::GetShaderiv, 0>(true); 1611 typedef cmds::GetShaderiv::Result Result; 1612 Result* result = static_cast<Result*>(shared_memory_address_); 1613 EXPECT_CALL( 1614 *gl_, GetShaderiv(kServiceShaderId, GL_SHADER_TYPE, result->GetData())); 1615 result->size = 0; 1616 cmds::GetShaderiv cmd; 1617 cmd.Init( 1618 client_shader_id_, GL_SHADER_TYPE, shared_memory_id_, 1619 shared_memory_offset_); 1620 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1621 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned( 1622 GL_SHADER_TYPE), 1623 result->GetNumResults()); 1624 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1625} 1626 1627TEST_F(GLES2DecoderTest1, GetShaderivInvalidArgs2_0) { 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_); 1632 result->size = 0; 1633 cmds::GetShaderiv cmd; 1634 cmd.Init(client_shader_id_, GL_SHADER_TYPE, kInvalidSharedMemoryId, 0); 1635 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1636 EXPECT_EQ(0u, result->size); 1637} 1638 1639TEST_F(GLES2DecoderTest1, GetShaderivInvalidArgs2_1) { 1640 EXPECT_CALL(*gl_, GetShaderiv(_, _, _)).Times(0); 1641 SpecializedSetup<cmds::GetShaderiv, 0>(false); 1642 cmds::GetShaderiv::Result* result = 1643 static_cast<cmds::GetShaderiv::Result*>(shared_memory_address_); 1644 result->size = 0; 1645 cmds::GetShaderiv cmd; 1646 cmd.Init( 1647 client_shader_id_, GL_SHADER_TYPE, shared_memory_id_, 1648 kInvalidSharedMemoryOffset); 1649 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1650 EXPECT_EQ(0u, result->size); 1651} 1652// TODO(gman): GetShaderInfoLog 1653// TODO(gman): GetShaderPrecisionFormat 1654 1655// TODO(gman): GetShaderSource 1656// TODO(gman): GetString 1657 1658 1659TEST_F(GLES2DecoderTest1, GetTexParameterfvValidArgs) { 1660 EXPECT_CALL(*gl_, GetError()) 1661 .WillOnce(Return(GL_NO_ERROR)) 1662 .WillOnce(Return(GL_NO_ERROR)) 1663 .RetiresOnSaturation(); 1664 SpecializedSetup<cmds::GetTexParameterfv, 0>(true); 1665 typedef cmds::GetTexParameterfv::Result Result; 1666 Result* result = static_cast<Result*>(shared_memory_address_); 1667 EXPECT_CALL( 1668 *gl_, GetTexParameterfv( 1669 GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, result->GetData())); 1670 result->size = 0; 1671 cmds::GetTexParameterfv cmd; 1672 cmd.Init( 1673 GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, shared_memory_id_, 1674 shared_memory_offset_); 1675 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1676 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned( 1677 GL_TEXTURE_MAG_FILTER), 1678 result->GetNumResults()); 1679 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1680} 1681 1682TEST_F(GLES2DecoderTest1, GetTexParameterfvInvalidArgs0_0) { 1683 EXPECT_CALL(*gl_, GetTexParameterfv(_, _, _)).Times(0); 1684 SpecializedSetup<cmds::GetTexParameterfv, 0>(false); 1685 cmds::GetTexParameterfv::Result* result = 1686 static_cast<cmds::GetTexParameterfv::Result*>(shared_memory_address_); 1687 result->size = 0; 1688 cmds::GetTexParameterfv cmd; 1689 cmd.Init( 1690 GL_PROXY_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, shared_memory_id_, 1691 shared_memory_offset_); 1692 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1693 EXPECT_EQ(0u, result->size); 1694 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 1695} 1696 1697TEST_F(GLES2DecoderTest1, GetTexParameterfvInvalidArgs1_0) { 1698 EXPECT_CALL(*gl_, GetTexParameterfv(_, _, _)).Times(0); 1699 SpecializedSetup<cmds::GetTexParameterfv, 0>(false); 1700 cmds::GetTexParameterfv::Result* result = 1701 static_cast<cmds::GetTexParameterfv::Result*>(shared_memory_address_); 1702 result->size = 0; 1703 cmds::GetTexParameterfv cmd; 1704 cmd.Init( 1705 GL_TEXTURE_2D, GL_GENERATE_MIPMAP, shared_memory_id_, 1706 shared_memory_offset_); 1707 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1708 EXPECT_EQ(0u, result->size); 1709 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 1710} 1711 1712TEST_F(GLES2DecoderTest1, GetTexParameterfvInvalidArgs2_0) { 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_); 1717 result->size = 0; 1718 cmds::GetTexParameterfv cmd; 1719 cmd.Init(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, kInvalidSharedMemoryId, 0); 1720 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1721 EXPECT_EQ(0u, result->size); 1722} 1723 1724TEST_F(GLES2DecoderTest1, GetTexParameterfvInvalidArgs2_1) { 1725 EXPECT_CALL(*gl_, GetTexParameterfv(_, _, _)).Times(0); 1726 SpecializedSetup<cmds::GetTexParameterfv, 0>(false); 1727 cmds::GetTexParameterfv::Result* result = 1728 static_cast<cmds::GetTexParameterfv::Result*>(shared_memory_address_); 1729 result->size = 0; 1730 cmds::GetTexParameterfv cmd; 1731 cmd.Init( 1732 GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, shared_memory_id_, 1733 kInvalidSharedMemoryOffset); 1734 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1735 EXPECT_EQ(0u, result->size); 1736} 1737 1738TEST_F(GLES2DecoderTest1, GetTexParameterivValidArgs) { 1739 EXPECT_CALL(*gl_, GetError()) 1740 .WillOnce(Return(GL_NO_ERROR)) 1741 .WillOnce(Return(GL_NO_ERROR)) 1742 .RetiresOnSaturation(); 1743 SpecializedSetup<cmds::GetTexParameteriv, 0>(true); 1744 typedef cmds::GetTexParameteriv::Result Result; 1745 Result* result = static_cast<Result*>(shared_memory_address_); 1746 EXPECT_CALL( 1747 *gl_, GetTexParameteriv( 1748 GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, result->GetData())); 1749 result->size = 0; 1750 cmds::GetTexParameteriv cmd; 1751 cmd.Init( 1752 GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, shared_memory_id_, 1753 shared_memory_offset_); 1754 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1755 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned( 1756 GL_TEXTURE_MAG_FILTER), 1757 result->GetNumResults()); 1758 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1759} 1760 1761TEST_F(GLES2DecoderTest1, GetTexParameterivInvalidArgs0_0) { 1762 EXPECT_CALL(*gl_, GetTexParameteriv(_, _, _)).Times(0); 1763 SpecializedSetup<cmds::GetTexParameteriv, 0>(false); 1764 cmds::GetTexParameteriv::Result* result = 1765 static_cast<cmds::GetTexParameteriv::Result*>(shared_memory_address_); 1766 result->size = 0; 1767 cmds::GetTexParameteriv cmd; 1768 cmd.Init( 1769 GL_PROXY_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, shared_memory_id_, 1770 shared_memory_offset_); 1771 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1772 EXPECT_EQ(0u, result->size); 1773 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 1774} 1775 1776TEST_F(GLES2DecoderTest1, GetTexParameterivInvalidArgs1_0) { 1777 EXPECT_CALL(*gl_, GetTexParameteriv(_, _, _)).Times(0); 1778 SpecializedSetup<cmds::GetTexParameteriv, 0>(false); 1779 cmds::GetTexParameteriv::Result* result = 1780 static_cast<cmds::GetTexParameteriv::Result*>(shared_memory_address_); 1781 result->size = 0; 1782 cmds::GetTexParameteriv cmd; 1783 cmd.Init( 1784 GL_TEXTURE_2D, GL_GENERATE_MIPMAP, shared_memory_id_, 1785 shared_memory_offset_); 1786 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1787 EXPECT_EQ(0u, result->size); 1788 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 1789} 1790 1791TEST_F(GLES2DecoderTest1, GetTexParameterivInvalidArgs2_0) { 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_); 1796 result->size = 0; 1797 cmds::GetTexParameteriv cmd; 1798 cmd.Init(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, kInvalidSharedMemoryId, 0); 1799 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1800 EXPECT_EQ(0u, result->size); 1801} 1802 1803TEST_F(GLES2DecoderTest1, GetTexParameterivInvalidArgs2_1) { 1804 EXPECT_CALL(*gl_, GetTexParameteriv(_, _, _)).Times(0); 1805 SpecializedSetup<cmds::GetTexParameteriv, 0>(false); 1806 cmds::GetTexParameteriv::Result* result = 1807 static_cast<cmds::GetTexParameteriv::Result*>(shared_memory_address_); 1808 result->size = 0; 1809 cmds::GetTexParameteriv cmd; 1810 cmd.Init( 1811 GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, shared_memory_id_, 1812 kInvalidSharedMemoryOffset); 1813 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1814 EXPECT_EQ(0u, result->size); 1815} 1816// TODO(gman): GetUniformfv 1817 1818// TODO(gman): GetUniformiv 1819 1820// TODO(gman): GetUniformLocation 1821 1822// TODO(gman): GetUniformLocationImmediate 1823 1824// TODO(gman): GetUniformLocationBucket 1825 1826 1827TEST_F(GLES2DecoderTest1, GetVertexAttribfvValidArgs) { 1828 SpecializedSetup<cmds::GetVertexAttribfv, 0>(true); 1829 typedef cmds::GetVertexAttribfv::Result Result; 1830 Result* result = static_cast<Result*>(shared_memory_address_); 1831 result->size = 0; 1832 cmds::GetVertexAttribfv cmd; 1833 cmd.Init( 1834 1, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, shared_memory_id_, 1835 shared_memory_offset_); 1836 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1837 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned( 1838 GL_VERTEX_ATTRIB_ARRAY_NORMALIZED), 1839 result->GetNumResults()); 1840 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1841} 1842 1843TEST_F(GLES2DecoderTest1, GetVertexAttribfvInvalidArgs2_0) { 1844 EXPECT_CALL(*gl_, GetVertexAttribfv(_, _, _)).Times(0); 1845 SpecializedSetup<cmds::GetVertexAttribfv, 0>(false); 1846 cmds::GetVertexAttribfv::Result* result = 1847 static_cast<cmds::GetVertexAttribfv::Result*>(shared_memory_address_); 1848 result->size = 0; 1849 cmds::GetVertexAttribfv cmd; 1850 cmd.Init(1, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, kInvalidSharedMemoryId, 0); 1851 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1852 EXPECT_EQ(0u, result->size); 1853} 1854 1855TEST_F(GLES2DecoderTest1, GetVertexAttribfvInvalidArgs2_1) { 1856 EXPECT_CALL(*gl_, GetVertexAttribfv(_, _, _)).Times(0); 1857 SpecializedSetup<cmds::GetVertexAttribfv, 0>(false); 1858 cmds::GetVertexAttribfv::Result* result = 1859 static_cast<cmds::GetVertexAttribfv::Result*>(shared_memory_address_); 1860 result->size = 0; 1861 cmds::GetVertexAttribfv cmd; 1862 cmd.Init( 1863 1, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, shared_memory_id_, 1864 kInvalidSharedMemoryOffset); 1865 EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); 1866 EXPECT_EQ(0u, result->size); 1867} 1868#endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_UNITTEST_1_AUTOGEN_H_ 1869 1870