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

Side by Side Diff: ui/gfx/ozone/impl/hardware_display_controller_unittest.cc

Issue 49303002: [Ozone] Rename software implementation files to use Dri prefix (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix ifdef Created 7 years, 1 month 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "testing/gtest/include/gtest/gtest.h" 5 #include "testing/gtest/include/gtest/gtest.h"
6 #include "ui/gfx/ozone/impl/drm_skbitmap_ozone.h" 6 #include "ui/gfx/ozone/impl/dri_skbitmap.h"
7 #include "ui/gfx/ozone/impl/drm_wrapper_ozone.h" 7 #include "ui/gfx/ozone/impl/dri_surface.h"
8 #include "ui/gfx/ozone/impl/hardware_display_controller_ozone.h" 8 #include "ui/gfx/ozone/impl/dri_wrapper.h"
9 #include "ui/gfx/ozone/impl/software_surface_ozone.h" 9 #include "ui/gfx/ozone/impl/hardware_display_controller.h"
10 10
11 namespace { 11 namespace {
12 12
13 // Create a basic mode for a 6x4 screen. 13 // Create a basic mode for a 6x4 screen.
14 const drmModeModeInfo kDefaultMode = 14 const drmModeModeInfo kDefaultMode =
15 {0, 6, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, {'\0'}}; 15 {0, 6, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, {'\0'}};
16 16
17 // Mock file descriptor ID. 17 // Mock file descriptor ID.
18 const int kFd = 3; 18 const int kFd = 3;
19 19
20 // Mock connector ID. 20 // Mock connector ID.
21 const uint32_t kConnectorId = 1; 21 const uint32_t kConnectorId = 1;
22 22
23 // Mock CRTC ID. 23 // Mock CRTC ID.
24 const uint32_t kCrtcId = 1; 24 const uint32_t kCrtcId = 1;
25 25
26 const uint32_t kDPMSPropertyId = 1; 26 const uint32_t kDPMSPropertyId = 1;
27 27
28 // The real DrmWrapper makes actual DRM calls which we can't use in unit tests. 28 // The real DriWrapper makes actual DRM calls which we can't use in unit tests.
29 class MockDrmWrapperOzone : public gfx::DrmWrapperOzone { 29 class MockDriWrapper : public gfx::DriWrapper {
30 public: 30 public:
31 MockDrmWrapperOzone(int fd) : DrmWrapperOzone(""), 31 MockDriWrapper(int fd) : DriWrapper(""),
32 get_crtc_call_count_(0), 32 get_crtc_call_count_(0),
33 free_crtc_call_count_(0), 33 free_crtc_call_count_(0),
34 restore_crtc_call_count_(0), 34 restore_crtc_call_count_(0),
35 add_framebuffer_call_count_(0), 35 add_framebuffer_call_count_(0),
36 remove_framebuffer_call_count_(0), 36 remove_framebuffer_call_count_(0),
37 set_crtc_expectation_(true), 37 set_crtc_expectation_(true),
38 add_framebuffer_expectation_(true), 38 add_framebuffer_expectation_(true),
39 page_flip_expectation_(true) { 39 page_flip_expectation_(true) {
40 fd_ = fd; 40 fd_ = fd;
41 } 41 }
42 42
43 virtual ~MockDrmWrapperOzone() { fd_ = -1; } 43 virtual ~MockDriWrapper() { fd_ = -1; }
44 44
45 virtual drmModeCrtc* GetCrtc(uint32_t crtc_id) OVERRIDE { 45 virtual drmModeCrtc* GetCrtc(uint32_t crtc_id) OVERRIDE {
46 get_crtc_call_count_++; 46 get_crtc_call_count_++;
47 return new drmModeCrtc; 47 return new drmModeCrtc;
48 } 48 }
49 49
50 virtual void FreeCrtc(drmModeCrtc* crtc) OVERRIDE { 50 virtual void FreeCrtc(drmModeCrtc* crtc) OVERRIDE {
51 free_crtc_call_count_++; 51 free_crtc_call_count_++;
52 delete crtc; 52 delete crtc;
53 } 53 }
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 int get_crtc_call_count_; 125 int get_crtc_call_count_;
126 int free_crtc_call_count_; 126 int free_crtc_call_count_;
127 int restore_crtc_call_count_; 127 int restore_crtc_call_count_;
128 int add_framebuffer_call_count_; 128 int add_framebuffer_call_count_;
129 int remove_framebuffer_call_count_; 129 int remove_framebuffer_call_count_;
130 130
131 bool set_crtc_expectation_; 131 bool set_crtc_expectation_;
132 bool add_framebuffer_expectation_; 132 bool add_framebuffer_expectation_;
133 bool page_flip_expectation_; 133 bool page_flip_expectation_;
134 134
135 DISALLOW_COPY_AND_ASSIGN(MockDrmWrapperOzone); 135 DISALLOW_COPY_AND_ASSIGN(MockDriWrapper);
136 }; 136 };
137 137
138 class MockDrmSkBitmapOzone : public gfx::DrmSkBitmapOzone { 138 class MockDriSkBitmap : public gfx::DriSkBitmap {
139 public: 139 public:
140 MockDrmSkBitmapOzone(int fd) : DrmSkBitmapOzone(fd) {} 140 MockDriSkBitmap(int fd) : DriSkBitmap(fd) {}
141 virtual ~MockDrmSkBitmapOzone() {} 141 virtual ~MockDriSkBitmap() {}
142 142
143 virtual bool Initialize() OVERRIDE { 143 virtual bool Initialize() OVERRIDE {
144 return allocPixels(); 144 return allocPixels();
145 } 145 }
146 private: 146 private:
147 DISALLOW_COPY_AND_ASSIGN(MockDrmSkBitmapOzone); 147 DISALLOW_COPY_AND_ASSIGN(MockDriSkBitmap);
148 }; 148 };
149 149
150 class MockSoftwareSurfaceOzone : public gfx::SoftwareSurfaceOzone { 150 class MockDriSurface : public gfx::DriSurface {
151 public: 151 public:
152 MockSoftwareSurfaceOzone(gfx::HardwareDisplayControllerOzone* controller) 152 MockDriSurface(gfx::HardwareDisplayController* controller)
153 : SoftwareSurfaceOzone(controller) {} 153 : DriSurface(controller) {}
154 virtual ~MockSoftwareSurfaceOzone() {} 154 virtual ~MockDriSurface() {}
155 155
156 private: 156 private:
157 virtual gfx::DrmSkBitmapOzone* CreateBuffer() OVERRIDE { 157 virtual gfx::DriSkBitmap* CreateBuffer() OVERRIDE {
158 return new MockDrmSkBitmapOzone(kFd); 158 return new MockDriSkBitmap(kFd);
159 } 159 }
160 DISALLOW_COPY_AND_ASSIGN(MockSoftwareSurfaceOzone); 160 DISALLOW_COPY_AND_ASSIGN(MockDriSurface);
161 }; 161 };
162 162
163 } // namespace 163 } // namespace
164 164
165 class HardwareDisplayControllerOzoneTest : public testing::Test { 165 class HardwareDisplayControllerTest : public testing::Test {
166 public: 166 public:
167 HardwareDisplayControllerOzoneTest() {} 167 HardwareDisplayControllerTest() {}
168 virtual ~HardwareDisplayControllerOzoneTest() {} 168 virtual ~HardwareDisplayControllerTest() {}
169 169
170 virtual void SetUp() OVERRIDE; 170 virtual void SetUp() OVERRIDE;
171 virtual void TearDown() OVERRIDE; 171 virtual void TearDown() OVERRIDE;
172 protected: 172 protected:
173 scoped_ptr<gfx::HardwareDisplayControllerOzone> controller_; 173 scoped_ptr<gfx::HardwareDisplayController> controller_;
174 scoped_ptr<MockDrmWrapperOzone> drm_; 174 scoped_ptr<MockDriWrapper> drm_;
175 175
176 private: 176 private:
177 DISALLOW_COPY_AND_ASSIGN(HardwareDisplayControllerOzoneTest); 177 DISALLOW_COPY_AND_ASSIGN(HardwareDisplayControllerTest);
178 }; 178 };
179 179
180 void HardwareDisplayControllerOzoneTest::SetUp() { 180 void HardwareDisplayControllerTest::SetUp() {
181 controller_.reset(new gfx::HardwareDisplayControllerOzone()); 181 controller_.reset(new gfx::HardwareDisplayController());
182 drm_.reset(new MockDrmWrapperOzone(kFd)); 182 drm_.reset(new MockDriWrapper(kFd));
183 } 183 }
184 184
185 void HardwareDisplayControllerOzoneTest::TearDown() { 185 void HardwareDisplayControllerTest::TearDown() {
186 controller_.reset(); 186 controller_.reset();
187 drm_.reset(); 187 drm_.reset();
188 } 188 }
189 189
190 TEST_F(HardwareDisplayControllerOzoneTest, CheckInitialState) { 190 TEST_F(HardwareDisplayControllerTest, CheckInitialState) {
191 EXPECT_EQ(gfx::HardwareDisplayControllerOzone::UNASSOCIATED, 191 EXPECT_EQ(gfx::HardwareDisplayController::UNASSOCIATED,
192 controller_->get_state()); 192 controller_->get_state());
193 } 193 }
194 194
195 TEST_F(HardwareDisplayControllerOzoneTest, 195 TEST_F(HardwareDisplayControllerTest,
196 CheckStateAfterControllerIsInitialized) { 196 CheckStateAfterControllerIsInitialized) {
197 controller_->SetControllerInfo( 197 controller_->SetControllerInfo(
198 drm_.get(), kConnectorId, kCrtcId, kDPMSPropertyId, kDefaultMode); 198 drm_.get(), kConnectorId, kCrtcId, kDPMSPropertyId, kDefaultMode);
199 199
200 EXPECT_EQ(1, drm_->get_get_crtc_call_count()); 200 EXPECT_EQ(1, drm_->get_get_crtc_call_count());
201 EXPECT_EQ(gfx::HardwareDisplayControllerOzone::UNINITIALIZED, 201 EXPECT_EQ(gfx::HardwareDisplayController::UNINITIALIZED,
202 controller_->get_state()); 202 controller_->get_state());
203 } 203 }
204 204
205 TEST_F(HardwareDisplayControllerOzoneTest, CheckStateAfterSurfaceIsBound) { 205 TEST_F(HardwareDisplayControllerTest, CheckStateAfterSurfaceIsBound) {
206 controller_->SetControllerInfo( 206 controller_->SetControllerInfo(
207 drm_.get(), kConnectorId, kCrtcId, kDPMSPropertyId, kDefaultMode); 207 drm_.get(), kConnectorId, kCrtcId, kDPMSPropertyId, kDefaultMode);
208 scoped_ptr<gfx::SoftwareSurfaceOzone> surface( 208 scoped_ptr<gfx::DriSurface> surface(
209 new MockSoftwareSurfaceOzone(controller_.get())); 209 new MockDriSurface(controller_.get()));
210 210
211 EXPECT_TRUE(surface->Initialize()); 211 EXPECT_TRUE(surface->Initialize());
212 EXPECT_TRUE(controller_->BindSurfaceToController(surface.Pass())); 212 EXPECT_TRUE(controller_->BindSurfaceToController(surface.Pass()));
213 213
214 EXPECT_EQ(2, drm_->get_add_framebuffer_call_count()); 214 EXPECT_EQ(2, drm_->get_add_framebuffer_call_count());
215 EXPECT_EQ(gfx::HardwareDisplayControllerOzone::SURFACE_INITIALIZED, 215 EXPECT_EQ(gfx::HardwareDisplayController::SURFACE_INITIALIZED,
216 controller_->get_state()); 216 controller_->get_state());
217 } 217 }
218 218
219 TEST_F(HardwareDisplayControllerOzoneTest, CheckStateIfBindingFails) { 219 TEST_F(HardwareDisplayControllerTest, CheckStateIfBindingFails) {
220 drm_->set_add_framebuffer_expectation(false); 220 drm_->set_add_framebuffer_expectation(false);
221 221
222 controller_->SetControllerInfo( 222 controller_->SetControllerInfo(
223 drm_.get(), kConnectorId, kCrtcId, kDPMSPropertyId, kDefaultMode); 223 drm_.get(), kConnectorId, kCrtcId, kDPMSPropertyId, kDefaultMode);
224 scoped_ptr<gfx::SoftwareSurfaceOzone> surface( 224 scoped_ptr<gfx::DriSurface> surface(
225 new MockSoftwareSurfaceOzone(controller_.get())); 225 new MockDriSurface(controller_.get()));
226 226
227 EXPECT_TRUE(surface->Initialize()); 227 EXPECT_TRUE(surface->Initialize());
228 EXPECT_FALSE(controller_->BindSurfaceToController(surface.Pass())); 228 EXPECT_FALSE(controller_->BindSurfaceToController(surface.Pass()));
229 229
230 EXPECT_EQ(1, drm_->get_add_framebuffer_call_count()); 230 EXPECT_EQ(1, drm_->get_add_framebuffer_call_count());
231 EXPECT_EQ(gfx::HardwareDisplayControllerOzone::FAILED, 231 EXPECT_EQ(gfx::HardwareDisplayController::FAILED,
232 controller_->get_state()); 232 controller_->get_state());
233 } 233 }
234 234
235 TEST_F(HardwareDisplayControllerOzoneTest, CheckStateAfterPageFlip) { 235 TEST_F(HardwareDisplayControllerTest, CheckStateAfterPageFlip) {
236 controller_->SetControllerInfo( 236 controller_->SetControllerInfo(
237 drm_.get(), kConnectorId, kCrtcId, kDPMSPropertyId, kDefaultMode); 237 drm_.get(), kConnectorId, kCrtcId, kDPMSPropertyId, kDefaultMode);
238 scoped_ptr<gfx::SoftwareSurfaceOzone> surface( 238 scoped_ptr<gfx::DriSurface> surface(
239 new MockSoftwareSurfaceOzone(controller_.get())); 239 new MockDriSurface(controller_.get()));
240 240
241 EXPECT_TRUE(surface->Initialize()); 241 EXPECT_TRUE(surface->Initialize());
242 EXPECT_TRUE(controller_->BindSurfaceToController(surface.Pass())); 242 EXPECT_TRUE(controller_->BindSurfaceToController(surface.Pass()));
243 243
244 controller_->SchedulePageFlip(); 244 controller_->SchedulePageFlip();
245 245
246 EXPECT_EQ(gfx::HardwareDisplayControllerOzone::INITIALIZED, 246 EXPECT_EQ(gfx::HardwareDisplayController::INITIALIZED,
247 controller_->get_state()); 247 controller_->get_state());
248 } 248 }
249 249
250 TEST_F(HardwareDisplayControllerOzoneTest, CheckStateIfModesetFails) { 250 TEST_F(HardwareDisplayControllerTest, CheckStateIfModesetFails) {
251 drm_->set_set_crtc_expectation(false); 251 drm_->set_set_crtc_expectation(false);
252 252
253 controller_->SetControllerInfo( 253 controller_->SetControllerInfo(
254 drm_.get(), kConnectorId, kCrtcId, kDPMSPropertyId, kDefaultMode); 254 drm_.get(), kConnectorId, kCrtcId, kDPMSPropertyId, kDefaultMode);
255 scoped_ptr<gfx::SoftwareSurfaceOzone> surface( 255 scoped_ptr<gfx::DriSurface> surface(
256 new MockSoftwareSurfaceOzone(controller_.get())); 256 new MockDriSurface(controller_.get()));
257 257
258 EXPECT_TRUE(surface->Initialize()); 258 EXPECT_TRUE(surface->Initialize());
259 EXPECT_TRUE(controller_->BindSurfaceToController(surface.Pass())); 259 EXPECT_TRUE(controller_->BindSurfaceToController(surface.Pass()));
260 260
261 controller_->SchedulePageFlip(); 261 controller_->SchedulePageFlip();
262 262
263 EXPECT_EQ(gfx::HardwareDisplayControllerOzone::FAILED, 263 EXPECT_EQ(gfx::HardwareDisplayController::FAILED,
264 controller_->get_state()); 264 controller_->get_state());
265 } 265 }
266 266
267 TEST_F(HardwareDisplayControllerOzoneTest, CheckStateIfPageFlipFails) { 267 TEST_F(HardwareDisplayControllerTest, CheckStateIfPageFlipFails) {
268 drm_->set_page_flip_expectation(false); 268 drm_->set_page_flip_expectation(false);
269 269
270 controller_->SetControllerInfo( 270 controller_->SetControllerInfo(
271 drm_.get(), kConnectorId, kCrtcId, kDPMSPropertyId, kDefaultMode); 271 drm_.get(), kConnectorId, kCrtcId, kDPMSPropertyId, kDefaultMode);
272 scoped_ptr<gfx::SoftwareSurfaceOzone> surface( 272 scoped_ptr<gfx::DriSurface> surface(
273 new MockSoftwareSurfaceOzone(controller_.get())); 273 new MockDriSurface(controller_.get()));
274 274
275 EXPECT_TRUE(surface->Initialize()); 275 EXPECT_TRUE(surface->Initialize());
276 EXPECT_TRUE(controller_->BindSurfaceToController(surface.Pass())); 276 EXPECT_TRUE(controller_->BindSurfaceToController(surface.Pass()));
277 277
278 controller_->SchedulePageFlip(); 278 controller_->SchedulePageFlip();
279 279
280 EXPECT_EQ(gfx::HardwareDisplayControllerOzone::FAILED, 280 EXPECT_EQ(gfx::HardwareDisplayController::FAILED,
281 controller_->get_state()); 281 controller_->get_state());
282 } 282 }
283 283
284 TEST_F(HardwareDisplayControllerOzoneTest, CheckProperDestruction) { 284 TEST_F(HardwareDisplayControllerTest, CheckProperDestruction) {
285 controller_->SetControllerInfo( 285 controller_->SetControllerInfo(
286 drm_.get(), kConnectorId, kCrtcId, kDPMSPropertyId, kDefaultMode); 286 drm_.get(), kConnectorId, kCrtcId, kDPMSPropertyId, kDefaultMode);
287 scoped_ptr<gfx::SoftwareSurfaceOzone> surface( 287 scoped_ptr<gfx::DriSurface> surface(
288 new MockSoftwareSurfaceOzone(controller_.get())); 288 new MockDriSurface(controller_.get()));
289 289
290 EXPECT_TRUE(surface->Initialize()); 290 EXPECT_TRUE(surface->Initialize());
291 EXPECT_TRUE(controller_->BindSurfaceToController(surface.Pass())); 291 EXPECT_TRUE(controller_->BindSurfaceToController(surface.Pass()));
292 292
293 EXPECT_EQ(gfx::HardwareDisplayControllerOzone::SURFACE_INITIALIZED, 293 EXPECT_EQ(gfx::HardwareDisplayController::SURFACE_INITIALIZED,
294 controller_->get_state()); 294 controller_->get_state());
295 295
296 controller_.reset(); 296 controller_.reset();
297 297
298 EXPECT_EQ(2, drm_->get_remove_framebuffer_call_count()); 298 EXPECT_EQ(2, drm_->get_remove_framebuffer_call_count());
299 EXPECT_EQ(1, drm_->get_restore_crtc_call_count()); 299 EXPECT_EQ(1, drm_->get_restore_crtc_call_count());
300 EXPECT_EQ(1, drm_->get_free_crtc_call_count()); 300 EXPECT_EQ(1, drm_->get_free_crtc_call_count());
301 } 301 }
OLDNEW
« no previous file with comments | « ui/gfx/ozone/impl/hardware_display_controller_ozone_unittest.cc ('k') | ui/gfx/ozone/impl/software_surface_factory_ozone.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698