Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(31)

Side by Side Diff: gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc

Issue 1013463003: Update from https://crrev.com/320931 (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 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_unittest.h" 5 #include "gpu/command_buffer/service/gles2_cmd_decoder_unittest.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 425 matching lines...) Expand 10 before | Expand all | Expand 10 after
436 436
437 // Test id = 0 fails. 437 // Test id = 0 fails.
438 begin_cmd.Init( 438 begin_cmd.Init(
439 GL_ANY_SAMPLES_PASSED_EXT, 0, kSharedMemoryId, kSharedMemoryOffset); 439 GL_ANY_SAMPLES_PASSED_EXT, 0, kSharedMemoryId, kSharedMemoryOffset);
440 EXPECT_EQ(error::kNoError, ExecuteCmd(begin_cmd)); 440 EXPECT_EQ(error::kNoError, ExecuteCmd(begin_cmd));
441 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); 441 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError());
442 442
443 GenHelper<GenQueriesEXTImmediate>(kNewClientId); 443 GenHelper<GenQueriesEXTImmediate>(kNewClientId);
444 444
445 // Test valid parameters work. 445 // Test valid parameters work.
446 EXPECT_CALL(*gl_, GenQueriesARB(1, _)) 446 EXPECT_CALL(*gl_, GenQueries(1, _))
447 .WillOnce(SetArgumentPointee<1>(kNewServiceId)) 447 .WillOnce(SetArgumentPointee<1>(kNewServiceId))
448 .RetiresOnSaturation(); 448 .RetiresOnSaturation();
449 EXPECT_CALL(*gl_, BeginQueryARB(GL_ANY_SAMPLES_PASSED_EXT, kNewServiceId)) 449 EXPECT_CALL(*gl_, BeginQuery(GL_ANY_SAMPLES_PASSED_EXT, kNewServiceId))
450 .Times(1) 450 .Times(1)
451 .RetiresOnSaturation(); 451 .RetiresOnSaturation();
452 452
453 // Query object should not be created untill BeginQueriesEXT. 453 // Query object should not be created untill BeginQueriesEXT.
454 QueryManager* query_manager = decoder_->GetQueryManager(); 454 QueryManager* query_manager = decoder_->GetQueryManager();
455 ASSERT_TRUE(query_manager != NULL); 455 ASSERT_TRUE(query_manager != NULL);
456 QueryManager::Query* query = query_manager->GetQuery(kNewClientId); 456 QueryManager::Query* query = query_manager->GetQuery(kNewClientId);
457 EXPECT_TRUE(query == NULL); 457 EXPECT_TRUE(query == NULL);
458 458
459 // BeginQueryEXT should fail if id is not generated from GenQueriesEXT. 459 // BeginQueryEXT should fail if id is not generated from GenQueriesEXT.
(...skipping 19 matching lines...) Expand all
479 // Test trying begin again fails 479 // Test trying begin again fails
480 EXPECT_EQ(error::kNoError, ExecuteCmd(begin_cmd)); 480 EXPECT_EQ(error::kNoError, ExecuteCmd(begin_cmd));
481 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); 481 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError());
482 482
483 // Test end fails with different target 483 // Test end fails with different target
484 end_cmd.Init(GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT, 1); 484 end_cmd.Init(GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT, 1);
485 EXPECT_EQ(error::kNoError, ExecuteCmd(end_cmd)); 485 EXPECT_EQ(error::kNoError, ExecuteCmd(end_cmd));
486 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); 486 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError());
487 487
488 // Test end succeeds 488 // Test end succeeds
489 EXPECT_CALL(*gl_, EndQueryARB(GL_ANY_SAMPLES_PASSED_EXT)) 489 EXPECT_CALL(*gl_, EndQuery(GL_ANY_SAMPLES_PASSED_EXT))
490 .Times(1) 490 .Times(1)
491 .RetiresOnSaturation(); 491 .RetiresOnSaturation();
492 end_cmd.Init(GL_ANY_SAMPLES_PASSED_EXT, 1); 492 end_cmd.Init(GL_ANY_SAMPLES_PASSED_EXT, 1);
493 EXPECT_EQ(error::kNoError, ExecuteCmd(end_cmd)); 493 EXPECT_EQ(error::kNoError, ExecuteCmd(end_cmd));
494 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 494 EXPECT_EQ(GL_NO_ERROR, GetGLError());
495 EXPECT_TRUE(query->pending()); 495 EXPECT_TRUE(query->pending());
496 496
497 EXPECT_CALL(*gl_, DeleteQueriesARB(1, _)).Times(1).RetiresOnSaturation(); 497 EXPECT_CALL(*gl_, DeleteQueries(1, _)).Times(1).RetiresOnSaturation();
498 } 498 }
499 499
500 struct QueryType { 500 struct QueryType {
501 GLenum type; 501 GLenum type;
502 bool is_gl; 502 bool is_gl;
503 }; 503 };
504 504
505 const QueryType kQueryTypes[] = { 505 const QueryType kQueryTypes[] = {
506 {GL_COMMANDS_ISSUED_CHROMIUM, false}, 506 {GL_COMMANDS_ISSUED_CHROMIUM, false},
507 {GL_LATENCY_QUERY_CHROMIUM, false}, 507 {GL_LATENCY_QUERY_CHROMIUM, false},
(...skipping 19 matching lines...) Expand all
527 init.request_alpha = true; 527 init.request_alpha = true;
528 init.bind_generates_resource = true; 528 init.bind_generates_resource = true;
529 test->InitDecoder(init); 529 test->InitDecoder(init);
530 ::testing::StrictMock< ::gfx::MockGLInterface>* gl = test->GetGLMock(); 530 ::testing::StrictMock< ::gfx::MockGLInterface>* gl = test->GetGLMock();
531 531
532 BeginQueryEXT begin_cmd; 532 BeginQueryEXT begin_cmd;
533 533
534 test->GenHelper<GenQueriesEXTImmediate>(client_id); 534 test->GenHelper<GenQueriesEXTImmediate>(client_id);
535 535
536 if (query_type.is_gl) { 536 if (query_type.is_gl) {
537 EXPECT_CALL(*gl, GenQueriesARB(1, _)) 537 EXPECT_CALL(*gl, GenQueries(1, _))
538 .WillOnce(SetArgumentPointee<1>(service_id)) 538 .WillOnce(SetArgumentPointee<1>(service_id))
539 .RetiresOnSaturation(); 539 .RetiresOnSaturation();
540 EXPECT_CALL(*gl, BeginQueryARB(query_type.type, service_id)) 540 EXPECT_CALL(*gl, BeginQuery(query_type.type, service_id))
541 .Times(1) 541 .Times(1)
542 .RetiresOnSaturation(); 542 .RetiresOnSaturation();
543 } 543 }
544 544
545 // Test bad shared memory fails 545 // Test bad shared memory fails
546 begin_cmd.Init(query_type.type, client_id, shm_id, shm_offset); 546 begin_cmd.Init(query_type.type, client_id, shm_id, shm_offset);
547 error::Error error1 = test->ExecuteCmd(begin_cmd); 547 error::Error error1 = test->ExecuteCmd(begin_cmd);
548 548
549 if (query_type.is_gl) { 549 if (query_type.is_gl) {
550 EXPECT_CALL(*gl, EndQueryARB(query_type.type)) 550 EXPECT_CALL(*gl, EndQuery(query_type.type))
551 .Times(1) 551 .Times(1)
552 .RetiresOnSaturation(); 552 .RetiresOnSaturation();
553 } 553 }
554 if (query_type.type == GL_GET_ERROR_QUERY_CHROMIUM) { 554 if (query_type.type == GL_GET_ERROR_QUERY_CHROMIUM) {
555 EXPECT_CALL(*gl, GetError()) 555 EXPECT_CALL(*gl, GetError())
556 .WillOnce(Return(GL_NO_ERROR)) 556 .WillOnce(Return(GL_NO_ERROR))
557 .RetiresOnSaturation(); 557 .RetiresOnSaturation();
558 } 558 }
559 GLsync kGlSync = reinterpret_cast<GLsync>(0xdeadbeef); 559 GLsync kGlSync = reinterpret_cast<GLsync>(0xdeadbeef);
560 if (query_type.type == GL_COMMANDS_COMPLETED_CHROMIUM) { 560 if (query_type.type == GL_COMMANDS_COMPLETED_CHROMIUM) {
561 EXPECT_CALL(*gl, Flush()).RetiresOnSaturation(); 561 EXPECT_CALL(*gl, Flush()).RetiresOnSaturation();
562 EXPECT_CALL(*gl, FenceSync(GL_SYNC_GPU_COMMANDS_COMPLETE, 0)) 562 EXPECT_CALL(*gl, FenceSync(GL_SYNC_GPU_COMMANDS_COMPLETE, 0))
563 .WillOnce(Return(kGlSync)) 563 .WillOnce(Return(kGlSync))
564 .RetiresOnSaturation(); 564 .RetiresOnSaturation();
565 #if DCHECK_IS_ON() 565 #if DCHECK_IS_ON()
566 EXPECT_CALL(*gl, IsSync(kGlSync)) 566 EXPECT_CALL(*gl, IsSync(kGlSync))
567 .WillOnce(Return(GL_TRUE)) 567 .WillOnce(Return(GL_TRUE))
568 .RetiresOnSaturation(); 568 .RetiresOnSaturation();
569 #endif 569 #endif
570 } 570 }
571 571
572 EndQueryEXT end_cmd; 572 EndQueryEXT end_cmd;
573 end_cmd.Init(query_type.type, 1); 573 end_cmd.Init(query_type.type, 1);
574 error::Error error2 = test->ExecuteCmd(end_cmd); 574 error::Error error2 = test->ExecuteCmd(end_cmd);
575 575
576 if (query_type.is_gl) { 576 if (query_type.is_gl) {
577 EXPECT_CALL( 577 EXPECT_CALL(
578 *gl, GetQueryObjectuivARB(service_id, GL_QUERY_RESULT_AVAILABLE_EXT, _)) 578 *gl, GetQueryObjectuiv(service_id, GL_QUERY_RESULT_AVAILABLE_EXT, _))
579 .WillOnce(SetArgumentPointee<2>(1)) 579 .WillOnce(SetArgumentPointee<2>(1))
580 .RetiresOnSaturation(); 580 .RetiresOnSaturation();
581 EXPECT_CALL(*gl, GetQueryObjectuivARB(service_id, GL_QUERY_RESULT_EXT, _)) 581 EXPECT_CALL(*gl, GetQueryObjectuiv(service_id, GL_QUERY_RESULT_EXT, _))
582 .WillOnce(SetArgumentPointee<2>(1)) 582 .WillOnce(SetArgumentPointee<2>(1))
583 .RetiresOnSaturation(); 583 .RetiresOnSaturation();
584 } 584 }
585 if (query_type.type == GL_COMMANDS_COMPLETED_CHROMIUM) { 585 if (query_type.type == GL_COMMANDS_COMPLETED_CHROMIUM) {
586 #if DCHECK_IS_ON() 586 #if DCHECK_IS_ON()
587 EXPECT_CALL(*gl, IsSync(kGlSync)) 587 EXPECT_CALL(*gl, IsSync(kGlSync))
588 .WillOnce(Return(GL_TRUE)) 588 .WillOnce(Return(GL_TRUE))
589 .RetiresOnSaturation(); 589 .RetiresOnSaturation();
590 #endif 590 #endif
591 EXPECT_CALL(*gl, ClientWaitSync(kGlSync, _, _)) 591 EXPECT_CALL(*gl, ClientWaitSync(kGlSync, _, _))
592 .WillOnce(Return(GL_ALREADY_SIGNALED)) 592 .WillOnce(Return(GL_ALREADY_SIGNALED))
593 .RetiresOnSaturation(); 593 .RetiresOnSaturation();
594 } 594 }
595 595
596 QueryManager* query_manager = test->GetDecoder()->GetQueryManager(); 596 QueryManager* query_manager = test->GetDecoder()->GetQueryManager();
597 ASSERT_TRUE(query_manager != NULL); 597 ASSERT_TRUE(query_manager != NULL);
598 bool process_success = query_manager->ProcessPendingQueries(false); 598 bool process_success = query_manager->ProcessPendingQueries(false);
599 599
600 EXPECT_TRUE(error1 != error::kNoError || error2 != error::kNoError || 600 EXPECT_TRUE(error1 != error::kNoError || error2 != error::kNoError ||
601 !process_success); 601 !process_success);
602 602
603 if (query_type.is_gl) { 603 if (query_type.is_gl) {
604 EXPECT_CALL(*gl, DeleteQueriesARB(1, _)).Times(1).RetiresOnSaturation(); 604 EXPECT_CALL(*gl, DeleteQueries(1, _)).Times(1).RetiresOnSaturation();
605 } 605 }
606 if (query_type.type == GL_COMMANDS_COMPLETED_CHROMIUM) { 606 if (query_type.type == GL_COMMANDS_COMPLETED_CHROMIUM) {
607 #if DCHECK_IS_ON() 607 #if DCHECK_IS_ON()
608 EXPECT_CALL(*gl, IsSync(kGlSync)) 608 EXPECT_CALL(*gl, IsSync(kGlSync))
609 .WillOnce(Return(GL_TRUE)) 609 .WillOnce(Return(GL_TRUE))
610 .RetiresOnSaturation(); 610 .RetiresOnSaturation();
611 #endif 611 #endif
612 EXPECT_CALL(*gl, DeleteSync(kGlSync)).Times(1).RetiresOnSaturation(); 612 EXPECT_CALL(*gl, DeleteSync(kGlSync)).Times(1).RetiresOnSaturation();
613 } 613 }
614 test->ResetDecoder(); 614 test->ResetDecoder();
(...skipping 642 matching lines...) Expand 10 before | Expand all | Expand 10 after
1257 INSTANTIATE_TEST_CASE_P(Service, GLES2DecoderManualInitTest, ::testing::Bool()); 1257 INSTANTIATE_TEST_CASE_P(Service, GLES2DecoderManualInitTest, ::testing::Bool());
1258 1258
1259 INSTANTIATE_TEST_CASE_P(Service, 1259 INSTANTIATE_TEST_CASE_P(Service,
1260 GLES2DecoderRGBBackbufferTest, 1260 GLES2DecoderRGBBackbufferTest,
1261 ::testing::Bool()); 1261 ::testing::Bool());
1262 1262
1263 INSTANTIATE_TEST_CASE_P(Service, GLES2DecoderDoCommandsTest, ::testing::Bool()); 1263 INSTANTIATE_TEST_CASE_P(Service, GLES2DecoderDoCommandsTest, ::testing::Bool());
1264 1264
1265 } // namespace gles2 1265 } // namespace gles2
1266 } // namespace gpu 1266 } // namespace gpu
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/gles2_cmd_decoder.cc ('k') | gpu/command_buffer/service/gles2_cmd_validation.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698