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

Side by Side Diff: gpu/command_buffer/service/framebuffer_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/error_state_mock.h" 5 #include "gpu/command_buffer/service/error_state_mock.h"
6 #include "gpu/command_buffer/service/framebuffer_manager.h" 6 #include "gpu/command_buffer/service/framebuffer_manager.h"
7 #include "gpu/command_buffer/service/feature_info.h" 7 #include "gpu/command_buffer/service/feature_info.h"
8 #include "gpu/command_buffer/service/gpu_service_test.h"
8 #include "gpu/command_buffer/service/renderbuffer_manager.h" 9 #include "gpu/command_buffer/service/renderbuffer_manager.h"
9 #include "gpu/command_buffer/service/test_helper.h" 10 #include "gpu/command_buffer/service/test_helper.h"
10 #include "gpu/command_buffer/service/texture_manager.h" 11 #include "gpu/command_buffer/service/texture_manager.h"
11 #include "testing/gtest/include/gtest/gtest.h" 12 #include "testing/gtest/include/gtest/gtest.h"
12 #include "ui/gl/gl_mock.h" 13 #include "ui/gl/gl_mock.h"
13 14
14 using ::testing::_; 15 using ::testing::_;
15 using ::testing::Return; 16 using ::testing::Return;
16 17
17 namespace gpu { 18 namespace gpu {
18 namespace gles2 { 19 namespace gles2 {
19 namespace { 20 namespace {
20 21
21 const GLint kMaxTextureSize = 64; 22 const GLint kMaxTextureSize = 64;
22 const GLint kMaxCubemapSize = 64; 23 const GLint kMaxCubemapSize = 64;
23 const GLint kMaxRenderbufferSize = 64; 24 const GLint kMaxRenderbufferSize = 64;
24 const GLint kMaxSamples = 4; 25 const GLint kMaxSamples = 4;
25 const uint32 kMaxDrawBuffers = 16; 26 const uint32 kMaxDrawBuffers = 16;
26 const uint32 kMaxColorAttachments = 16; 27 const uint32 kMaxColorAttachments = 16;
27 const bool kDepth24Supported = false; 28 const bool kDepth24Supported = false;
28 const bool kUseDefaultTextures = false; 29 const bool kUseDefaultTextures = false;
29 30
30 } // namespace 31 } // namespace
31 32
32 class FramebufferManagerTest : public testing::Test { 33 class FramebufferManagerTest : public GpuServiceTest {
33 public: 34 public:
34 FramebufferManagerTest() 35 FramebufferManagerTest()
35 : manager_(1, 1), 36 : manager_(1, 1),
36 texture_manager_(NULL, 37 texture_manager_(NULL,
37 new FeatureInfo(), 38 new FeatureInfo(),
38 kMaxTextureSize, 39 kMaxTextureSize,
39 kMaxCubemapSize, 40 kMaxCubemapSize,
40 kUseDefaultTextures), 41 kUseDefaultTextures),
41 renderbuffer_manager_(NULL, 42 renderbuffer_manager_(NULL,
42 kMaxRenderbufferSize, 43 kMaxRenderbufferSize,
43 kMaxSamples, 44 kMaxSamples,
44 kDepth24Supported) {} 45 kDepth24Supported) {}
45 virtual ~FramebufferManagerTest() { 46 virtual ~FramebufferManagerTest() {
46 manager_.Destroy(false); 47 manager_.Destroy(false);
47 texture_manager_.Destroy(false); 48 texture_manager_.Destroy(false);
48 renderbuffer_manager_.Destroy(false); 49 renderbuffer_manager_.Destroy(false);
49 } 50 }
50 51
51 protected: 52 protected:
52 virtual void SetUp() {
53 gl_.reset(new ::testing::StrictMock< ::gfx::MockGLInterface>());
54 ::gfx::MockGLInterface::SetGLInterface(gl_.get());
55 }
56 53
57 virtual void TearDown() {
58 ::gfx::MockGLInterface::SetGLInterface(NULL);
59 gl_.reset();
60 }
61
62 // Use StrictMock to make 100% sure we know how GL will be called.
63 scoped_ptr< ::testing::StrictMock< ::gfx::MockGLInterface> > gl_;
64 FramebufferManager manager_; 54 FramebufferManager manager_;
65 TextureManager texture_manager_; 55 TextureManager texture_manager_;
66 RenderbufferManager renderbuffer_manager_; 56 RenderbufferManager renderbuffer_manager_;
67 }; 57 };
68 58
69 TEST_F(FramebufferManagerTest, Basic) { 59 TEST_F(FramebufferManagerTest, Basic) {
70 const GLuint kClient1Id = 1; 60 const GLuint kClient1Id = 1;
71 const GLuint kService1Id = 11; 61 const GLuint kService1Id = 11;
72 const GLuint kClient2Id = 2; 62 const GLuint kClient2Id = 2;
73 // Check we can create framebuffer. 63 // Check we can create framebuffer.
(...skipping 29 matching lines...) Expand all
103 ASSERT_TRUE(framebuffer1 != NULL); 93 ASSERT_TRUE(framebuffer1 != NULL);
104 EXPECT_CALL(*gl_, DeleteFramebuffersEXT(1, ::testing::Pointee(kService1Id))) 94 EXPECT_CALL(*gl_, DeleteFramebuffersEXT(1, ::testing::Pointee(kService1Id)))
105 .Times(1) 95 .Times(1)
106 .RetiresOnSaturation(); 96 .RetiresOnSaturation();
107 manager_.Destroy(true); 97 manager_.Destroy(true);
108 // Check the resources were released. 98 // Check the resources were released.
109 framebuffer1 = manager_.GetFramebuffer(kClient1Id); 99 framebuffer1 = manager_.GetFramebuffer(kClient1Id);
110 ASSERT_TRUE(framebuffer1 == NULL); 100 ASSERT_TRUE(framebuffer1 == NULL);
111 } 101 }
112 102
113 class FramebufferInfoTest : public testing::Test { 103 class FramebufferInfoTest : public GpuServiceTest {
114 public: 104 public:
115 static const GLuint kClient1Id = 1; 105 static const GLuint kClient1Id = 1;
116 static const GLuint kService1Id = 11; 106 static const GLuint kService1Id = 11;
117 107
118 FramebufferInfoTest() 108 FramebufferInfoTest()
119 : manager_(kMaxDrawBuffers, kMaxColorAttachments), 109 : manager_(kMaxDrawBuffers, kMaxColorAttachments),
120 feature_info_(new FeatureInfo()), 110 feature_info_(new FeatureInfo()),
121 renderbuffer_manager_(NULL, kMaxRenderbufferSize, kMaxSamples, 111 renderbuffer_manager_(NULL, kMaxRenderbufferSize, kMaxSamples,
122 kDepth24Supported) { 112 kDepth24Supported) {
123 texture_manager_.reset(new TextureManager(NULL, 113 texture_manager_.reset(new TextureManager(NULL,
124 feature_info_.get(), 114 feature_info_.get(),
125 kMaxTextureSize, 115 kMaxTextureSize,
126 kMaxCubemapSize, 116 kMaxCubemapSize,
127 kUseDefaultTextures)); 117 kUseDefaultTextures));
128 } 118 }
129 virtual ~FramebufferInfoTest() { 119 virtual ~FramebufferInfoTest() {
130 manager_.Destroy(false); 120 manager_.Destroy(false);
131 texture_manager_->Destroy(false); 121 texture_manager_->Destroy(false);
132 renderbuffer_manager_.Destroy(false); 122 renderbuffer_manager_.Destroy(false);
133 } 123 }
134 124
135 protected: 125 protected:
136 virtual void SetUp() { 126 virtual void SetUp() {
137 InitializeContext("", ""); 127 InitializeContext("", "");
138 } 128 }
139 129
140 void InitializeContext(const char* gl_version, const char* extensions) { 130 void InitializeContext(const char* gl_version, const char* extensions) {
141 gl_.reset(new ::testing::StrictMock< ::gfx::MockGLInterface>()); 131 GpuServiceTest::SetUp();
142 ::gfx::MockGLInterface::SetGLInterface(gl_.get());
143 TestHelper::SetupFeatureInfoInitExpectationsWithGLVersion(gl_.get(), 132 TestHelper::SetupFeatureInfoInitExpectationsWithGLVersion(gl_.get(),
144 extensions, "", gl_version); 133 extensions, "", gl_version);
145 feature_info_->Initialize(); 134 feature_info_->Initialize();
146 manager_.CreateFramebuffer(kClient1Id, kService1Id); 135 manager_.CreateFramebuffer(kClient1Id, kService1Id);
147 error_state_.reset(new ::testing::StrictMock<gles2::MockErrorState>()); 136 error_state_.reset(new ::testing::StrictMock<gles2::MockErrorState>());
148 framebuffer_ = manager_.GetFramebuffer(kClient1Id); 137 framebuffer_ = manager_.GetFramebuffer(kClient1Id);
149 ASSERT_TRUE(framebuffer_ != NULL); 138 ASSERT_TRUE(framebuffer_ != NULL);
150 } 139 }
151 140
152 virtual void TearDown() {
153 ::gfx::MockGLInterface::SetGLInterface(NULL);
154 gl_.reset();
155 }
156
157 // Use StrictMock to make 100% sure we know how GL will be called.
158 scoped_ptr< ::testing::StrictMock< ::gfx::MockGLInterface> > gl_;
159 FramebufferManager manager_; 141 FramebufferManager manager_;
160 Framebuffer* framebuffer_; 142 Framebuffer* framebuffer_;
161 scoped_refptr<FeatureInfo> feature_info_; 143 scoped_refptr<FeatureInfo> feature_info_;
162 scoped_ptr<TextureManager> texture_manager_; 144 scoped_ptr<TextureManager> texture_manager_;
163 RenderbufferManager renderbuffer_manager_; 145 RenderbufferManager renderbuffer_manager_;
164 scoped_ptr<MockErrorState> error_state_; 146 scoped_ptr<MockErrorState> error_state_;
165 }; 147 };
166 148
167 // GCC requires these declarations, but MSVC requires they not be present 149 // GCC requires these declarations, but MSVC requires they not be present
168 #ifndef COMPILER_MSVC 150 #ifndef COMPILER_MSVC
(...skipping 813 matching lines...) Expand 10 before | Expand all | Expand 10 after
982 .WillOnce(Return(GL_FRAMEBUFFER_COMPLETE)) 964 .WillOnce(Return(GL_FRAMEBUFFER_COMPLETE))
983 .RetiresOnSaturation(); 965 .RetiresOnSaturation();
984 } 966 }
985 framebuffer_->GetStatus(texture_manager_.get(), GL_READ_FRAMEBUFFER); 967 framebuffer_->GetStatus(texture_manager_.get(), GL_READ_FRAMEBUFFER);
986 } 968 }
987 969
988 } // namespace gles2 970 } // namespace gles2
989 } // namespace gpu 971 } // namespace gpu
990 972
991 973
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/feature_info_unittest.cc ('k') | gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698