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

Unified Diff: ui/ozone/platform/dri/hardware_display_controller_unittest.cc

Issue 821023003: [Ozone-DRI] Listen for swap events (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@async-swap
Patch Set: Created 5 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: ui/ozone/platform/dri/hardware_display_controller_unittest.cc
diff --git a/ui/ozone/platform/dri/hardware_display_controller_unittest.cc b/ui/ozone/platform/dri/hardware_display_controller_unittest.cc
index a2ee81108632eaeb9f5c20dc040da4ebf47e25fb..b528a8e8c2486b20ef7a08b5e089e6f8eab84803 100644
--- a/ui/ozone/platform/dri/hardware_display_controller_unittest.cc
+++ b/ui/ozone/platform/dri/hardware_display_controller_unittest.cc
@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include "base/bind.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/skia/include/core/SkCanvas.h"
#include "ui/ozone/platform/dri/crtc_controller.h"
@@ -47,16 +48,20 @@ class MockScanoutBuffer : public ui::ScanoutBuffer {
class HardwareDisplayControllerTest : public testing::Test {
public:
- HardwareDisplayControllerTest() {}
+ HardwareDisplayControllerTest() : page_flips_(0) {}
~HardwareDisplayControllerTest() override {}
void SetUp() override;
void TearDown() override;
+ void PageFlipCallback();
+
protected:
scoped_ptr<ui::HardwareDisplayController> controller_;
scoped_ptr<ui::MockDriWrapper> drm_;
+ int page_flips_;
+
private:
DISALLOW_COPY_AND_ASSIGN(HardwareDisplayControllerTest);
};
@@ -76,6 +81,10 @@ void HardwareDisplayControllerTest::TearDown() {
drm_.reset();
}
+void HardwareDisplayControllerTest::PageFlipCallback() {
+ page_flips_++;
+}
+
TEST_F(HardwareDisplayControllerTest, CheckModesettingResult) {
ui::OverlayPlane plane(scoped_refptr<ui::ScanoutBuffer>(
new MockScanoutBuffer(kDefaultModeSize)));
@@ -93,8 +102,9 @@ TEST_F(HardwareDisplayControllerTest, CheckStateAfterPageFlip) {
ui::OverlayPlane plane2(scoped_refptr<ui::ScanoutBuffer>(
new MockScanoutBuffer(kDefaultModeSize)));
controller_->QueueOverlayPlane(plane2);
- EXPECT_TRUE(controller_->SchedulePageFlip());
- controller_->WaitForPageFlipEvent();
+ EXPECT_TRUE(controller_->SchedulePageFlip(
+ base::Bind(&HardwareDisplayControllerTest::PageFlipCallback,
+ base::Unretained(this))));
EXPECT_TRUE(plane1.buffer->HasOneRef());
EXPECT_FALSE(plane2.buffer->HasOneRef());
@@ -122,11 +132,10 @@ TEST_F(HardwareDisplayControllerTest, CheckStateIfPageFlipFails) {
ui::OverlayPlane plane2(scoped_refptr<ui::ScanoutBuffer>(
new MockScanoutBuffer(kDefaultModeSize)));
controller_->QueueOverlayPlane(plane2);
- EXPECT_FALSE(controller_->SchedulePageFlip());
- EXPECT_FALSE(plane1.buffer->HasOneRef());
- EXPECT_FALSE(plane2.buffer->HasOneRef());
+ EXPECT_FALSE(controller_->SchedulePageFlip(
+ base::Bind(&HardwareDisplayControllerTest::PageFlipCallback,
+ base::Unretained(this))));
- controller_->WaitForPageFlipEvent();
EXPECT_FALSE(plane1.buffer->HasOneRef());
EXPECT_TRUE(plane2.buffer->HasOneRef());
}
@@ -140,14 +149,16 @@ TEST_F(HardwareDisplayControllerTest, VerifyNoDRMCallsWhenDisabled) {
ui::OverlayPlane plane2(scoped_refptr<ui::ScanoutBuffer>(
new MockScanoutBuffer(kDefaultModeSize)));
controller_->QueueOverlayPlane(plane2);
- EXPECT_TRUE(controller_->SchedulePageFlip());
- controller_->WaitForPageFlipEvent();
+ EXPECT_TRUE(controller_->SchedulePageFlip(
+ base::Bind(&HardwareDisplayControllerTest::PageFlipCallback,
+ base::Unretained(this))));
EXPECT_EQ(0, drm_->get_page_flip_call_count());
EXPECT_TRUE(controller_->Modeset(plane1, kDefaultMode));
controller_->QueueOverlayPlane(plane2);
- EXPECT_TRUE(controller_->SchedulePageFlip());
- controller_->WaitForPageFlipEvent();
+ EXPECT_TRUE(controller_->SchedulePageFlip(
+ base::Bind(&HardwareDisplayControllerTest::PageFlipCallback,
+ base::Unretained(this))));
EXPECT_EQ(1, drm_->get_page_flip_call_count());
}
@@ -166,8 +177,9 @@ TEST_F(HardwareDisplayControllerTest, CheckOverlayPresent) {
controller_->QueueOverlayPlane(plane1);
controller_->QueueOverlayPlane(plane2);
- EXPECT_TRUE(controller_->SchedulePageFlip());
- controller_->WaitForPageFlipEvent();
+ EXPECT_TRUE(controller_->SchedulePageFlip(
+ base::Bind(&HardwareDisplayControllerTest::PageFlipCallback,
+ base::Unretained(this))));
EXPECT_EQ(1, drm_->get_page_flip_call_count());
EXPECT_EQ(1, drm_->get_overlay_flip_call_count());
}
@@ -184,40 +196,9 @@ TEST_F(HardwareDisplayControllerTest, PageflipMirroredControllers) {
ui::OverlayPlane plane2(scoped_refptr<ui::ScanoutBuffer>(
new MockScanoutBuffer(kDefaultModeSize)));
controller_->QueueOverlayPlane(plane2);
- EXPECT_TRUE(controller_->SchedulePageFlip());
- EXPECT_EQ(2, drm_->get_page_flip_call_count());
-
- controller_->WaitForPageFlipEvent();
- EXPECT_EQ(2, drm_->get_handle_events_count());
-}
-
-TEST_F(HardwareDisplayControllerTest,
- PageflipMirroredControllersWithInvertedCrtcOrder) {
- scoped_ptr<ui::CrtcController> crtc1(
- new ui::CrtcController(drm_.get(), kPrimaryCrtc, kPrimaryConnector));
- scoped_ptr<ui::CrtcController> crtc2(
- new ui::CrtcController(drm_.get(), kSecondaryCrtc, kSecondaryConnector));
-
- // Make sure that if the order is reversed everything is still fine.
- std::queue<ui::CrtcController*> crtc_queue;
- crtc_queue.push(crtc2.get());
- crtc_queue.push(crtc1.get());
-
- controller_.reset(new ui::HardwareDisplayController(crtc1.Pass()));
- controller_->AddCrtc(crtc2.Pass());
-
- ui::OverlayPlane plane1(scoped_refptr<ui::ScanoutBuffer>(
- new MockScanoutBuffer(kDefaultModeSize)));
- EXPECT_TRUE(controller_->Modeset(plane1, kDefaultMode));
- EXPECT_EQ(2, drm_->get_set_crtc_call_count());
-
- ui::OverlayPlane plane2(scoped_refptr<ui::ScanoutBuffer>(
- new MockScanoutBuffer(kDefaultModeSize)));
- controller_->QueueOverlayPlane(plane2);
- EXPECT_TRUE(controller_->SchedulePageFlip());
+ EXPECT_TRUE(controller_->SchedulePageFlip(
+ base::Bind(&HardwareDisplayControllerTest::PageFlipCallback,
+ base::Unretained(this))));
EXPECT_EQ(2, drm_->get_page_flip_call_count());
-
- drm_->set_controllers(crtc_queue);
- controller_->WaitForPageFlipEvent();
- EXPECT_EQ(2, drm_->get_handle_events_count());
+ EXPECT_EQ(1, page_flips_);
}

Powered by Google App Engine
This is Rietveld 408576698