summaryrefslogtreecommitdiffstats
path: root/cc/scheduler/begin_frame_source_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'cc/scheduler/begin_frame_source_unittest.cc')
-rw-r--r--cc/scheduler/begin_frame_source_unittest.cc337
1 files changed, 0 insertions, 337 deletions
diff --git a/cc/scheduler/begin_frame_source_unittest.cc b/cc/scheduler/begin_frame_source_unittest.cc
index 6ab9074..418fd32 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