diff options
author | mithro <mithro@mithis.com> | 2015-05-07 17:35:14 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-05-08 00:35:51 +0000 |
commit | 9063b5d3db468afa9c6d57d05e69b1f8de63c18e (patch) | |
tree | 03315990796e5ba4028d8293702f297bed07e851 | |
parent | a3e1fc441393c73090f9f598ddf5939b1ef0890f (diff) | |
download | chromium_src-9063b5d3db468afa9c6d57d05e69b1f8de63c18e.zip chromium_src-9063b5d3db468afa9c6d57d05e69b1f8de63c18e.tar.gz chromium_src-9063b5d3db468afa9c6d57d05e69b1f8de63c18e.tar.bz2 |
cc: Adding test to check SingleThreadProxy::CompositeImmediately's state transitions.
This test was requested in https://codereview.chromium.org/1099703004/
BUG=346230
R=sunnyps,enne
Review URL: https://codereview.chromium.org/1115213007
Cr-Commit-Position: refs/heads/master@{#328888}
-rw-r--r-- | cc/trees/layer_tree_host_unittest.cc | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/cc/trees/layer_tree_host_unittest.cc b/cc/trees/layer_tree_host_unittest.cc index ab40684..df01000 100644 --- a/cc/trees/layer_tree_host_unittest.cc +++ b/cc/trees/layer_tree_host_unittest.cc @@ -2359,6 +2359,75 @@ class LayerTreeHostTestDeferCommits : public LayerTreeHostTest { SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestDeferCommits); +class LayerTreeHostTestCompositeImmediatelyStateTransitions + : public LayerTreeHostTest { + public: + enum { + kInvalid, + kStartedTest, + kStartedImplFrame, + kStartedMainFrame, + kStartedCommit, + kCompletedCommit, + kCompletedMainFrame, + kCompletedImplFrame, + }; + + LayerTreeHostTestCompositeImmediatelyStateTransitions() + : current_state_(kInvalid), current_begin_frame_args_() {} + + void InitializeSettings(LayerTreeSettings* settings) override { + settings->single_thread_proxy_scheduler = false; + } + + void BeginTest() override { + current_state_ = kStartedTest; + PostCompositeImmediatelyToMainThread(); + } + + void WillBeginImplFrameOnThread(LayerTreeHostImpl* host_impl, + const BeginFrameArgs& args) override { + EXPECT_EQ(current_state_, kStartedTest); + current_state_ = kStartedImplFrame; + + EXPECT_FALSE(current_begin_frame_args_.IsValid()); + EXPECT_TRUE(args.IsValid()); + current_begin_frame_args_ = args; + } + void WillBeginMainFrame() override { + EXPECT_EQ(current_state_, kStartedImplFrame); + current_state_ = kStartedMainFrame; + } + void BeginMainFrame(const BeginFrameArgs& args) override { + EXPECT_EQ(current_state_, kStartedMainFrame); + EXPECT_EQ(args.frame_time, current_begin_frame_args_.frame_time); + } + void BeginCommitOnThread(LayerTreeHostImpl* host_impl) override { + EXPECT_EQ(current_state_, kStartedMainFrame); + current_state_ = kStartedCommit; + } + void CommitCompleteOnThread(LayerTreeHostImpl* host_impl) override { + EXPECT_EQ(current_state_, kStartedCommit); + current_state_ = kCompletedCommit; + } + void DidBeginMainFrame() override { + EXPECT_EQ(current_state_, kCompletedCommit); + current_state_ = kCompletedMainFrame; + } + void DidFinishImplFrameOnThread(LayerTreeHostImpl* host_impl) override { + EXPECT_EQ(current_state_, kCompletedMainFrame); + current_state_ = kCompletedImplFrame; + EndTest(); + } + void AfterTest() override { EXPECT_EQ(current_state_, kCompletedImplFrame); } + + private: + int current_state_; + BeginFrameArgs current_begin_frame_args_; +}; + +SINGLE_THREAD_TEST_F(LayerTreeHostTestCompositeImmediatelyStateTransitions); + class LayerTreeHostWithProxy : public LayerTreeHost { public: LayerTreeHostWithProxy(FakeLayerTreeHostClient* client, |