| Index: media/cast/test/end2end_unittest.cc
|
| diff --git a/media/cast/test/end2end_unittest.cc b/media/cast/test/end2end_unittest.cc
|
| index ce1675a98408c9142b6fbc1cd3d69ab1796d9bcb..10cf37714adefcbd6fc37f4aae535d98b7f5ea38 100644
|
| --- a/media/cast/test/end2end_unittest.cc
|
| +++ b/media/cast/test/end2end_unittest.cc
|
| @@ -1357,6 +1357,16 @@ TEST_F(End2EndTest, BasicFakeSoftwareVideo) {
|
| EXPECT_EQ(1000ul, video_ticks_.size());
|
| }
|
|
|
| +// The following tests run many many iterations to make sure that
|
| +// buffers don't fill, timers don't go askew etc. However, these
|
| +// high-level tests are too expensive in debug mode, so we reduce
|
| +// the iterations in debug mode.
|
| +#if defined(NDEBUG)
|
| +const size_t kLongTestIterations = 10000;
|
| +#else
|
| +const size_t kLongTestIterations = 1000;
|
| +#endif
|
| +
|
| TEST_F(End2EndTest, ReceiverClockFast) {
|
| Configure(CODEC_VIDEO_FAKE, CODEC_AUDIO_PCM16, 32000,
|
| 1);
|
| @@ -1364,13 +1374,14 @@ TEST_F(End2EndTest, ReceiverClockFast) {
|
| StartBasicPlayer();
|
| SetReceiverSkew(2.0, base::TimeDelta::FromMicroseconds(1234567));
|
|
|
| - int frames_counter = 0;
|
| - for (; frames_counter < 10000; ++frames_counter) {
|
| + for (size_t frames_counter = 0;
|
| + frames_counter < kLongTestIterations;
|
| + ++frames_counter) {
|
| SendFakeVideoFrame(testing_clock_sender_->NowTicks());
|
| RunTasks(kFrameTimerMs);
|
| }
|
| RunTasks(2 * kFrameTimerMs + 1); // Empty the pipeline.
|
| - EXPECT_EQ(10000ul, video_ticks_.size());
|
| + EXPECT_EQ(kLongTestIterations, video_ticks_.size());
|
| }
|
|
|
| TEST_F(End2EndTest, ReceiverClockSlow) {
|
| @@ -1380,13 +1391,14 @@ TEST_F(End2EndTest, ReceiverClockSlow) {
|
| StartBasicPlayer();
|
| SetReceiverSkew(0.5, base::TimeDelta::FromMicroseconds(-765432));
|
|
|
| - int frames_counter = 0;
|
| - for (; frames_counter < 10000; ++frames_counter) {
|
| + for (size_t frames_counter = 0;
|
| + frames_counter < kLongTestIterations;
|
| + ++frames_counter) {
|
| SendFakeVideoFrame(testing_clock_sender_->NowTicks());
|
| RunTasks(kFrameTimerMs);
|
| }
|
| RunTasks(2 * kFrameTimerMs + 1); // Empty the pipeline.
|
| - EXPECT_EQ(10000ul, video_ticks_.size());
|
| + EXPECT_EQ(kLongTestIterations, video_ticks_.size());
|
| }
|
|
|
| TEST_F(End2EndTest, SmoothPlayoutWithFivePercentClockRateSkew) {
|
| @@ -1402,13 +1414,14 @@ TEST_F(End2EndTest, SmoothPlayoutWithFivePercentClockRateSkew) {
|
| base::TimeDelta::FromMilliseconds(kFrameTimerMs) * 110 / 100,
|
| base::TimeDelta::FromMilliseconds(kFrameTimerMs) / 10);
|
|
|
| - int frames_counter = 0;
|
| - for (; frames_counter < 10000; ++frames_counter) {
|
| + for (size_t frames_counter = 0;
|
| + frames_counter < kLongTestIterations;
|
| + ++frames_counter) {
|
| SendFakeVideoFrame(testing_clock_sender_->NowTicks());
|
| RunTasks(kFrameTimerMs);
|
| }
|
| RunTasks(2 * kFrameTimerMs + 1); // Empty the pipeline.
|
| - EXPECT_EQ(10000ul, video_ticks_.size());
|
| + EXPECT_EQ(kLongTestIterations, video_ticks_.size());
|
| }
|
|
|
| TEST_F(End2EndTest, EvilNetwork) {
|
| @@ -1419,16 +1432,16 @@ TEST_F(End2EndTest, EvilNetwork) {
|
| Create();
|
| StartBasicPlayer();
|
|
|
| - int frames_counter = 0;
|
| - for (; frames_counter < 10000; ++frames_counter) {
|
| + for (size_t frames_counter = 0;
|
| + frames_counter < kLongTestIterations;
|
| + ++frames_counter) {
|
| SendFakeVideoFrame(testing_clock_sender_->NowTicks());
|
| RunTasks(kFrameTimerMs);
|
| }
|
| base::TimeTicks test_end = testing_clock_receiver_->NowTicks();
|
| RunTasks(100 * kFrameTimerMs + 1); // Empty the pipeline.
|
| - EXPECT_GT(video_ticks_.size(), 100ul);
|
| - VLOG(1) << "Fully transmitted " << video_ticks_.size()
|
| - << " out of 10000 frames.";
|
| + EXPECT_GT(video_ticks_.size(), kLongTestIterations / 100);
|
| + VLOG(1) << "Fully transmitted " << video_ticks_.size() << " frames.";
|
| EXPECT_LT((video_ticks_.back().second - test_end).InMilliseconds(), 1000);
|
| }
|
|
|
| @@ -1442,22 +1455,21 @@ TEST_F(End2EndTest, ShoveHighFrameRateDownYerThroat) {
|
| Create();
|
| StartBasicPlayer();
|
|
|
| - int frames_counter = 0;
|
| - for (; frames_counter < 10000; ++frames_counter) {
|
| + for (size_t frames_counter = 0;
|
| + frames_counter < kLongTestIterations;
|
| + ++frames_counter) {
|
| SendFakeVideoFrame(testing_clock_sender_->NowTicks());
|
| RunTasks(10 /* 10 ms, but 33.3 expected by system */);
|
| }
|
| base::TimeTicks test_end = testing_clock_receiver_->NowTicks();
|
| RunTasks(100 * kFrameTimerMs + 1); // Empty the pipeline.
|
| - EXPECT_LT(100ul, video_ticks_.size());
|
| - EXPECT_GE(3334ul, video_ticks_.size());
|
| - VLOG(1) << "Fully transmitted " << video_ticks_.size()
|
| - << " out of 10000 frames.";
|
| + EXPECT_LT(kLongTestIterations / 100, video_ticks_.size());
|
| + EXPECT_GE(kLongTestIterations / 3, video_ticks_.size());
|
| + VLOG(1) << "Fully transmitted " << video_ticks_.size() << " frames.";
|
| EXPECT_LT((video_ticks_.back().second - test_end).InMilliseconds(), 1000);
|
| }
|
|
|
| -// Disabled due to flake: http://crbug.com/448511
|
| -TEST_F(End2EndTest, DISABLED_OldPacketNetwork) {
|
| +TEST_F(End2EndTest, OldPacketNetwork) {
|
| Configure(CODEC_VIDEO_FAKE, CODEC_AUDIO_PCM16, 32000, 1);
|
| sender_to_receiver_.SetPacketPipe(test::NewRandomDrop(0.01));
|
| scoped_ptr<test::PacketPipe> echo_chamber(
|
| @@ -1480,14 +1492,15 @@ TEST_F(End2EndTest, DISABLED_OldPacketNetwork) {
|
| base::TimeDelta::FromMilliseconds(kFrameTimerMs) * 110 / 100,
|
| base::TimeDelta::FromMilliseconds(kFrameTimerMs) / 10);
|
|
|
| - int frames_counter = 0;
|
| - for (; frames_counter < 10000; ++frames_counter) {
|
| + for (size_t frames_counter = 0;
|
| + frames_counter < kLongTestIterations;
|
| + ++frames_counter) {
|
| SendFakeVideoFrame(testing_clock_sender_->NowTicks());
|
| RunTasks(kFrameTimerMs);
|
| }
|
| RunTasks(100 * kFrameTimerMs + 1); // Empty the pipeline.
|
|
|
| - EXPECT_EQ(10000ul, video_ticks_.size());
|
| + EXPECT_EQ(kLongTestIterations, video_ticks_.size());
|
| }
|
|
|
| TEST_F(End2EndTest, TestSetPlayoutDelay) {
|
|
|