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

Unified Diff: ui/compositor/layer_unittest.cc

Issue 587863002: Use RunLoop to wait for readback on compositor unittest (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@compositorScheduler
Patch Set: back to track trunk Created 6 years, 3 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/compositor/layer_unittest.cc
diff --git a/ui/compositor/layer_unittest.cc b/ui/compositor/layer_unittest.cc
index a99aebbb08c8af91e7873b85d596bc652112499f..71f53142d317d3b4347ebef8e3391be6bd4bca24 100644
--- a/ui/compositor/layer_unittest.cc
+++ b/ui/compositor/layer_unittest.cc
@@ -132,11 +132,11 @@ class LayerWithRealCompositorTest : public testing::Test {
WaitForDraw();
}
- bool ReadPixels(SkBitmap* bitmap) {
- return ReadPixels(bitmap, gfx::Rect(GetCompositor()->size()));
+ void ReadPixels(SkBitmap* bitmap) {
+ ReadPixels(bitmap, gfx::Rect(GetCompositor()->size()));
}
- bool ReadPixels(SkBitmap* bitmap, gfx::Rect source_rect) {
+ void ReadPixels(SkBitmap* bitmap, gfx::Rect source_rect) {
scoped_refptr<ReadbackHolder> holder(new ReadbackHolder);
scoped_ptr<cc::CopyOutputRequest> request =
cc::CopyOutputRequest::CreateBitmapRequest(
@@ -153,14 +153,10 @@ class LayerWithRealCompositorTest : public testing::Test {
WaitForDraw();
}
- if (holder->completed()) {
- *bitmap = holder->result();
- return true;
- }
+ // Waits for the callback to finish run and return result.
+ holder->WaitForReadback();
- // Callback never called.
- NOTREACHED();
- return false;
+ *bitmap = holder->result();
}
void WaitForDraw() { ui::DrawWaiterForTest::Wait(GetCompositor()); }
@@ -182,16 +178,15 @@ class LayerWithRealCompositorTest : public testing::Test {
private:
class ReadbackHolder : public base::RefCountedThreadSafe<ReadbackHolder> {
public:
- ReadbackHolder() : completed_(false) {}
+ ReadbackHolder() : run_loop_(new base::RunLoop) {}
void OutputRequestCallback(scoped_ptr<cc::CopyOutputResult> result) {
- DCHECK(!completed_);
result_ = result->TakeBitmap();
- completed_ = true;
+ run_loop_->Quit();
}
- bool completed() const {
- return completed_;
- };
+
+ void WaitForReadback() { run_loop_->Run(); }
+
const SkBitmap& result() const { return *result_; }
private:
@@ -200,7 +195,7 @@ class LayerWithRealCompositorTest : public testing::Test {
virtual ~ReadbackHolder() {}
scoped_ptr<SkBitmap> result_;
- bool completed_;
+ scoped_ptr<base::RunLoop> run_loop_;
};
scoped_ptr<TestCompositorHost> compositor_host_;
@@ -884,7 +879,7 @@ TEST_F(LayerWithRealCompositorTest, DrawPixels) {
DrawTree(layer.get());
SkBitmap bitmap;
- ASSERT_TRUE(ReadPixels(&bitmap, gfx::Rect(viewport_size)));
+ ReadPixels(&bitmap, gfx::Rect(viewport_size));
ASSERT_FALSE(bitmap.empty());
SkAutoLockPixels lock(bitmap);
@@ -922,7 +917,7 @@ TEST_F(LayerWithRealCompositorTest, DrawAlphaBlendedPixels) {
DrawTree(background_layer.get());
SkBitmap bitmap;
- ASSERT_TRUE(ReadPixels(&bitmap, gfx::Rect(viewport_size)));
+ ReadPixels(&bitmap, gfx::Rect(viewport_size));
ASSERT_FALSE(bitmap.empty());
SkAutoLockPixels lock(bitmap);
@@ -963,7 +958,7 @@ TEST_F(LayerWithRealCompositorTest, DrawAlphaThresholdFilterPixels) {
DrawTree(background_layer.get());
SkBitmap bitmap;
- ASSERT_TRUE(ReadPixels(&bitmap, gfx::Rect(viewport_size)));
+ ReadPixels(&bitmap, gfx::Rect(viewport_size));
ASSERT_FALSE(bitmap.empty());
SkAutoLockPixels lock(bitmap);
@@ -1109,14 +1104,14 @@ TEST_F(LayerWithRealCompositorTest, ModifyHierarchy) {
l11->Add(l21.get());
l0->Add(l12.get());
DrawTree(l0.get());
- ASSERT_TRUE(ReadPixels(&bitmap));
+ ReadPixels(&bitmap);
ASSERT_FALSE(bitmap.empty());
// WritePNGFile(bitmap, ref_img1);
EXPECT_TRUE(MatchesPNGFile(bitmap, ref_img1, cc::ExactPixelComparator(true)));
l0->StackAtTop(l11.get());
DrawTree(l0.get());
- ASSERT_TRUE(ReadPixels(&bitmap));
+ ReadPixels(&bitmap);
ASSERT_FALSE(bitmap.empty());
// WritePNGFile(bitmap, ref_img2);
EXPECT_TRUE(MatchesPNGFile(bitmap, ref_img2, cc::ExactPixelComparator(true)));
@@ -1124,28 +1119,28 @@ TEST_F(LayerWithRealCompositorTest, ModifyHierarchy) {
// should restore to original configuration
l0->StackAbove(l12.get(), l11.get());
DrawTree(l0.get());
- ASSERT_TRUE(ReadPixels(&bitmap));
+ ReadPixels(&bitmap);
ASSERT_FALSE(bitmap.empty());
EXPECT_TRUE(MatchesPNGFile(bitmap, ref_img1, cc::ExactPixelComparator(true)));
// l11 back to front
l0->StackAtTop(l11.get());
DrawTree(l0.get());
- ASSERT_TRUE(ReadPixels(&bitmap));
+ ReadPixels(&bitmap);
ASSERT_FALSE(bitmap.empty());
EXPECT_TRUE(MatchesPNGFile(bitmap, ref_img2, cc::ExactPixelComparator(true)));
// should restore to original configuration
l0->StackAbove(l12.get(), l11.get());
DrawTree(l0.get());
- ASSERT_TRUE(ReadPixels(&bitmap));
+ ReadPixels(&bitmap);
ASSERT_FALSE(bitmap.empty());
EXPECT_TRUE(MatchesPNGFile(bitmap, ref_img1, cc::ExactPixelComparator(true)));
// l11 back to front
l0->StackAbove(l11.get(), l12.get());
DrawTree(l0.get());
- ASSERT_TRUE(ReadPixels(&bitmap));
+ ReadPixels(&bitmap);
ASSERT_FALSE(bitmap.empty());
EXPECT_TRUE(MatchesPNGFile(bitmap, ref_img2, cc::ExactPixelComparator(true)));
}
@@ -1168,7 +1163,7 @@ TEST_F(LayerWithRealCompositorTest, Opacity) {
l0->Add(l11.get());
DrawTree(l0.get());
SkBitmap bitmap;
- ASSERT_TRUE(ReadPixels(&bitmap));
+ ReadPixels(&bitmap);
ASSERT_FALSE(bitmap.empty());
// WritePNGFile(bitmap, ref_img);
EXPECT_TRUE(MatchesPNGFile(bitmap, ref_img, cc::ExactPixelComparator(true)));
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698