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

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

Issue 332303002: gpu: Add base class for gpu service tests (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: update gpu/build.GN Created 6 years, 6 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 | Annotate | Revision Log
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/query_manager.h" 5 #include "gpu/command_buffer/service/query_manager.h"
6 #include "gpu/command_buffer/common/gles2_cmd_format.h" 6 #include "gpu/command_buffer/common/gles2_cmd_format.h"
7 #include "gpu/command_buffer/service/cmd_buffer_engine.h" 7 #include "gpu/command_buffer/service/cmd_buffer_engine.h"
8 #include "gpu/command_buffer/service/error_state_mock.h" 8 #include "gpu/command_buffer/service/error_state_mock.h"
9 #include "gpu/command_buffer/service/feature_info.h"
9 #include "gpu/command_buffer/service/gles2_cmd_decoder.h" 10 #include "gpu/command_buffer/service/gles2_cmd_decoder.h"
10 #include "gpu/command_buffer/service/gles2_cmd_decoder_mock.h" 11 #include "gpu/command_buffer/service/gles2_cmd_decoder_mock.h"
11 #include "gpu/command_buffer/service/feature_info.h" 12 #include "gpu/command_buffer/service/gpu_service_test.h"
12 #include "gpu/command_buffer/service/test_helper.h" 13 #include "gpu/command_buffer/service/test_helper.h"
13 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
14 #include "ui/gl/gl_mock.h" 15 #include "ui/gl/gl_mock.h"
15 16
16 using ::testing::_; 17 using ::testing::_;
17 using ::testing::InSequence; 18 using ::testing::InSequence;
18 using ::testing::Return; 19 using ::testing::Return;
19 using ::testing::SetArgumentPointee; 20 using ::testing::SetArgumentPointee;
20 21
21 namespace gpu { 22 namespace gpu {
22 namespace gles2 { 23 namespace gles2 {
23 24
24 class QueryManagerTest : public testing::Test { 25 class QueryManagerTest : public GpuServiceTest {
25 public: 26 public:
26 static const int32 kSharedMemoryId = 401; 27 static const int32 kSharedMemoryId = 401;
27 static const size_t kSharedBufferSize = 2048; 28 static const size_t kSharedBufferSize = 2048;
28 static const uint32 kSharedMemoryOffset = 132; 29 static const uint32 kSharedMemoryOffset = 132;
29 static const int32 kInvalidSharedMemoryId = 402; 30 static const int32 kInvalidSharedMemoryId = 402;
30 static const uint32 kInvalidSharedMemoryOffset = kSharedBufferSize + 1; 31 static const uint32 kInvalidSharedMemoryOffset = kSharedBufferSize + 1;
31 static const uint32 kInitialResult = 0xBDBDBDBDu; 32 static const uint32 kInitialResult = 0xBDBDBDBDu;
32 static const uint8 kInitialMemoryValue = 0xBDu; 33 static const uint8 kInitialMemoryValue = 0xBDu;
33 34
34 QueryManagerTest() { 35 QueryManagerTest() {
35 } 36 }
36 virtual ~QueryManagerTest() { 37 virtual ~QueryManagerTest() {
37 } 38 }
38 39
39 protected: 40 protected:
40 virtual void SetUp() { 41 virtual void SetUp() {
41 gl_.reset(new ::testing::StrictMock< ::gfx::MockGLInterface>()); 42 GpuServiceTest::SetUp();
42 ::gfx::MockGLInterface::SetGLInterface(gl_.get());
43 engine_.reset(new MockCommandBufferEngine()); 43 engine_.reset(new MockCommandBufferEngine());
44 decoder_.reset(new MockGLES2Decoder()); 44 decoder_.reset(new MockGLES2Decoder());
45 decoder_->set_engine(engine_.get()); 45 decoder_->set_engine(engine_.get());
46 TestHelper::SetupFeatureInfoInitExpectations( 46 TestHelper::SetupFeatureInfoInitExpectations(
47 gl_.get(), 47 gl_.get(),
48 "GL_EXT_occlusion_query_boolean"); 48 "GL_EXT_occlusion_query_boolean");
49 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); 49 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo());
50 feature_info->Initialize(); 50 feature_info->Initialize();
51 manager_.reset(new QueryManager(decoder_.get(), feature_info.get())); 51 manager_.reset(new QueryManager(decoder_.get(), feature_info.get()));
52 } 52 }
53 53
54 virtual void TearDown() { 54 virtual void TearDown() {
55 decoder_.reset(); 55 decoder_.reset();
56 manager_->Destroy(false); 56 manager_->Destroy(false);
57 manager_.reset(); 57 manager_.reset();
58 engine_.reset(); 58 engine_.reset();
59 ::gfx::MockGLInterface::SetGLInterface(NULL); 59 GpuServiceTest::TearDown();
60 gl_.reset();
61 } 60 }
62 61
63 QueryManager::Query* CreateQuery( 62 QueryManager::Query* CreateQuery(
64 GLenum target, GLuint client_id, int32 shm_id, uint32 shm_offset, 63 GLenum target, GLuint client_id, int32 shm_id, uint32 shm_offset,
65 GLuint service_id) { 64 GLuint service_id) {
66 EXPECT_CALL(*gl_, GenQueriesARB(1, _)) 65 EXPECT_CALL(*gl_, GenQueriesARB(1, _))
67 .WillOnce(SetArgumentPointee<1>(service_id)) 66 .WillOnce(SetArgumentPointee<1>(service_id))
68 .RetiresOnSaturation(); 67 .RetiresOnSaturation();
69 return manager_->CreateQuery(target, client_id, shm_id, shm_offset); 68 return manager_->CreateQuery(target, client_id, shm_id, shm_offset);
70 } 69 }
71 70
72 void QueueQuery(QueryManager::Query* query, 71 void QueueQuery(QueryManager::Query* query,
73 GLuint service_id, 72 GLuint service_id,
74 base::subtle::Atomic32 submit_count) { 73 base::subtle::Atomic32 submit_count) {
75 EXPECT_CALL(*gl_, BeginQueryARB(query->target(), service_id)) 74 EXPECT_CALL(*gl_, BeginQueryARB(query->target(), service_id))
76 .Times(1) 75 .Times(1)
77 .RetiresOnSaturation(); 76 .RetiresOnSaturation();
78 EXPECT_CALL(*gl_, EndQueryARB(query->target())) 77 EXPECT_CALL(*gl_, EndQueryARB(query->target()))
79 .Times(1) 78 .Times(1)
80 .RetiresOnSaturation(); 79 .RetiresOnSaturation();
81 EXPECT_TRUE(manager_->BeginQuery(query)); 80 EXPECT_TRUE(manager_->BeginQuery(query));
82 EXPECT_TRUE(manager_->EndQuery(query, submit_count)); 81 EXPECT_TRUE(manager_->EndQuery(query, submit_count));
83 } 82 }
84 83
85 // Use StrictMock to make 100% sure we know how GL will be called.
86 scoped_ptr< ::testing::StrictMock< ::gfx::MockGLInterface> > gl_;
87 scoped_ptr<MockGLES2Decoder> decoder_; 84 scoped_ptr<MockGLES2Decoder> decoder_;
88 scoped_ptr<QueryManager> manager_; 85 scoped_ptr<QueryManager> manager_;
89 86
90 private: 87 private:
91 class MockCommandBufferEngine : public CommandBufferEngine { 88 class MockCommandBufferEngine : public CommandBufferEngine {
92 public: 89 public:
93 MockCommandBufferEngine() { 90 MockCommandBufferEngine() {
94 scoped_ptr<base::SharedMemory> shared_memory(new base::SharedMemory()); 91 scoped_ptr<base::SharedMemory> shared_memory(new base::SharedMemory());
95 shared_memory->CreateAndMapAnonymous(kSharedBufferSize); 92 shared_memory->CreateAndMapAnonymous(kSharedBufferSize);
96 valid_buffer_ = 93 valid_buffer_ =
(...skipping 472 matching lines...) Expand 10 before | Expand all | Expand 10 after
569 566
570 EXPECT_EQ(static_cast<GLuint>(GL_INVALID_ENUM), sync->result); 567 EXPECT_EQ(static_cast<GLuint>(GL_INVALID_ENUM), sync->result);
571 568
572 manager->Destroy(false); 569 manager->Destroy(false);
573 } 570 }
574 571
575 } // namespace gles2 572 } // namespace gles2
576 } // namespace gpu 573 } // namespace gpu
577 574
578 575
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/program_manager_unittest.cc ('k') | gpu/command_buffer/service/renderbuffer_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698