| Index: cc/scheduler/begin_frame_source_unittest.cc
|
| diff --git a/cc/scheduler/begin_frame_source_unittest.cc b/cc/scheduler/begin_frame_source_unittest.cc
|
| index 6ab9074448c07b47b029851216a063bb8f955904..418fd32374a94f50bf5153429170a326aaf6b88e 100644
|
| --- a/cc/scheduler/begin_frame_source_unittest.cc
|
| +++ b/cc/scheduler/begin_frame_source_unittest.cc
|
| @@ -566,342 +566,5 @@ TEST_F(SyntheticBeginFrameSourceTest, DoubleTickMissedFrame) {
|
| source_->RemoveObserver(&obs);
|
| }
|
|
|
| -// BeginFrameSourceMultiplexer testing -----------------------------------
|
| -class BeginFrameSourceMultiplexerTest : public ::testing::Test {
|
| - protected:
|
| - void SetUp() override {
|
| - mux_ = BeginFrameSourceMultiplexer::Create();
|
| -
|
| - source1_store_ = make_scoped_ptr(new FakeBeginFrameSource());
|
| - source2_store_ = make_scoped_ptr(new FakeBeginFrameSource());
|
| - source3_store_ = make_scoped_ptr(new FakeBeginFrameSource());
|
| -
|
| - source1_ = source1_store_.get();
|
| - source2_ = source2_store_.get();
|
| - source3_ = source3_store_.get();
|
| - }
|
| -
|
| - void TearDown() override {
|
| - // Make sure the mux is torn down before the sources.
|
| - mux_.reset();
|
| - }
|
| -
|
| - scoped_ptr<BeginFrameSourceMultiplexer> mux_;
|
| - FakeBeginFrameSource* source1_;
|
| - FakeBeginFrameSource* source2_;
|
| - FakeBeginFrameSource* source3_;
|
| -
|
| - private:
|
| - scoped_ptr<FakeBeginFrameSource> source1_store_;
|
| - scoped_ptr<FakeBeginFrameSource> source2_store_;
|
| - scoped_ptr<FakeBeginFrameSource> source3_store_;
|
| -};
|
| -
|
| -TEST_F(BeginFrameSourceMultiplexerTest, SourcesManipulation) {
|
| - EXPECT_EQ(NULL, mux_->ActiveSource());
|
| -
|
| - mux_->AddSource(source1_);
|
| - EXPECT_EQ(source1_, mux_->ActiveSource());
|
| -
|
| - mux_->SetActiveSource(NULL);
|
| - EXPECT_EQ(NULL, mux_->ActiveSource());
|
| -
|
| - mux_->SetActiveSource(source1_);
|
| -
|
| -#ifndef NDEBUG
|
| - // Setting a source which isn't in the mux as active should DCHECK fail.
|
| - EXPECT_DEATH({ mux_->SetActiveSource(source2_); }, "");
|
| -
|
| - // Adding a source which is already added should DCHECK fail.
|
| - EXPECT_DEATH({ mux_->AddSource(source1_); }, "");
|
| -
|
| - // Removing a source which isn't in the mux should DCHECK fail.
|
| - EXPECT_DEATH({ mux_->RemoveSource(source2_); }, "");
|
| -
|
| - // Removing the active source fails
|
| - EXPECT_DEATH({ mux_->RemoveSource(source1_); }, "");
|
| -#endif
|
| -
|
| - // Test manipulation doesn't segfault.
|
| - mux_->AddSource(source2_);
|
| - mux_->RemoveSource(source2_);
|
| -
|
| - mux_->AddSource(source2_);
|
| - mux_->SetActiveSource(source2_);
|
| - EXPECT_EQ(source2_, mux_->ActiveSource());
|
| -
|
| - mux_->RemoveSource(source1_);
|
| -}
|
| -
|
| -TEST_F(BeginFrameSourceMultiplexerTest, SwitchActiveSource) {
|
| - mux_->AddSource(source1_);
|
| - mux_->AddSource(source2_);
|
| -
|
| - EXPECT_FALSE(source1_->has_observers());
|
| - EXPECT_FALSE(source2_->has_observers());
|
| -
|
| - MockBeginFrameObserver obs;
|
| - mux_->AddObserver(&obs);
|
| -
|
| - mux_->SetActiveSource(source1_);
|
| - EXPECT_TRUE(source1_->has_observers());
|
| - EXPECT_FALSE(source2_->has_observers());
|
| -
|
| - mux_->SetActiveSource(source2_);
|
| - EXPECT_FALSE(source1_->has_observers());
|
| - EXPECT_TRUE(source2_->has_observers());
|
| -}
|
| -
|
| -TEST_F(BeginFrameSourceMultiplexerTest, SingleObserver) {
|
| - mux_->AddSource(source1_);
|
| - mux_->AddSource(source2_);
|
| - mux_->SetActiveSource(source1_);
|
| -
|
| - EXPECT_FALSE(source1_->has_observers());
|
| - EXPECT_FALSE(source2_->has_observers());
|
| -
|
| - MockBeginFrameObserver obs;
|
| - EXPECT_BEGIN_FRAME_SOURCE_PAUSED(obs, false);
|
| - mux_->AddObserver(&obs);
|
| - EXPECT_TRUE(source1_->has_observers());
|
| - EXPECT_FALSE(source2_->has_observers());
|
| -
|
| - EXPECT_BEGIN_FRAME_USED(obs, 100, 200, 100);
|
| - SEND_BEGIN_FRAME_USED(*source1_, 100, 200, 100);
|
| - SEND_BEGIN_FRAME_DROP(*source2_, 150, 250, 100);
|
| -
|
| - mux_->RemoveObserver(&obs);
|
| - EXPECT_FALSE(source1_->has_observers());
|
| - EXPECT_FALSE(source2_->has_observers());
|
| -}
|
| -
|
| -TEST_F(BeginFrameSourceMultiplexerTest, MultipleObservers) {
|
| - mux_->AddSource(source1_);
|
| - mux_->AddSource(source2_);
|
| - mux_->SetActiveSource(source1_);
|
| -
|
| - EXPECT_FALSE(source1_->has_observers());
|
| - EXPECT_FALSE(source2_->has_observers());
|
| -
|
| - StrictMock<MockBeginFrameObserver> obs1, obs2;
|
| - EXPECT_BEGIN_FRAME_SOURCE_PAUSED(obs1, false);
|
| - mux_->AddObserver(&obs1);
|
| - EXPECT_TRUE(source1_->has_observers());
|
| - EXPECT_FALSE(source2_->has_observers());
|
| -
|
| - EXPECT_BEGIN_FRAME_USED(obs1, 100, 200, 100);
|
| - SEND_BEGIN_FRAME_USED(*source1_, 100, 200, 100);
|
| - SEND_BEGIN_FRAME_DROP(*source2_, 200, 300, 100);
|
| -
|
| - EXPECT_BEGIN_FRAME_SOURCE_PAUSED(obs2, false);
|
| - mux_->AddObserver(&obs2);
|
| -
|
| - EXPECT_BEGIN_FRAME_USED(obs1, 300, 400, 100);
|
| - EXPECT_BEGIN_FRAME_USED(obs2, 300, 400, 100);
|
| - SEND_BEGIN_FRAME_USED(*source1_, 300, 400, 100);
|
| - SEND_BEGIN_FRAME_DROP(*source2_, 400, 500, 100);
|
| -
|
| - EXPECT_BEGIN_FRAME_SOURCE_PAUSED(obs1, true);
|
| - EXPECT_BEGIN_FRAME_SOURCE_PAUSED(obs2, true);
|
| - source1_->SetBeginFrameSourcePaused(true);
|
| -
|
| - EXPECT_BEGIN_FRAME_SOURCE_PAUSED(obs1, false);
|
| - EXPECT_BEGIN_FRAME_SOURCE_PAUSED(obs2, false);
|
| - mux_->SetActiveSource(source2_);
|
| - EXPECT_FALSE(source1_->has_observers());
|
| - EXPECT_TRUE(source2_->has_observers());
|
| -
|
| - EXPECT_BEGIN_FRAME_USED(obs1, 600, 700, 100);
|
| - EXPECT_BEGIN_FRAME_USED(obs2, 600, 700, 100);
|
| - SEND_BEGIN_FRAME_DROP(*source1_, 500, 600, 100);
|
| - SEND_BEGIN_FRAME_USED(*source2_, 600, 700, 100);
|
| -
|
| - mux_->RemoveObserver(&obs1);
|
| - EXPECT_FALSE(source1_->has_observers());
|
| - EXPECT_TRUE(source2_->has_observers());
|
| -
|
| - EXPECT_BEGIN_FRAME_USED(obs2, 800, 900, 100);
|
| - SEND_BEGIN_FRAME_DROP(*source1_, 700, 800, 100);
|
| - SEND_BEGIN_FRAME_USED(*source2_, 800, 900, 100);
|
| -
|
| - mux_->RemoveObserver(&obs2);
|
| - EXPECT_FALSE(source1_->has_observers());
|
| - EXPECT_FALSE(source2_->has_observers());
|
| -}
|
| -
|
| -TEST_F(BeginFrameSourceMultiplexerTest, BeginFramesSimple) {
|
| - mux_->AddSource(source1_);
|
| - mux_->AddSource(source2_);
|
| - mux_->SetActiveSource(source1_);
|
| -
|
| - MockBeginFrameObserver obs;
|
| - EXPECT_BEGIN_FRAME_SOURCE_PAUSED(obs, false);
|
| - mux_->AddObserver(&obs);
|
| - EXPECT_BEGIN_FRAME_USED(obs, 100, 200, 300);
|
| - EXPECT_BEGIN_FRAME_USED(obs, 400, 600, 300);
|
| -
|
| - mux_->SetActiveSource(source1_);
|
| -
|
| - SEND_BEGIN_FRAME_USED(*source1_, 100, 200, 300);
|
| - SEND_BEGIN_FRAME_DROP(*source2_, 200, 500, 300);
|
| -
|
| - mux_->SetActiveSource(source2_);
|
| - SEND_BEGIN_FRAME_USED(*source2_, 400, 600, 300);
|
| - SEND_BEGIN_FRAME_DROP(*source1_, 500, 700, 300);
|
| -}
|
| -
|
| -TEST_F(BeginFrameSourceMultiplexerTest, BeginFramesBackwardsProtection) {
|
| - mux_->AddSource(source1_);
|
| - mux_->AddSource(source2_);
|
| -
|
| - MockBeginFrameObserver obs;
|
| - EXPECT_BEGIN_FRAME_SOURCE_PAUSED(obs, false);
|
| - mux_->AddObserver(&obs);
|
| - EXPECT_BEGIN_FRAME_USED(obs, 400, 600, 300);
|
| - EXPECT_BEGIN_FRAME_USED(obs, 700, 900, 300);
|
| - EXPECT_BEGIN_FRAME_USED(obs, 1000, 1200, 300);
|
| - EXPECT_BEGIN_FRAME_USED(obs, 1001, 1201, 301);
|
| -
|
| - mux_->SetActiveSource(source1_);
|
| - SEND_BEGIN_FRAME_USED(*source1_, 400, 600, 300);
|
| - SEND_BEGIN_FRAME_USED(*source1_, 700, 900, 300);
|
| -
|
| - mux_->SetActiveSource(source2_);
|
| - SEND_BEGIN_FRAME_DROP(*source2_, 699, 899, 300);
|
| - SEND_BEGIN_FRAME_USED(*source2_, 1000, 1200, 300);
|
| -
|
| - mux_->SetActiveSource(source1_);
|
| - SEND_BEGIN_FRAME_USED(*source1_, 1001, 1201, 301);
|
| -}
|
| -
|
| -TEST_F(BeginFrameSourceMultiplexerTest, MinimumIntervalNegativeFails) {
|
| -#ifndef NDEBUG
|
| - EXPECT_DEATH(
|
| - { mux_->SetMinimumInterval(base::TimeDelta::FromInternalValue(-100)); },
|
| - "");
|
| -#endif
|
| -}
|
| -
|
| -TEST_F(BeginFrameSourceMultiplexerTest, MinimumIntervalZero) {
|
| - mux_->SetMinimumInterval(base::TimeDelta());
|
| - mux_->AddSource(source1_);
|
| -
|
| - MockBeginFrameObserver obs;
|
| - EXPECT_BEGIN_FRAME_SOURCE_PAUSED(obs, false);
|
| - mux_->AddObserver(&obs);
|
| - EXPECT_BEGIN_FRAME_USED(obs, 100, 200, 300);
|
| - EXPECT_BEGIN_FRAME_USED(obs, 400, 600, 300);
|
| - EXPECT_BEGIN_FRAME_USED(obs, 700, 900, 300);
|
| -
|
| - SEND_BEGIN_FRAME_USED(*source1_, 100, 200, 300);
|
| - SEND_BEGIN_FRAME_USED(*source1_, 400, 600, 300);
|
| - SEND_BEGIN_FRAME_USED(*source1_, 700, 900, 300);
|
| -}
|
| -
|
| -TEST_F(BeginFrameSourceMultiplexerTest, MinimumIntervalBasic) {
|
| - mux_->SetMinimumInterval(base::TimeDelta::FromInternalValue(600));
|
| - mux_->AddSource(source1_);
|
| -
|
| - MockBeginFrameObserver obs;
|
| - EXPECT_BEGIN_FRAME_SOURCE_PAUSED(obs, false);
|
| - mux_->AddObserver(&obs);
|
| - EXPECT_BEGIN_FRAME_USED(obs, 100, 200, 300);
|
| - EXPECT_BEGIN_FRAME_USED(obs, 700, 900, 300);
|
| -
|
| - SEND_BEGIN_FRAME_USED(*source1_, 100, 200, 300);
|
| - SEND_BEGIN_FRAME_DROP(*source1_, 400, 600, 300);
|
| - SEND_BEGIN_FRAME_USED(*source1_, 700, 900, 300);
|
| -}
|
| -
|
| -TEST_F(BeginFrameSourceMultiplexerTest, MinimumIntervalWithMultipleSources) {
|
| - mux_->SetMinimumInterval(base::TimeDelta::FromMicroseconds(150));
|
| - mux_->AddSource(source1_);
|
| - mux_->AddSource(source2_);
|
| -
|
| - MockBeginFrameObserver obs;
|
| - EXPECT_BEGIN_FRAME_SOURCE_PAUSED(obs, false);
|
| - mux_->AddObserver(&obs);
|
| - EXPECT_BEGIN_FRAME_USED(obs, 400, 600, 300);
|
| - EXPECT_BEGIN_FRAME_USED(obs, 700, 900, 300);
|
| - EXPECT_BEGIN_FRAME_USED(obs, 1050, 1250, 300);
|
| -
|
| - mux_->SetActiveSource(source1_);
|
| - SEND_BEGIN_FRAME_USED(*source1_, 400, 600, 300);
|
| - SEND_BEGIN_FRAME_USED(*source1_, 700, 900, 300);
|
| -
|
| - mux_->SetActiveSource(source2_);
|
| - SEND_BEGIN_FRAME_DROP(*source2_, 750, 1050, 300);
|
| - SEND_BEGIN_FRAME_USED(*source2_, 1050, 1250, 300);
|
| -
|
| - mux_->SetActiveSource(source1_);
|
| - SEND_BEGIN_FRAME_DROP(*source2_, 1100, 1400, 300);
|
| -}
|
| -
|
| -TEST_F(BeginFrameSourceMultiplexerTest, BeginFrameSourcePaused) {
|
| - mux_->AddSource(source1_);
|
| - mux_->AddSource(source2_);
|
| - mux_->SetActiveSource(source1_);
|
| -
|
| - MockBeginFrameObserver obs;
|
| - EXPECT_BEGIN_FRAME_SOURCE_PAUSED(obs, false);
|
| - mux_->AddObserver(&obs);
|
| - Mock::VerifyAndClearExpectations(&obs);
|
| -
|
| - EXPECT_BEGIN_FRAME_SOURCE_PAUSED(obs, true);
|
| - source1_->SetBeginFrameSourcePaused(true);
|
| - EXPECT_BEGIN_FRAME_SOURCE_PAUSED(obs, false);
|
| - source1_->SetBeginFrameSourcePaused(false);
|
| - Mock::VerifyAndClearExpectations(&obs);
|
| -
|
| - mux_->SetActiveSource(source2_);
|
| - Mock::VerifyAndClearExpectations(&obs);
|
| -
|
| - EXPECT_BEGIN_FRAME_SOURCE_PAUSED(obs, true);
|
| - source2_->SetBeginFrameSourcePaused(true);
|
| - EXPECT_BEGIN_FRAME_SOURCE_PAUSED(obs, false);
|
| - source2_->SetBeginFrameSourcePaused(false);
|
| -}
|
| -
|
| -TEST_F(BeginFrameSourceMultiplexerTest,
|
| - BeginFrameSourcePausedUpdateOnSourceTransition) {
|
| - mux_->AddSource(source1_);
|
| - mux_->AddSource(source2_);
|
| - source1_->SetBeginFrameSourcePaused(true);
|
| - source2_->SetBeginFrameSourcePaused(false);
|
| - mux_->SetActiveSource(source1_);
|
| -
|
| - MockBeginFrameObserver obs;
|
| - EXPECT_BEGIN_FRAME_SOURCE_PAUSED(obs, true);
|
| - mux_->AddObserver(&obs);
|
| - Mock::VerifyAndClearExpectations(&obs);
|
| -
|
| - // Paused to not paused.
|
| - EXPECT_BEGIN_FRAME_SOURCE_PAUSED(obs, false);
|
| - mux_->SetActiveSource(source2_);
|
| - Mock::VerifyAndClearExpectations(&obs);
|
| -
|
| - // Not paused to paused.
|
| - EXPECT_BEGIN_FRAME_SOURCE_PAUSED(obs, true);
|
| - mux_->SetActiveSource(source1_);
|
| - Mock::VerifyAndClearExpectations(&obs);
|
| -
|
| - EXPECT_BEGIN_FRAME_SOURCE_PAUSED(obs, false);
|
| - source1_->SetBeginFrameSourcePaused(false);
|
| - Mock::VerifyAndClearExpectations(&obs);
|
| -
|
| - // Not paused to not paused.
|
| - mux_->SetActiveSource(source2_);
|
| - Mock::VerifyAndClearExpectations(&obs);
|
| -
|
| - EXPECT_BEGIN_FRAME_SOURCE_PAUSED(obs, true);
|
| - source2_->SetBeginFrameSourcePaused(true);
|
| - Mock::VerifyAndClearExpectations(&obs);
|
| - source1_->SetBeginFrameSourcePaused(true);
|
| -
|
| - // Paused to paused.
|
| - mux_->SetActiveSource(source1_);
|
| - Mock::VerifyAndClearExpectations(&obs);
|
| -}
|
| -
|
| } // namespace
|
| } // namespace cc
|
|
|