summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormithro <mithro@mithis.com>2015-05-07 17:35:14 -0700
committerCommit bot <commit-bot@chromium.org>2015-05-08 00:35:51 +0000
commit9063b5d3db468afa9c6d57d05e69b1f8de63c18e (patch)
tree03315990796e5ba4028d8293702f297bed07e851
parenta3e1fc441393c73090f9f598ddf5939b1ef0890f (diff)
downloadchromium_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.cc69
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,