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 15TEST_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 24TEST_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 33TEST_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 45TEST_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 54TEST_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 63TEST_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 71TEST_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 79TEST_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 88TEST_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 98TEST_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 108TEST_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 117TEST_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 126TEST_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 135TEST_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 152TEST_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 165TEST_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 178TEST_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 191TEST_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 201TEST_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 210TEST_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 219TEST_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 228TEST_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 245TEST_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 258TEST_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 271TEST_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 285TEST_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 294TEST_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 310TEST_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 319TEST_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 333TEST_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 342TEST_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 356TEST_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 365TEST_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 379TEST_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 388TEST_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 402TEST_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 411TEST_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 425TEST_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 434TEST_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 448TEST_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 464TEST_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 480TEST_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 496TEST_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 505TEST_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 514TEST_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 523TEST_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 532TEST_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 547TEST_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 556TEST_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 571TEST_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 580TEST_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 595TEST_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 604TEST_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 620TEST_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 629TEST_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 638TEST_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): BlitFramebufferCHROMIUM 647// TODO(gman): RenderbufferStorageMultisampleCHROMIUM 648// TODO(gman): RenderbufferStorageMultisampleEXT 649// TODO(gman): FramebufferTexture2DMultisampleEXT 650// TODO(gman): TexStorage2DEXT 651// TODO(gman): GenQueriesEXTImmediate 652// TODO(gman): DeleteQueriesEXTImmediate 653// TODO(gman): BeginQueryEXT 654 655// TODO(gman): EndQueryEXT 656 657// TODO(gman): InsertEventMarkerEXT 658 659// TODO(gman): PushGroupMarkerEXT 660 661TEST_P(GLES2DecoderTest2, PopGroupMarkerEXTValidArgs) { 662 SpecializedSetup<cmds::PopGroupMarkerEXT, 0>(true); 663 cmds::PopGroupMarkerEXT cmd; 664 cmd.Init(); 665 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 666 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 667} 668// TODO(gman): GenVertexArraysOESImmediate 669// TODO(gman): DeleteVertexArraysOESImmediate 670// TODO(gman): IsVertexArrayOES 671// TODO(gman): BindVertexArrayOES 672// TODO(gman): SwapBuffers 673// TODO(gman): GetMaxValueInBufferCHROMIUM 674// TODO(gman): GenSharedIdsCHROMIUM 675 676// TODO(gman): DeleteSharedIdsCHROMIUM 677 678// TODO(gman): RegisterSharedIdsCHROMIUM 679 680// TODO(gman): EnableFeatureCHROMIUM 681 682// TODO(gman): ResizeCHROMIUM 683// TODO(gman): GetRequestableExtensionsCHROMIUM 684 685// TODO(gman): RequestExtensionCHROMIUM 686 687// TODO(gman): GetMultipleIntegervCHROMIUM 688 689// TODO(gman): GetProgramInfoCHROMIUM 690 691// TODO(gman): GetTranslatedShaderSourceANGLE 692// TODO(gman): PostSubBufferCHROMIUM 693// TODO(gman): TexImageIOSurface2DCHROMIUM 694// TODO(gman): CopyTextureCHROMIUM 695// TODO(gman): DrawArraysInstancedANGLE 696// TODO(gman): DrawElementsInstancedANGLE 697// TODO(gman): VertexAttribDivisorANGLE 698// TODO(gman): GenMailboxCHROMIUM 699 700// TODO(gman): ProduceTextureCHROMIUMImmediate 701// TODO(gman): ProduceTextureDirectCHROMIUMImmediate 702// TODO(gman): ConsumeTextureCHROMIUMImmediate 703// TODO(gman): CreateAndConsumeTextureCHROMIUMImmediate 704// TODO(gman): BindUniformLocationCHROMIUMBucket 705// TODO(gman): BindTexImage2DCHROMIUM 706// TODO(gman): ReleaseTexImage2DCHROMIUM 707// TODO(gman): TraceBeginCHROMIUM 708 709// TODO(gman): TraceEndCHROMIUM 710// TODO(gman): AsyncTexSubImage2DCHROMIUM 711 712// TODO(gman): AsyncTexImage2DCHROMIUM 713 714// TODO(gman): WaitAsyncTexImage2DCHROMIUM 715 716// TODO(gman): WaitAllAsyncTexImage2DCHROMIUM 717 718// TODO(gman): DiscardFramebufferEXTImmediate 719// TODO(gman): LoseContextCHROMIUM 720// TODO(gman): InsertSyncPointCHROMIUM 721 722// TODO(gman): WaitSyncPointCHROMIUM 723 724#endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_UNITTEST_2_AUTOGEN_H_ 725