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_2.cc 12 #ifndef GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_UNITTEST_2_AUTOGEN_H_ 13 #define GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_UNITTEST_2_AUTOGEN_H_ 14 15 TEST_P(GLES2DecoderTest2, ScissorValidArgs) { 16 EXPECT_CALL(*gl_, Scissor(1, 2, 3, 4)); 17 SpecializedSetup<cmds::Scissor, 0>(true); 18 cmds::Scissor cmd; 19 cmd.Init(1, 2, 3, 4); 20 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 21 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 22 } 23 24 TEST_P(GLES2DecoderTest2, ScissorInvalidArgs2_0) { 25 EXPECT_CALL(*gl_, Scissor(_, _, _, _)).Times(0); 26 SpecializedSetup<cmds::Scissor, 0>(false); 27 cmds::Scissor cmd; 28 cmd.Init(1, 2, -1, 4); 29 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 30 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 31 } 32 33 TEST_P(GLES2DecoderTest2, ScissorInvalidArgs3_0) { 34 EXPECT_CALL(*gl_, Scissor(_, _, _, _)).Times(0); 35 SpecializedSetup<cmds::Scissor, 0>(false); 36 cmds::Scissor cmd; 37 cmd.Init(1, 2, 3, -1); 38 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 39 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 40 } 41 // TODO(gman): ShaderBinary 42 43 // TODO(gman): ShaderSourceBucket 44 45 TEST_P(GLES2DecoderTest2, StencilFuncValidArgs) { 46 EXPECT_CALL(*gl_, StencilFunc(GL_NEVER, 2, 3)); 47 SpecializedSetup<cmds::StencilFunc, 0>(true); 48 cmds::StencilFunc cmd; 49 cmd.Init(GL_NEVER, 2, 3); 50 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 51 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 52 } 53 54 TEST_P(GLES2DecoderTest2, StencilFuncSeparateValidArgs) { 55 EXPECT_CALL(*gl_, StencilFuncSeparate(GL_FRONT, GL_NEVER, 3, 4)); 56 SpecializedSetup<cmds::StencilFuncSeparate, 0>(true); 57 cmds::StencilFuncSeparate cmd; 58 cmd.Init(GL_FRONT, GL_NEVER, 3, 4); 59 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 60 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 61 } 62 63 TEST_P(GLES2DecoderTest2, StencilMaskValidArgs) { 64 SpecializedSetup<cmds::StencilMask, 0>(true); 65 cmds::StencilMask cmd; 66 cmd.Init(1); 67 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 68 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 69 } 70 71 TEST_P(GLES2DecoderTest2, StencilMaskSeparateValidArgs) { 72 SpecializedSetup<cmds::StencilMaskSeparate, 0>(true); 73 cmds::StencilMaskSeparate cmd; 74 cmd.Init(GL_FRONT, 2); 75 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 76 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 77 } 78 79 TEST_P(GLES2DecoderTest2, StencilOpValidArgs) { 80 EXPECT_CALL(*gl_, StencilOp(GL_KEEP, GL_INCR, GL_KEEP)); 81 SpecializedSetup<cmds::StencilOp, 0>(true); 82 cmds::StencilOp cmd; 83 cmd.Init(GL_KEEP, GL_INCR, GL_KEEP); 84 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 85 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 86 } 87 88 TEST_P(GLES2DecoderTest2, StencilOpSeparateValidArgs) { 89 EXPECT_CALL(*gl_, StencilOpSeparate(GL_FRONT, GL_INCR, GL_KEEP, GL_KEEP)); 90 SpecializedSetup<cmds::StencilOpSeparate, 0>(true); 91 cmds::StencilOpSeparate cmd; 92 cmd.Init(GL_FRONT, GL_INCR, GL_KEEP, GL_KEEP); 93 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 94 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 95 } 96 // TODO(gman): TexImage2D 97 98 TEST_P(GLES2DecoderTest2, TexParameterfValidArgs) { 99 EXPECT_CALL(*gl_, 100 TexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST)); 101 SpecializedSetup<cmds::TexParameterf, 0>(true); 102 cmds::TexParameterf cmd; 103 cmd.Init(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); 104 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 105 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 106 } 107 108 TEST_P(GLES2DecoderTest2, TexParameterfInvalidArgs0_0) { 109 EXPECT_CALL(*gl_, TexParameterf(_, _, _)).Times(0); 110 SpecializedSetup<cmds::TexParameterf, 0>(false); 111 cmds::TexParameterf cmd; 112 cmd.Init(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); 113 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 114 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 115 } 116 117 TEST_P(GLES2DecoderTest2, TexParameterfInvalidArgs0_1) { 118 EXPECT_CALL(*gl_, TexParameterf(_, _, _)).Times(0); 119 SpecializedSetup<cmds::TexParameterf, 0>(false); 120 cmds::TexParameterf cmd; 121 cmd.Init(GL_TEXTURE_3D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); 122 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 123 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 124 } 125 126 TEST_P(GLES2DecoderTest2, TexParameterfInvalidArgs1_0) { 127 EXPECT_CALL(*gl_, TexParameterf(_, _, _)).Times(0); 128 SpecializedSetup<cmds::TexParameterf, 0>(false); 129 cmds::TexParameterf cmd; 130 cmd.Init(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, GL_NEAREST); 131 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 132 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 133 } 134 135 TEST_P(GLES2DecoderTest2, TexParameterfvImmediateValidArgs) { 136 cmds::TexParameterfvImmediate& cmd = 137 *GetImmediateAs<cmds::TexParameterfvImmediate>(); 138 SpecializedSetup<cmds::TexParameterfvImmediate, 0>(true); 139 GLfloat temp[1] = { 140 GL_NEAREST, 141 }; 142 cmd.Init(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, &temp[0]); 143 EXPECT_CALL( 144 *gl_, 145 TexParameterf(GL_TEXTURE_2D, 146 GL_TEXTURE_MAG_FILTER, 147 *reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd)))); 148 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 149 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 150 } 151 152 TEST_P(GLES2DecoderTest2, TexParameterfvImmediateInvalidArgs0_0) { 153 cmds::TexParameterfvImmediate& cmd = 154 *GetImmediateAs<cmds::TexParameterfvImmediate>(); 155 EXPECT_CALL(*gl_, TexParameterf(_, _, _)).Times(0); 156 SpecializedSetup<cmds::TexParameterfvImmediate, 0>(false); 157 GLfloat temp[1] = { 158 GL_NEAREST, 159 }; 160 cmd.Init(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, &temp[0]); 161 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 162 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 163 } 164 165 TEST_P(GLES2DecoderTest2, TexParameterfvImmediateInvalidArgs0_1) { 166 cmds::TexParameterfvImmediate& cmd = 167 *GetImmediateAs<cmds::TexParameterfvImmediate>(); 168 EXPECT_CALL(*gl_, TexParameterf(_, _, _)).Times(0); 169 SpecializedSetup<cmds::TexParameterfvImmediate, 0>(false); 170 GLfloat temp[1] = { 171 GL_NEAREST, 172 }; 173 cmd.Init(GL_TEXTURE_3D, GL_TEXTURE_MAG_FILTER, &temp[0]); 174 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 175 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 176 } 177 178 TEST_P(GLES2DecoderTest2, TexParameterfvImmediateInvalidArgs1_0) { 179 cmds::TexParameterfvImmediate& cmd = 180 *GetImmediateAs<cmds::TexParameterfvImmediate>(); 181 EXPECT_CALL(*gl_, TexParameterf(_, _, _)).Times(0); 182 SpecializedSetup<cmds::TexParameterfvImmediate, 0>(false); 183 GLfloat temp[1] = { 184 GL_NEAREST, 185 }; 186 cmd.Init(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, &temp[0]); 187 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 188 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 189 } 190 191 TEST_P(GLES2DecoderTest2, TexParameteriValidArgs) { 192 EXPECT_CALL(*gl_, 193 TexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST)); 194 SpecializedSetup<cmds::TexParameteri, 0>(true); 195 cmds::TexParameteri cmd; 196 cmd.Init(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); 197 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 198 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 199 } 200 201 TEST_P(GLES2DecoderTest2, TexParameteriInvalidArgs0_0) { 202 EXPECT_CALL(*gl_, TexParameteri(_, _, _)).Times(0); 203 SpecializedSetup<cmds::TexParameteri, 0>(false); 204 cmds::TexParameteri cmd; 205 cmd.Init(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); 206 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 207 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 208 } 209 210 TEST_P(GLES2DecoderTest2, TexParameteriInvalidArgs0_1) { 211 EXPECT_CALL(*gl_, TexParameteri(_, _, _)).Times(0); 212 SpecializedSetup<cmds::TexParameteri, 0>(false); 213 cmds::TexParameteri cmd; 214 cmd.Init(GL_TEXTURE_3D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); 215 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 216 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 217 } 218 219 TEST_P(GLES2DecoderTest2, TexParameteriInvalidArgs1_0) { 220 EXPECT_CALL(*gl_, TexParameteri(_, _, _)).Times(0); 221 SpecializedSetup<cmds::TexParameteri, 0>(false); 222 cmds::TexParameteri cmd; 223 cmd.Init(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, GL_NEAREST); 224 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 225 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 226 } 227 228 TEST_P(GLES2DecoderTest2, TexParameterivImmediateValidArgs) { 229 cmds::TexParameterivImmediate& cmd = 230 *GetImmediateAs<cmds::TexParameterivImmediate>(); 231 SpecializedSetup<cmds::TexParameterivImmediate, 0>(true); 232 GLint temp[1] = { 233 GL_NEAREST, 234 }; 235 cmd.Init(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, &temp[0]); 236 EXPECT_CALL( 237 *gl_, 238 TexParameteri(GL_TEXTURE_2D, 239 GL_TEXTURE_MAG_FILTER, 240 *reinterpret_cast<GLint*>(ImmediateDataAddress(&cmd)))); 241 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 242 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 243 } 244 245 TEST_P(GLES2DecoderTest2, TexParameterivImmediateInvalidArgs0_0) { 246 cmds::TexParameterivImmediate& cmd = 247 *GetImmediateAs<cmds::TexParameterivImmediate>(); 248 EXPECT_CALL(*gl_, TexParameteri(_, _, _)).Times(0); 249 SpecializedSetup<cmds::TexParameterivImmediate, 0>(false); 250 GLint temp[1] = { 251 GL_NEAREST, 252 }; 253 cmd.Init(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, &temp[0]); 254 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 255 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 256 } 257 258 TEST_P(GLES2DecoderTest2, TexParameterivImmediateInvalidArgs0_1) { 259 cmds::TexParameterivImmediate& cmd = 260 *GetImmediateAs<cmds::TexParameterivImmediate>(); 261 EXPECT_CALL(*gl_, TexParameteri(_, _, _)).Times(0); 262 SpecializedSetup<cmds::TexParameterivImmediate, 0>(false); 263 GLint temp[1] = { 264 GL_NEAREST, 265 }; 266 cmd.Init(GL_TEXTURE_3D, GL_TEXTURE_MAG_FILTER, &temp[0]); 267 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 268 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 269 } 270 271 TEST_P(GLES2DecoderTest2, TexParameterivImmediateInvalidArgs1_0) { 272 cmds::TexParameterivImmediate& cmd = 273 *GetImmediateAs<cmds::TexParameterivImmediate>(); 274 EXPECT_CALL(*gl_, TexParameteri(_, _, _)).Times(0); 275 SpecializedSetup<cmds::TexParameterivImmediate, 0>(false); 276 GLint temp[1] = { 277 GL_NEAREST, 278 }; 279 cmd.Init(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, &temp[0]); 280 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 281 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 282 } 283 // TODO(gman): TexSubImage2D 284 285 TEST_P(GLES2DecoderTest2, Uniform1fValidArgs) { 286 EXPECT_CALL(*gl_, Uniform1fv(1, 1, _)); 287 SpecializedSetup<cmds::Uniform1f, 0>(true); 288 cmds::Uniform1f cmd; 289 cmd.Init(1, 2); 290 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 291 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 292 } 293 294 TEST_P(GLES2DecoderTest2, Uniform1fvImmediateValidArgs) { 295 cmds::Uniform1fvImmediate& cmd = *GetImmediateAs<cmds::Uniform1fvImmediate>(); 296 EXPECT_CALL( 297 *gl_, 298 Uniform1fv(1, 2, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd)))); 299 SpecializedSetup<cmds::Uniform1fvImmediate, 0>(true); 300 GLfloat temp[1 * 2] = { 301 0, 302 }; 303 cmd.Init(1, 2, &temp[0]); 304 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 305 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 306 } 307 // TODO(gman): Uniform1i 308 // TODO(gman): Uniform1ivImmediate 309 310 TEST_P(GLES2DecoderTest2, Uniform2fValidArgs) { 311 EXPECT_CALL(*gl_, Uniform2fv(1, 1, _)); 312 SpecializedSetup<cmds::Uniform2f, 0>(true); 313 cmds::Uniform2f cmd; 314 cmd.Init(1, 2, 3); 315 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 316 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 317 } 318 319 TEST_P(GLES2DecoderTest2, Uniform2fvImmediateValidArgs) { 320 cmds::Uniform2fvImmediate& cmd = *GetImmediateAs<cmds::Uniform2fvImmediate>(); 321 EXPECT_CALL( 322 *gl_, 323 Uniform2fv(1, 2, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd)))); 324 SpecializedSetup<cmds::Uniform2fvImmediate, 0>(true); 325 GLfloat temp[2 * 2] = { 326 0, 327 }; 328 cmd.Init(1, 2, &temp[0]); 329 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 330 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 331 } 332 333 TEST_P(GLES2DecoderTest2, Uniform2iValidArgs) { 334 EXPECT_CALL(*gl_, Uniform2iv(1, 1, _)); 335 SpecializedSetup<cmds::Uniform2i, 0>(true); 336 cmds::Uniform2i cmd; 337 cmd.Init(1, 2, 3); 338 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 339 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 340 } 341 342 TEST_P(GLES2DecoderTest2, Uniform2ivImmediateValidArgs) { 343 cmds::Uniform2ivImmediate& cmd = *GetImmediateAs<cmds::Uniform2ivImmediate>(); 344 EXPECT_CALL( 345 *gl_, 346 Uniform2iv(1, 2, reinterpret_cast<GLint*>(ImmediateDataAddress(&cmd)))); 347 SpecializedSetup<cmds::Uniform2ivImmediate, 0>(true); 348 GLint temp[2 * 2] = { 349 0, 350 }; 351 cmd.Init(1, 2, &temp[0]); 352 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 353 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 354 } 355 356 TEST_P(GLES2DecoderTest2, Uniform3fValidArgs) { 357 EXPECT_CALL(*gl_, Uniform3fv(1, 1, _)); 358 SpecializedSetup<cmds::Uniform3f, 0>(true); 359 cmds::Uniform3f cmd; 360 cmd.Init(1, 2, 3, 4); 361 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 362 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 363 } 364 365 TEST_P(GLES2DecoderTest2, Uniform3fvImmediateValidArgs) { 366 cmds::Uniform3fvImmediate& cmd = *GetImmediateAs<cmds::Uniform3fvImmediate>(); 367 EXPECT_CALL( 368 *gl_, 369 Uniform3fv(1, 2, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd)))); 370 SpecializedSetup<cmds::Uniform3fvImmediate, 0>(true); 371 GLfloat temp[3 * 2] = { 372 0, 373 }; 374 cmd.Init(1, 2, &temp[0]); 375 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 376 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 377 } 378 379 TEST_P(GLES2DecoderTest2, Uniform3iValidArgs) { 380 EXPECT_CALL(*gl_, Uniform3iv(1, 1, _)); 381 SpecializedSetup<cmds::Uniform3i, 0>(true); 382 cmds::Uniform3i cmd; 383 cmd.Init(1, 2, 3, 4); 384 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 385 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 386 } 387 388 TEST_P(GLES2DecoderTest2, Uniform3ivImmediateValidArgs) { 389 cmds::Uniform3ivImmediate& cmd = *GetImmediateAs<cmds::Uniform3ivImmediate>(); 390 EXPECT_CALL( 391 *gl_, 392 Uniform3iv(1, 2, reinterpret_cast<GLint*>(ImmediateDataAddress(&cmd)))); 393 SpecializedSetup<cmds::Uniform3ivImmediate, 0>(true); 394 GLint temp[3 * 2] = { 395 0, 396 }; 397 cmd.Init(1, 2, &temp[0]); 398 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 399 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 400 } 401 402 TEST_P(GLES2DecoderTest2, Uniform4fValidArgs) { 403 EXPECT_CALL(*gl_, Uniform4fv(1, 1, _)); 404 SpecializedSetup<cmds::Uniform4f, 0>(true); 405 cmds::Uniform4f cmd; 406 cmd.Init(1, 2, 3, 4, 5); 407 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 408 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 409 } 410 411 TEST_P(GLES2DecoderTest2, Uniform4fvImmediateValidArgs) { 412 cmds::Uniform4fvImmediate& cmd = *GetImmediateAs<cmds::Uniform4fvImmediate>(); 413 EXPECT_CALL( 414 *gl_, 415 Uniform4fv(1, 2, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd)))); 416 SpecializedSetup<cmds::Uniform4fvImmediate, 0>(true); 417 GLfloat temp[4 * 2] = { 418 0, 419 }; 420 cmd.Init(1, 2, &temp[0]); 421 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 422 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 423 } 424 425 TEST_P(GLES2DecoderTest2, Uniform4iValidArgs) { 426 EXPECT_CALL(*gl_, Uniform4iv(1, 1, _)); 427 SpecializedSetup<cmds::Uniform4i, 0>(true); 428 cmds::Uniform4i cmd; 429 cmd.Init(1, 2, 3, 4, 5); 430 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 431 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 432 } 433 434 TEST_P(GLES2DecoderTest2, Uniform4ivImmediateValidArgs) { 435 cmds::Uniform4ivImmediate& cmd = *GetImmediateAs<cmds::Uniform4ivImmediate>(); 436 EXPECT_CALL( 437 *gl_, 438 Uniform4iv(1, 2, reinterpret_cast<GLint*>(ImmediateDataAddress(&cmd)))); 439 SpecializedSetup<cmds::Uniform4ivImmediate, 0>(true); 440 GLint temp[4 * 2] = { 441 0, 442 }; 443 cmd.Init(1, 2, &temp[0]); 444 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 445 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 446 } 447 448 TEST_P(GLES2DecoderTest2, UniformMatrix2fvImmediateValidArgs) { 449 cmds::UniformMatrix2fvImmediate& cmd = 450 *GetImmediateAs<cmds::UniformMatrix2fvImmediate>(); 451 EXPECT_CALL( 452 *gl_, 453 UniformMatrix2fv( 454 1, 2, false, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd)))); 455 SpecializedSetup<cmds::UniformMatrix2fvImmediate, 0>(true); 456 GLfloat temp[4 * 2] = { 457 0, 458 }; 459 cmd.Init(1, 2, &temp[0]); 460 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 461 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 462 } 463 464 TEST_P(GLES2DecoderTest2, UniformMatrix3fvImmediateValidArgs) { 465 cmds::UniformMatrix3fvImmediate& cmd = 466 *GetImmediateAs<cmds::UniformMatrix3fvImmediate>(); 467 EXPECT_CALL( 468 *gl_, 469 UniformMatrix3fv( 470 1, 2, false, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd)))); 471 SpecializedSetup<cmds::UniformMatrix3fvImmediate, 0>(true); 472 GLfloat temp[9 * 2] = { 473 0, 474 }; 475 cmd.Init(1, 2, &temp[0]); 476 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 477 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 478 } 479 480 TEST_P(GLES2DecoderTest2, UniformMatrix4fvImmediateValidArgs) { 481 cmds::UniformMatrix4fvImmediate& cmd = 482 *GetImmediateAs<cmds::UniformMatrix4fvImmediate>(); 483 EXPECT_CALL( 484 *gl_, 485 UniformMatrix4fv( 486 1, 2, false, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd)))); 487 SpecializedSetup<cmds::UniformMatrix4fvImmediate, 0>(true); 488 GLfloat temp[16 * 2] = { 489 0, 490 }; 491 cmd.Init(1, 2, &temp[0]); 492 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 493 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 494 } 495 496 TEST_P(GLES2DecoderTest2, UseProgramValidArgs) { 497 EXPECT_CALL(*gl_, UseProgram(kServiceProgramId)); 498 SpecializedSetup<cmds::UseProgram, 0>(true); 499 cmds::UseProgram cmd; 500 cmd.Init(client_program_id_); 501 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 502 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 503 } 504 505 TEST_P(GLES2DecoderTest2, UseProgramInvalidArgs0_0) { 506 EXPECT_CALL(*gl_, UseProgram(_)).Times(0); 507 SpecializedSetup<cmds::UseProgram, 0>(false); 508 cmds::UseProgram cmd; 509 cmd.Init(kInvalidClientId); 510 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 511 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 512 } 513 514 TEST_P(GLES2DecoderTest2, ValidateProgramValidArgs) { 515 EXPECT_CALL(*gl_, ValidateProgram(kServiceProgramId)); 516 SpecializedSetup<cmds::ValidateProgram, 0>(true); 517 cmds::ValidateProgram cmd; 518 cmd.Init(client_program_id_); 519 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 520 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 521 } 522 523 TEST_P(GLES2DecoderTest2, VertexAttrib1fValidArgs) { 524 EXPECT_CALL(*gl_, VertexAttrib1f(1, 2)); 525 SpecializedSetup<cmds::VertexAttrib1f, 0>(true); 526 cmds::VertexAttrib1f cmd; 527 cmd.Init(1, 2); 528 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 529 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 530 } 531 532 TEST_P(GLES2DecoderTest2, VertexAttrib1fvImmediateValidArgs) { 533 cmds::VertexAttrib1fvImmediate& cmd = 534 *GetImmediateAs<cmds::VertexAttrib1fvImmediate>(); 535 SpecializedSetup<cmds::VertexAttrib1fvImmediate, 0>(true); 536 GLfloat temp[1] = { 537 0, 538 }; 539 cmd.Init(1, &temp[0]); 540 EXPECT_CALL(*gl_, 541 VertexAttrib1fv( 542 1, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd)))); 543 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 544 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 545 } 546 547 TEST_P(GLES2DecoderTest2, VertexAttrib2fValidArgs) { 548 EXPECT_CALL(*gl_, VertexAttrib2f(1, 2, 3)); 549 SpecializedSetup<cmds::VertexAttrib2f, 0>(true); 550 cmds::VertexAttrib2f cmd; 551 cmd.Init(1, 2, 3); 552 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 553 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 554 } 555 556 TEST_P(GLES2DecoderTest2, VertexAttrib2fvImmediateValidArgs) { 557 cmds::VertexAttrib2fvImmediate& cmd = 558 *GetImmediateAs<cmds::VertexAttrib2fvImmediate>(); 559 SpecializedSetup<cmds::VertexAttrib2fvImmediate, 0>(true); 560 GLfloat temp[2] = { 561 0, 562 }; 563 cmd.Init(1, &temp[0]); 564 EXPECT_CALL(*gl_, 565 VertexAttrib2fv( 566 1, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd)))); 567 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 568 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 569 } 570 571 TEST_P(GLES2DecoderTest2, VertexAttrib3fValidArgs) { 572 EXPECT_CALL(*gl_, VertexAttrib3f(1, 2, 3, 4)); 573 SpecializedSetup<cmds::VertexAttrib3f, 0>(true); 574 cmds::VertexAttrib3f cmd; 575 cmd.Init(1, 2, 3, 4); 576 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 577 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 578 } 579 580 TEST_P(GLES2DecoderTest2, VertexAttrib3fvImmediateValidArgs) { 581 cmds::VertexAttrib3fvImmediate& cmd = 582 *GetImmediateAs<cmds::VertexAttrib3fvImmediate>(); 583 SpecializedSetup<cmds::VertexAttrib3fvImmediate, 0>(true); 584 GLfloat temp[3] = { 585 0, 586 }; 587 cmd.Init(1, &temp[0]); 588 EXPECT_CALL(*gl_, 589 VertexAttrib3fv( 590 1, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd)))); 591 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 592 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 593 } 594 595 TEST_P(GLES2DecoderTest2, VertexAttrib4fValidArgs) { 596 EXPECT_CALL(*gl_, VertexAttrib4f(1, 2, 3, 4, 5)); 597 SpecializedSetup<cmds::VertexAttrib4f, 0>(true); 598 cmds::VertexAttrib4f cmd; 599 cmd.Init(1, 2, 3, 4, 5); 600 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 601 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 602 } 603 604 TEST_P(GLES2DecoderTest2, VertexAttrib4fvImmediateValidArgs) { 605 cmds::VertexAttrib4fvImmediate& cmd = 606 *GetImmediateAs<cmds::VertexAttrib4fvImmediate>(); 607 SpecializedSetup<cmds::VertexAttrib4fvImmediate, 0>(true); 608 GLfloat temp[4] = { 609 0, 610 }; 611 cmd.Init(1, &temp[0]); 612 EXPECT_CALL(*gl_, 613 VertexAttrib4fv( 614 1, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd)))); 615 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 616 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 617 } 618 // TODO(gman): VertexAttribPointer 619 620 TEST_P(GLES2DecoderTest2, ViewportValidArgs) { 621 EXPECT_CALL(*gl_, Viewport(1, 2, 3, 4)); 622 SpecializedSetup<cmds::Viewport, 0>(true); 623 cmds::Viewport cmd; 624 cmd.Init(1, 2, 3, 4); 625 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 626 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 627 } 628 629 TEST_P(GLES2DecoderTest2, ViewportInvalidArgs2_0) { 630 EXPECT_CALL(*gl_, Viewport(_, _, _, _)).Times(0); 631 SpecializedSetup<cmds::Viewport, 0>(false); 632 cmds::Viewport cmd; 633 cmd.Init(1, 2, -1, 4); 634 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 635 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 636 } 637 638 TEST_P(GLES2DecoderTest2, ViewportInvalidArgs3_0) { 639 EXPECT_CALL(*gl_, Viewport(_, _, _, _)).Times(0); 640 SpecializedSetup<cmds::Viewport, 0>(false); 641 cmds::Viewport cmd; 642 cmd.Init(1, 2, 3, -1); 643 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 644 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 645 } 646 // TODO(gman): TexStorage2DEXT 647 // TODO(gman): GenQueriesEXTImmediate 648 // TODO(gman): DeleteQueriesEXTImmediate 649 // TODO(gman): BeginQueryEXT 650 651 // TODO(gman): EndQueryEXT 652 653 // TODO(gman): InsertEventMarkerEXT 654 655 // TODO(gman): PushGroupMarkerEXT 656 657 TEST_P(GLES2DecoderTest2, PopGroupMarkerEXTValidArgs) { 658 SpecializedSetup<cmds::PopGroupMarkerEXT, 0>(true); 659 cmds::PopGroupMarkerEXT cmd; 660 cmd.Init(); 661 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 662 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 663 } 664 // TODO(gman): GenVertexArraysOESImmediate 665 // TODO(gman): DeleteVertexArraysOESImmediate 666 // TODO(gman): IsVertexArrayOES 667 // TODO(gman): BindVertexArrayOES 668 // TODO(gman): SwapBuffers 669 // TODO(gman): GetMaxValueInBufferCHROMIUM 670 // TODO(gman): GenSharedIdsCHROMIUM 671 672 // TODO(gman): DeleteSharedIdsCHROMIUM 673 674 // TODO(gman): RegisterSharedIdsCHROMIUM 675 676 // TODO(gman): EnableFeatureCHROMIUM 677 678 // TODO(gman): ResizeCHROMIUM 679 // TODO(gman): GetRequestableExtensionsCHROMIUM 680 681 // TODO(gman): RequestExtensionCHROMIUM 682 683 // TODO(gman): GetMultipleIntegervCHROMIUM 684 685 // TODO(gman): GetProgramInfoCHROMIUM 686 687 // TODO(gman): GetTranslatedShaderSourceANGLE 688 // TODO(gman): PostSubBufferCHROMIUM 689 // TODO(gman): TexImageIOSurface2DCHROMIUM 690 // TODO(gman): CopyTextureCHROMIUM 691 // TODO(gman): DrawArraysInstancedANGLE 692 // TODO(gman): DrawElementsInstancedANGLE 693 // TODO(gman): VertexAttribDivisorANGLE 694 // TODO(gman): GenMailboxCHROMIUM 695 696 // TODO(gman): ProduceTextureCHROMIUMImmediate 697 // TODO(gman): ProduceTextureDirectCHROMIUMImmediate 698 // TODO(gman): ConsumeTextureCHROMIUMImmediate 699 // TODO(gman): CreateAndConsumeTextureCHROMIUMImmediate 700 // TODO(gman): BindUniformLocationCHROMIUMBucket 701 // TODO(gman): BindTexImage2DCHROMIUM 702 // TODO(gman): ReleaseTexImage2DCHROMIUM 703 // TODO(gman): TraceBeginCHROMIUM 704 705 // TODO(gman): TraceEndCHROMIUM 706 // TODO(gman): AsyncTexSubImage2DCHROMIUM 707 708 // TODO(gman): AsyncTexImage2DCHROMIUM 709 710 // TODO(gman): WaitAsyncTexImage2DCHROMIUM 711 712 // TODO(gman): WaitAllAsyncTexImage2DCHROMIUM 713 714 // TODO(gman): LoseContextCHROMIUM 715 // TODO(gman): InsertSyncPointCHROMIUM 716 717 // TODO(gman): WaitSyncPointCHROMIUM 718 719 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_UNITTEST_2_AUTOGEN_H_ 720