| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "gpu/command_buffer/service/gles2_cmd_decoder.h" | 5 #include "gpu/command_buffer/service/gles2_cmd_decoder.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/strings/string_number_conversions.h" | 8 #include "base/strings/string_number_conversions.h" |
| 9 #include "gpu/command_buffer/common/gles2_cmd_format.h" | 9 #include "gpu/command_buffer/common/gles2_cmd_format.h" |
| 10 #include "gpu/command_buffer/common/gles2_cmd_utils.h" | 10 #include "gpu/command_buffer/common/gles2_cmd_utils.h" |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 47 using ::testing::SetArgumentPointee; | 47 using ::testing::SetArgumentPointee; |
| 48 using ::testing::SetArgPointee; | 48 using ::testing::SetArgPointee; |
| 49 using ::testing::StrEq; | 49 using ::testing::StrEq; |
| 50 using ::testing::StrictMock; | 50 using ::testing::StrictMock; |
| 51 | 51 |
| 52 namespace gpu { | 52 namespace gpu { |
| 53 namespace gles2 { | 53 namespace gles2 { |
| 54 | 54 |
| 55 using namespace cmds; | 55 using namespace cmds; |
| 56 | 56 |
| 57 TEST_F(GLES2DecoderWithShaderTest, GetVertexAttribPointervSucceeds) { | 57 TEST_P(GLES2DecoderWithShaderTest, GetVertexAttribPointervSucceeds) { |
| 58 const float dummy = 0; | 58 const float dummy = 0; |
| 59 const GLuint kOffsetToTestFor = sizeof(dummy) * 4; | 59 const GLuint kOffsetToTestFor = sizeof(dummy) * 4; |
| 60 const GLuint kIndexToTest = 1; | 60 const GLuint kIndexToTest = 1; |
| 61 GetVertexAttribPointerv::Result* result = | 61 GetVertexAttribPointerv::Result* result = |
| 62 static_cast<GetVertexAttribPointerv::Result*>(shared_memory_address_); | 62 static_cast<GetVertexAttribPointerv::Result*>(shared_memory_address_); |
| 63 result->size = 0; | 63 result->size = 0; |
| 64 const GLuint* result_value = result->GetData(); | 64 const GLuint* result_value = result->GetData(); |
| 65 // Test that initial value is 0. | 65 // Test that initial value is 0. |
| 66 GetVertexAttribPointerv cmd; | 66 GetVertexAttribPointerv cmd; |
| 67 cmd.Init(kIndexToTest, | 67 cmd.Init(kIndexToTest, |
| 68 GL_VERTEX_ATTRIB_ARRAY_POINTER, | 68 GL_VERTEX_ATTRIB_ARRAY_POINTER, |
| 69 shared_memory_id_, | 69 shared_memory_id_, |
| 70 shared_memory_offset_); | 70 shared_memory_offset_); |
| 71 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 71 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| 72 EXPECT_EQ(sizeof(*result_value), result->size); | 72 EXPECT_EQ(sizeof(*result_value), result->size); |
| 73 EXPECT_EQ(0u, *result_value); | 73 EXPECT_EQ(0u, *result_value); |
| 74 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 74 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| 75 | 75 |
| 76 // Set the value and see that we get it. | 76 // Set the value and see that we get it. |
| 77 SetupVertexBuffer(); | 77 SetupVertexBuffer(); |
| 78 DoVertexAttribPointer(kIndexToTest, 2, GL_FLOAT, 0, kOffsetToTestFor); | 78 DoVertexAttribPointer(kIndexToTest, 2, GL_FLOAT, 0, kOffsetToTestFor); |
| 79 result->size = 0; | 79 result->size = 0; |
| 80 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 80 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| 81 EXPECT_EQ(sizeof(*result_value), result->size); | 81 EXPECT_EQ(sizeof(*result_value), result->size); |
| 82 EXPECT_EQ(kOffsetToTestFor, *result_value); | 82 EXPECT_EQ(kOffsetToTestFor, *result_value); |
| 83 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 83 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| 84 } | 84 } |
| 85 | 85 |
| 86 TEST_F(GLES2DecoderWithShaderTest, GetVertexAttribPointervBadArgsFails) { | 86 TEST_P(GLES2DecoderWithShaderTest, GetVertexAttribPointervBadArgsFails) { |
| 87 const GLuint kIndexToTest = 1; | 87 const GLuint kIndexToTest = 1; |
| 88 GetVertexAttribPointerv::Result* result = | 88 GetVertexAttribPointerv::Result* result = |
| 89 static_cast<GetVertexAttribPointerv::Result*>(shared_memory_address_); | 89 static_cast<GetVertexAttribPointerv::Result*>(shared_memory_address_); |
| 90 result->size = 0; | 90 result->size = 0; |
| 91 const GLuint* result_value = result->GetData(); | 91 const GLuint* result_value = result->GetData(); |
| 92 // Test pname invalid fails. | 92 // Test pname invalid fails. |
| 93 GetVertexAttribPointerv cmd; | 93 GetVertexAttribPointerv cmd; |
| 94 cmd.Init(kIndexToTest, | 94 cmd.Init(kIndexToTest, |
| 95 GL_VERTEX_ATTRIB_ARRAY_POINTER + 1, | 95 GL_VERTEX_ATTRIB_ARRAY_POINTER + 1, |
| 96 shared_memory_id_, | 96 shared_memory_id_, |
| (...skipping 22 matching lines...) Expand all Loading... |
| 119 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); | 119 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); |
| 120 | 120 |
| 121 // Test memory offset bad fails. | 121 // Test memory offset bad fails. |
| 122 cmd.Init(kIndexToTest, | 122 cmd.Init(kIndexToTest, |
| 123 GL_VERTEX_ATTRIB_ARRAY_POINTER, | 123 GL_VERTEX_ATTRIB_ARRAY_POINTER, |
| 124 shared_memory_id_, | 124 shared_memory_id_, |
| 125 kInvalidSharedMemoryOffset); | 125 kInvalidSharedMemoryOffset); |
| 126 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); | 126 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); |
| 127 } | 127 } |
| 128 | 128 |
| 129 TEST_F(GLES2DecoderWithShaderTest, BindBufferToDifferentTargetFails) { | 129 TEST_P(GLES2DecoderWithShaderTest, BindBufferToDifferentTargetFails) { |
| 130 // Bind the buffer to GL_ARRAY_BUFFER | 130 // Bind the buffer to GL_ARRAY_BUFFER |
| 131 DoBindBuffer(GL_ARRAY_BUFFER, client_buffer_id_, kServiceBufferId); | 131 DoBindBuffer(GL_ARRAY_BUFFER, client_buffer_id_, kServiceBufferId); |
| 132 // Attempt to rebind to GL_ELEMENT_ARRAY_BUFFER | 132 // Attempt to rebind to GL_ELEMENT_ARRAY_BUFFER |
| 133 // NOTE: Real GLES2 does not have this restriction but WebGL and we do. | 133 // NOTE: Real GLES2 does not have this restriction but WebGL and we do. |
| 134 // This can be restriction can be removed at runtime. | 134 // This can be restriction can be removed at runtime. |
| 135 EXPECT_CALL(*gl_, BindBuffer(_, _)).Times(0); | 135 EXPECT_CALL(*gl_, BindBuffer(_, _)).Times(0); |
| 136 BindBuffer cmd; | 136 BindBuffer cmd; |
| 137 cmd.Init(GL_ELEMENT_ARRAY_BUFFER, client_buffer_id_); | 137 cmd.Init(GL_ELEMENT_ARRAY_BUFFER, client_buffer_id_); |
| 138 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 138 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| 139 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); | 139 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); |
| 140 } | 140 } |
| 141 | 141 |
| 142 TEST_F(GLES2DecoderWithShaderTest, VertexAttribPointer) { | 142 TEST_P(GLES2DecoderWithShaderTest, VertexAttribPointer) { |
| 143 SetupVertexBuffer(); | 143 SetupVertexBuffer(); |
| 144 static const GLenum types[] = { | 144 static const GLenum types[] = { |
| 145 GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, | 145 GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, |
| 146 GL_FLOAT, GL_FIXED, GL_INT, GL_UNSIGNED_INT, | 146 GL_FLOAT, GL_FIXED, GL_INT, GL_UNSIGNED_INT, |
| 147 }; | 147 }; |
| 148 static const GLsizei sizes[] = { | 148 static const GLsizei sizes[] = { |
| 149 1, 1, 2, 2, 4, 4, 4, 4, | 149 1, 1, 2, 2, 4, 4, 4, 4, |
| 150 }; | 150 }; |
| 151 static const GLuint indices[] = { | 151 static const GLuint indices[] = { |
| 152 0, 1, kNumVertexAttribs - 1, kNumVertexAttribs, | 152 0, 1, kNumVertexAttribs - 1, kNumVertexAttribs, |
| (...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 378 } | 378 } |
| 379 | 379 |
| 380 void BindVertexArrayOESValidArgsNewId() { | 380 void BindVertexArrayOESValidArgsNewId() { |
| 381 BindVertexArrayOES cmd; | 381 BindVertexArrayOES cmd; |
| 382 cmd.Init(kNewClientId); | 382 cmd.Init(kNewClientId); |
| 383 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 383 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| 384 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); | 384 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); |
| 385 } | 385 } |
| 386 }; | 386 }; |
| 387 | 387 |
| 388 INSTANTIATE_TEST_CASE_P(Service, |
| 389 GLES2DecoderVertexArraysOESTest, |
| 390 ::testing::Bool()); |
| 391 |
| 388 class GLES2DecoderEmulatedVertexArraysOESTest | 392 class GLES2DecoderEmulatedVertexArraysOESTest |
| 389 : public GLES2DecoderVertexArraysOESTest { | 393 : public GLES2DecoderVertexArraysOESTest { |
| 390 public: | 394 public: |
| 391 GLES2DecoderEmulatedVertexArraysOESTest() {} | 395 GLES2DecoderEmulatedVertexArraysOESTest() {} |
| 392 | 396 |
| 393 virtual void SetUp() { | 397 virtual void SetUp() { |
| 394 InitState init; | 398 InitState init; |
| 395 init.gl_version = "3.0"; | 399 init.gl_version = "3.0"; |
| 396 init.bind_generates_resource = true; | 400 init.bind_generates_resource = true; |
| 397 InitDecoder(init); | 401 InitDecoder(init); |
| 398 SetupDefaultProgram(); | 402 SetupDefaultProgram(); |
| 399 | 403 |
| 400 AddExpectationsForGenVertexArraysOES(); | 404 AddExpectationsForGenVertexArraysOES(); |
| 401 GenHelper<GenVertexArraysOESImmediate>(client_vertexarray_id_); | 405 GenHelper<GenVertexArraysOESImmediate>(client_vertexarray_id_); |
| 402 | 406 |
| 403 vertex_array_deleted_manually_ = false; | 407 vertex_array_deleted_manually_ = false; |
| 404 } | 408 } |
| 405 }; | 409 }; |
| 406 | 410 |
| 411 INSTANTIATE_TEST_CASE_P(Service, |
| 412 GLES2DecoderEmulatedVertexArraysOESTest, |
| 413 ::testing::Bool()); |
| 414 |
| 407 // Test vertex array objects with native support | 415 // Test vertex array objects with native support |
| 408 TEST_F(GLES2DecoderVertexArraysOESTest, GenVertexArraysOESValidArgs) { | 416 TEST_P(GLES2DecoderVertexArraysOESTest, GenVertexArraysOESValidArgs) { |
| 409 GenVertexArraysOESValidArgs(); | 417 GenVertexArraysOESValidArgs(); |
| 410 } | 418 } |
| 411 TEST_F(GLES2DecoderEmulatedVertexArraysOESTest, GenVertexArraysOESValidArgs) { | 419 TEST_P(GLES2DecoderEmulatedVertexArraysOESTest, GenVertexArraysOESValidArgs) { |
| 412 GenVertexArraysOESValidArgs(); | 420 GenVertexArraysOESValidArgs(); |
| 413 } | 421 } |
| 414 | 422 |
| 415 TEST_F(GLES2DecoderVertexArraysOESTest, GenVertexArraysOESInvalidArgs) { | 423 TEST_P(GLES2DecoderVertexArraysOESTest, GenVertexArraysOESInvalidArgs) { |
| 416 GenVertexArraysOESInvalidArgs(); | 424 GenVertexArraysOESInvalidArgs(); |
| 417 } | 425 } |
| 418 TEST_F(GLES2DecoderEmulatedVertexArraysOESTest, ) { | 426 TEST_P(GLES2DecoderEmulatedVertexArraysOESTest, ) { |
| 419 GenVertexArraysOESInvalidArgs(); | 427 GenVertexArraysOESInvalidArgs(); |
| 420 } | 428 } |
| 421 | 429 |
| 422 TEST_F(GLES2DecoderVertexArraysOESTest, GenVertexArraysOESImmediateValidArgs) { | 430 TEST_P(GLES2DecoderVertexArraysOESTest, GenVertexArraysOESImmediateValidArgs) { |
| 423 GenVertexArraysOESImmediateValidArgs(); | 431 GenVertexArraysOESImmediateValidArgs(); |
| 424 } | 432 } |
| 425 TEST_F(GLES2DecoderEmulatedVertexArraysOESTest, | 433 TEST_P(GLES2DecoderEmulatedVertexArraysOESTest, |
| 426 GenVertexArraysOESImmediateValidArgs) { | 434 GenVertexArraysOESImmediateValidArgs) { |
| 427 GenVertexArraysOESImmediateValidArgs(); | 435 GenVertexArraysOESImmediateValidArgs(); |
| 428 } | 436 } |
| 429 | 437 |
| 430 TEST_F(GLES2DecoderVertexArraysOESTest, | 438 TEST_P(GLES2DecoderVertexArraysOESTest, |
| 431 GenVertexArraysOESImmediateInvalidArgs) { | 439 GenVertexArraysOESImmediateInvalidArgs) { |
| 432 GenVertexArraysOESImmediateInvalidArgs(); | 440 GenVertexArraysOESImmediateInvalidArgs(); |
| 433 } | 441 } |
| 434 TEST_F(GLES2DecoderEmulatedVertexArraysOESTest, | 442 TEST_P(GLES2DecoderEmulatedVertexArraysOESTest, |
| 435 GenVertexArraysOESImmediateInvalidArgs) { | 443 GenVertexArraysOESImmediateInvalidArgs) { |
| 436 GenVertexArraysOESImmediateInvalidArgs(); | 444 GenVertexArraysOESImmediateInvalidArgs(); |
| 437 } | 445 } |
| 438 | 446 |
| 439 TEST_F(GLES2DecoderVertexArraysOESTest, DeleteVertexArraysOESValidArgs) { | 447 TEST_P(GLES2DecoderVertexArraysOESTest, DeleteVertexArraysOESValidArgs) { |
| 440 DeleteVertexArraysOESValidArgs(); | 448 DeleteVertexArraysOESValidArgs(); |
| 441 } | 449 } |
| 442 TEST_F(GLES2DecoderEmulatedVertexArraysOESTest, | 450 TEST_P(GLES2DecoderEmulatedVertexArraysOESTest, |
| 443 DeleteVertexArraysOESValidArgs) { | 451 DeleteVertexArraysOESValidArgs) { |
| 444 DeleteVertexArraysOESValidArgs(); | 452 DeleteVertexArraysOESValidArgs(); |
| 445 } | 453 } |
| 446 | 454 |
| 447 TEST_F(GLES2DecoderVertexArraysOESTest, DeleteVertexArraysOESInvalidArgs) { | 455 TEST_P(GLES2DecoderVertexArraysOESTest, DeleteVertexArraysOESInvalidArgs) { |
| 448 DeleteVertexArraysOESInvalidArgs(); | 456 DeleteVertexArraysOESInvalidArgs(); |
| 449 } | 457 } |
| 450 TEST_F(GLES2DecoderEmulatedVertexArraysOESTest, | 458 TEST_P(GLES2DecoderEmulatedVertexArraysOESTest, |
| 451 DeleteVertexArraysOESInvalidArgs) { | 459 DeleteVertexArraysOESInvalidArgs) { |
| 452 DeleteVertexArraysOESInvalidArgs(); | 460 DeleteVertexArraysOESInvalidArgs(); |
| 453 } | 461 } |
| 454 | 462 |
| 455 TEST_F(GLES2DecoderVertexArraysOESTest, | 463 TEST_P(GLES2DecoderVertexArraysOESTest, |
| 456 DeleteVertexArraysOESImmediateValidArgs) { | 464 DeleteVertexArraysOESImmediateValidArgs) { |
| 457 DeleteVertexArraysOESImmediateValidArgs(); | 465 DeleteVertexArraysOESImmediateValidArgs(); |
| 458 } | 466 } |
| 459 TEST_F(GLES2DecoderEmulatedVertexArraysOESTest, | 467 TEST_P(GLES2DecoderEmulatedVertexArraysOESTest, |
| 460 DeleteVertexArraysOESImmediateValidArgs) { | 468 DeleteVertexArraysOESImmediateValidArgs) { |
| 461 DeleteVertexArraysOESImmediateValidArgs(); | 469 DeleteVertexArraysOESImmediateValidArgs(); |
| 462 } | 470 } |
| 463 | 471 |
| 464 TEST_F(GLES2DecoderVertexArraysOESTest, | 472 TEST_P(GLES2DecoderVertexArraysOESTest, |
| 465 DeleteVertexArraysOESImmediateInvalidArgs) { | 473 DeleteVertexArraysOESImmediateInvalidArgs) { |
| 466 DeleteVertexArraysOESImmediateInvalidArgs(); | 474 DeleteVertexArraysOESImmediateInvalidArgs(); |
| 467 } | 475 } |
| 468 TEST_F(GLES2DecoderEmulatedVertexArraysOESTest, | 476 TEST_P(GLES2DecoderEmulatedVertexArraysOESTest, |
| 469 DeleteVertexArraysOESImmediateInvalidArgs) { | 477 DeleteVertexArraysOESImmediateInvalidArgs) { |
| 470 DeleteVertexArraysOESImmediateInvalidArgs(); | 478 DeleteVertexArraysOESImmediateInvalidArgs(); |
| 471 } | 479 } |
| 472 | 480 |
| 473 TEST_F(GLES2DecoderVertexArraysOESTest, | 481 TEST_P(GLES2DecoderVertexArraysOESTest, |
| 474 DeleteBoundVertexArraysOESImmediateValidArgs) { | 482 DeleteBoundVertexArraysOESImmediateValidArgs) { |
| 475 DeleteBoundVertexArraysOESImmediateValidArgs(); | 483 DeleteBoundVertexArraysOESImmediateValidArgs(); |
| 476 } | 484 } |
| 477 TEST_F(GLES2DecoderEmulatedVertexArraysOESTest, | 485 TEST_P(GLES2DecoderEmulatedVertexArraysOESTest, |
| 478 DeleteBoundVertexArraysOESImmediateValidArgs) { | 486 DeleteBoundVertexArraysOESImmediateValidArgs) { |
| 479 DeleteBoundVertexArraysOESImmediateValidArgs(); | 487 DeleteBoundVertexArraysOESImmediateValidArgs(); |
| 480 } | 488 } |
| 481 | 489 |
| 482 TEST_F(GLES2DecoderVertexArraysOESTest, IsVertexArrayOESValidArgs) { | 490 TEST_P(GLES2DecoderVertexArraysOESTest, IsVertexArrayOESValidArgs) { |
| 483 IsVertexArrayOESValidArgs(); | 491 IsVertexArrayOESValidArgs(); |
| 484 } | 492 } |
| 485 TEST_F(GLES2DecoderEmulatedVertexArraysOESTest, IsVertexArrayOESValidArgs) { | 493 TEST_P(GLES2DecoderEmulatedVertexArraysOESTest, IsVertexArrayOESValidArgs) { |
| 486 IsVertexArrayOESValidArgs(); | 494 IsVertexArrayOESValidArgs(); |
| 487 } | 495 } |
| 488 | 496 |
| 489 TEST_F(GLES2DecoderVertexArraysOESTest, | 497 TEST_P(GLES2DecoderVertexArraysOESTest, |
| 490 IsVertexArrayOESInvalidArgsBadSharedMemoryId) { | 498 IsVertexArrayOESInvalidArgsBadSharedMemoryId) { |
| 491 IsVertexArrayOESInvalidArgsBadSharedMemoryId(); | 499 IsVertexArrayOESInvalidArgsBadSharedMemoryId(); |
| 492 } | 500 } |
| 493 TEST_F(GLES2DecoderEmulatedVertexArraysOESTest, | 501 TEST_P(GLES2DecoderEmulatedVertexArraysOESTest, |
| 494 IsVertexArrayOESInvalidArgsBadSharedMemoryId) { | 502 IsVertexArrayOESInvalidArgsBadSharedMemoryId) { |
| 495 IsVertexArrayOESInvalidArgsBadSharedMemoryId(); | 503 IsVertexArrayOESInvalidArgsBadSharedMemoryId(); |
| 496 } | 504 } |
| 497 | 505 |
| 498 TEST_F(GLES2DecoderVertexArraysOESTest, BindVertexArrayOESValidArgs) { | 506 TEST_P(GLES2DecoderVertexArraysOESTest, BindVertexArrayOESValidArgs) { |
| 499 BindVertexArrayOESValidArgs(); | 507 BindVertexArrayOESValidArgs(); |
| 500 } | 508 } |
| 501 TEST_F(GLES2DecoderEmulatedVertexArraysOESTest, BindVertexArrayOESValidArgs) { | 509 TEST_P(GLES2DecoderEmulatedVertexArraysOESTest, BindVertexArrayOESValidArgs) { |
| 502 BindVertexArrayOESValidArgs(); | 510 BindVertexArrayOESValidArgs(); |
| 503 } | 511 } |
| 504 | 512 |
| 505 TEST_F(GLES2DecoderVertexArraysOESTest, BindVertexArrayOESValidArgsNewId) { | 513 TEST_P(GLES2DecoderVertexArraysOESTest, BindVertexArrayOESValidArgsNewId) { |
| 506 BindVertexArrayOESValidArgsNewId(); | 514 BindVertexArrayOESValidArgsNewId(); |
| 507 } | 515 } |
| 508 TEST_F(GLES2DecoderEmulatedVertexArraysOESTest, | 516 TEST_P(GLES2DecoderEmulatedVertexArraysOESTest, |
| 509 BindVertexArrayOESValidArgsNewId) { | 517 BindVertexArrayOESValidArgsNewId) { |
| 510 BindVertexArrayOESValidArgsNewId(); | 518 BindVertexArrayOESValidArgsNewId(); |
| 511 } | 519 } |
| 512 | 520 |
| 513 TEST_F(GLES2DecoderTest, BufferDataGLError) { | 521 TEST_P(GLES2DecoderTest, BufferDataGLError) { |
| 514 GLenum target = GL_ARRAY_BUFFER; | 522 GLenum target = GL_ARRAY_BUFFER; |
| 515 GLsizeiptr size = 4; | 523 GLsizeiptr size = 4; |
| 516 DoBindBuffer(GL_ARRAY_BUFFER, client_buffer_id_, kServiceBufferId); | 524 DoBindBuffer(GL_ARRAY_BUFFER, client_buffer_id_, kServiceBufferId); |
| 517 BufferManager* manager = group().buffer_manager(); | 525 BufferManager* manager = group().buffer_manager(); |
| 518 Buffer* buffer = manager->GetBuffer(client_buffer_id_); | 526 Buffer* buffer = manager->GetBuffer(client_buffer_id_); |
| 519 ASSERT_TRUE(buffer != NULL); | 527 ASSERT_TRUE(buffer != NULL); |
| 520 EXPECT_EQ(0, buffer->size()); | 528 EXPECT_EQ(0, buffer->size()); |
| 521 EXPECT_CALL(*gl_, GetError()) | 529 EXPECT_CALL(*gl_, GetError()) |
| 522 .WillOnce(Return(GL_NO_ERROR)) | 530 .WillOnce(Return(GL_NO_ERROR)) |
| 523 .WillOnce(Return(GL_OUT_OF_MEMORY)) | 531 .WillOnce(Return(GL_OUT_OF_MEMORY)) |
| (...skipping 11 matching lines...) Expand all Loading... |
| 535 // TODO(gman): BufferData | 543 // TODO(gman): BufferData |
| 536 | 544 |
| 537 // TODO(gman): BufferDataImmediate | 545 // TODO(gman): BufferDataImmediate |
| 538 | 546 |
| 539 // TODO(gman): BufferSubData | 547 // TODO(gman): BufferSubData |
| 540 | 548 |
| 541 // TODO(gman): BufferSubDataImmediate | 549 // TODO(gman): BufferSubDataImmediate |
| 542 | 550 |
| 543 } // namespace gles2 | 551 } // namespace gles2 |
| 544 } // namespace gpu | 552 } // namespace gpu |
| OLD | NEW |