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

Unified Diff: cc/trees/layer_tree_host_unittest.cc

Issue 462803002: Fix failing (flaky) LayerTreeHostTestLCDNotification test. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: flakylcd: reordertests Created 6 years, 4 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 | « cc/test/layer_tree_test.cc ('k') | cc/trees/layer_tree_host_unittest_animation.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/trees/layer_tree_host_unittest.cc
diff --git a/cc/trees/layer_tree_host_unittest.cc b/cc/trees/layer_tree_host_unittest.cc
index 453c75cb54daa5ae60dd8a7965dc20ac6e0ebc3c..6e44cb2659f1914383e1b67de28a38c1e2b98376 100644
--- a/cc/trees/layer_tree_host_unittest.cc
+++ b/cc/trees/layer_tree_host_unittest.cc
@@ -1805,47 +1805,6 @@ class LayerTreeHostTestEvictTextures : public LayerTreeHostTest {
MULTI_THREAD_NOIMPL_TEST_F(LayerTreeHostTestEvictTextures);
-class LayerTreeHostTestContinuousCommit : public LayerTreeHostTest {
- public:
- LayerTreeHostTestContinuousCommit()
- : num_commit_complete_(0), num_draw_layers_(0) {}
-
- virtual void BeginTest() OVERRIDE {
- layer_tree_host()->SetViewportSize(gfx::Size(10, 10));
- layer_tree_host()->root_layer()->SetBounds(gfx::Size(10, 10));
-
- PostSetNeedsCommitToMainThread();
- }
-
- virtual void DidCommit() OVERRIDE {
- if (num_draw_layers_ == 2)
- return;
- layer_tree_host()->SetNeedsCommit();
- }
-
- virtual void CommitCompleteOnThread(LayerTreeHostImpl* impl) OVERRIDE {
- if (num_draw_layers_ == 1)
- num_commit_complete_++;
- }
-
- virtual void DrawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE {
- num_draw_layers_++;
- if (num_draw_layers_ == 2)
- EndTest();
- }
-
- virtual void AfterTest() OVERRIDE {
- // Check that we didn't commit twice between first and second draw.
- EXPECT_EQ(1, num_commit_complete_);
- }
-
- private:
- int num_commit_complete_;
- int num_draw_layers_;
-};
-
-MULTI_THREAD_TEST_F(LayerTreeHostTestContinuousCommit);
-
class LayerTreeHostTestContinuousInvalidate : public LayerTreeHostTest {
public:
LayerTreeHostTestContinuousInvalidate()
@@ -4568,27 +4527,21 @@ class LayerTreeHostTestBreakSwapPromise : public LayerTreeHostTest {
class LayerTreeHostTestBreakSwapPromiseForVisibilityAbortedCommit
: public LayerTreeHostTest {
protected:
- LayerTreeHostTestBreakSwapPromiseForVisibilityAbortedCommit()
- : commit_count_(0) {}
-
virtual void BeginTest() OVERRIDE { PostSetNeedsCommitToMainThread(); }
- virtual void WillBeginMainFrame() OVERRIDE {
+ virtual void DidCommit() OVERRIDE {
layer_tree_host()->SetDeferCommits(true);
layer_tree_host()->SetNeedsCommit();
}
virtual void DidDeferCommit() OVERRIDE {
layer_tree_host()->SetVisible(false);
- layer_tree_host()->SetDeferCommits(false);
-
scoped_ptr<SwapPromise> swap_promise(
new TestSwapPromise(&swap_promise_result_));
layer_tree_host()->QueueSwapPromise(swap_promise.Pass());
+ layer_tree_host()->SetDeferCommits(false);
}
- virtual void DidCommit() OVERRIDE { PostSetNeedsCommitToMainThread(); }
-
virtual void BeginMainFrameAbortedOnThread(LayerTreeHostImpl* host_impl,
bool did_handle) OVERRIDE {
EndTest();
@@ -4604,7 +4557,6 @@ class LayerTreeHostTestBreakSwapPromiseForVisibilityAbortedCommit
}
}
- int commit_count_;
TestSwapPromiseResult swap_promise_result_;
};
@@ -4614,30 +4566,36 @@ SINGLE_AND_MULTI_THREAD_TEST_F(
class LayerTreeHostTestBreakSwapPromiseForContextAbortedCommit
: public LayerTreeHostTest {
protected:
- LayerTreeHostTestBreakSwapPromiseForContextAbortedCommit()
- : commit_count_(0) {}
-
virtual void BeginTest() OVERRIDE { PostSetNeedsCommitToMainThread(); }
- virtual void WillBeginMainFrame() OVERRIDE {
+ virtual void DidCommit() OVERRIDE {
+ if (TestEnded())
+ return;
layer_tree_host()->SetDeferCommits(true);
layer_tree_host()->SetNeedsCommit();
}
virtual void DidDeferCommit() OVERRIDE {
layer_tree_host()->DidLoseOutputSurface();
- layer_tree_host()->SetDeferCommits(false);
-
scoped_ptr<SwapPromise> swap_promise(
new TestSwapPromise(&swap_promise_result_));
layer_tree_host()->QueueSwapPromise(swap_promise.Pass());
+ layer_tree_host()->SetDeferCommits(false);
}
- virtual void DidCommit() OVERRIDE { PostSetNeedsCommitToMainThread(); }
-
virtual void BeginMainFrameAbortedOnThread(LayerTreeHostImpl* host_impl,
bool did_handle) OVERRIDE {
EndTest();
+ // This lets the test finally commit and exit.
+ MainThreadTaskRunner()->PostTask(
+ FROM_HERE,
+ base::Bind(&LayerTreeHostTestBreakSwapPromiseForContextAbortedCommit::
+ FindOutputSurface,
+ base::Unretained(this)));
+ }
+
+ void FindOutputSurface() {
+ layer_tree_host()->OnCreateAndInitializeOutputSurfaceAttempted(true);
}
virtual void AfterTest() OVERRIDE {
@@ -4650,7 +4608,6 @@ class LayerTreeHostTestBreakSwapPromiseForContextAbortedCommit
}
}
- int commit_count_;
TestSwapPromiseResult swap_promise_result_;
};
@@ -4687,6 +4644,9 @@ class LayerTreeHostTestSimpleSwapPromiseMonitor : public LayerTreeHostTest {
virtual void BeginTest() OVERRIDE { PostSetNeedsCommitToMainThread(); }
virtual void WillBeginMainFrame() OVERRIDE {
+ if (TestEnded())
+ return;
+
int set_needs_commit_count = 0;
int set_needs_redraw_count = 0;
@@ -4997,15 +4957,21 @@ class LayerTreeHostTestContinuousPainting : public LayerTreeHostTest {
}
virtual void BeginTest() OVERRIDE {
- // Wait 50x longer than expected.
- double milliseconds_per_frame =
- 1000 / layer_tree_host()->settings().refresh_rate;
- EndTestAfterDelay(50 * kExpectedNumCommits * milliseconds_per_frame);
MainThreadTaskRunner()->PostTask(
FROM_HERE,
base::Bind(
&LayerTreeHostTestContinuousPainting::EnableContinuousPainting,
base::Unretained(this)));
+ // Wait 50x longer than expected.
+ double milliseconds_per_frame =
+ 1000.0 / layer_tree_host()->settings().refresh_rate;
+ MainThreadTaskRunner()->PostDelayedTask(
+ FROM_HERE,
+ base::Bind(
+ &LayerTreeHostTestContinuousPainting::DisableContinuousPainting,
+ base::Unretained(this)),
+ base::TimeDelta::FromMilliseconds(50 * kExpectedNumCommits *
+ milliseconds_per_frame));
}
virtual void Animate(base::TimeTicks monotonic_time) OVERRIDE {
@@ -5036,6 +5002,13 @@ class LayerTreeHostTestContinuousPainting : public LayerTreeHostTest {
layer_tree_host()->SetDebugState(debug_state);
}
+ void DisableContinuousPainting() {
+ LayerTreeDebugState debug_state = layer_tree_host()->debug_state();
+ debug_state.continuous_painting = false;
+ layer_tree_host()->SetDebugState(debug_state);
+ EndTest();
+ }
+
int num_commits_;
int num_draws_;
const gfx::Size bounds_;
« no previous file with comments | « cc/test/layer_tree_test.cc ('k') | cc/trees/layer_tree_host_unittest_animation.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698