Commit ea0c0425 authored by hubbe's avatar hubbe Committed by Commit bot

Cast: Speed up some long running tests in DEBUG mode.

These tests iterate over 10000 frames, and with debug mode
being 13+ times slower than release mode, this ends up taking
too long. Hopefully we won't loose much coverage by reducing
the number of iterations in debug mode.

BUG=448035, 448511

Review URL: https://codereview.chromium.org/832293003

Cr-Commit-Position: refs/heads/master@{#311512}
parent d9c40a20
...@@ -1357,6 +1357,16 @@ TEST_F(End2EndTest, BasicFakeSoftwareVideo) { ...@@ -1357,6 +1357,16 @@ TEST_F(End2EndTest, BasicFakeSoftwareVideo) {
EXPECT_EQ(1000ul, video_ticks_.size()); 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) { TEST_F(End2EndTest, ReceiverClockFast) {
Configure(CODEC_VIDEO_FAKE, CODEC_AUDIO_PCM16, 32000, Configure(CODEC_VIDEO_FAKE, CODEC_AUDIO_PCM16, 32000,
1); 1);
...@@ -1364,13 +1374,14 @@ TEST_F(End2EndTest, ReceiverClockFast) { ...@@ -1364,13 +1374,14 @@ TEST_F(End2EndTest, ReceiverClockFast) {
StartBasicPlayer(); StartBasicPlayer();
SetReceiverSkew(2.0, base::TimeDelta::FromMicroseconds(1234567)); SetReceiverSkew(2.0, base::TimeDelta::FromMicroseconds(1234567));
int frames_counter = 0; for (size_t frames_counter = 0;
for (; frames_counter < 10000; ++frames_counter) { frames_counter < kLongTestIterations;
++frames_counter) {
SendFakeVideoFrame(testing_clock_sender_->NowTicks()); SendFakeVideoFrame(testing_clock_sender_->NowTicks());
RunTasks(kFrameTimerMs); RunTasks(kFrameTimerMs);
} }
RunTasks(2 * kFrameTimerMs + 1); // Empty the pipeline. RunTasks(2 * kFrameTimerMs + 1); // Empty the pipeline.
EXPECT_EQ(10000ul, video_ticks_.size()); EXPECT_EQ(kLongTestIterations, video_ticks_.size());
} }
TEST_F(End2EndTest, ReceiverClockSlow) { TEST_F(End2EndTest, ReceiverClockSlow) {
...@@ -1380,13 +1391,14 @@ TEST_F(End2EndTest, ReceiverClockSlow) { ...@@ -1380,13 +1391,14 @@ TEST_F(End2EndTest, ReceiverClockSlow) {
StartBasicPlayer(); StartBasicPlayer();
SetReceiverSkew(0.5, base::TimeDelta::FromMicroseconds(-765432)); SetReceiverSkew(0.5, base::TimeDelta::FromMicroseconds(-765432));
int frames_counter = 0; for (size_t frames_counter = 0;
for (; frames_counter < 10000; ++frames_counter) { frames_counter < kLongTestIterations;
++frames_counter) {
SendFakeVideoFrame(testing_clock_sender_->NowTicks()); SendFakeVideoFrame(testing_clock_sender_->NowTicks());
RunTasks(kFrameTimerMs); RunTasks(kFrameTimerMs);
} }
RunTasks(2 * kFrameTimerMs + 1); // Empty the pipeline. RunTasks(2 * kFrameTimerMs + 1); // Empty the pipeline.
EXPECT_EQ(10000ul, video_ticks_.size()); EXPECT_EQ(kLongTestIterations, video_ticks_.size());
} }
TEST_F(End2EndTest, SmoothPlayoutWithFivePercentClockRateSkew) { TEST_F(End2EndTest, SmoothPlayoutWithFivePercentClockRateSkew) {
...@@ -1402,13 +1414,14 @@ TEST_F(End2EndTest, SmoothPlayoutWithFivePercentClockRateSkew) { ...@@ -1402,13 +1414,14 @@ TEST_F(End2EndTest, SmoothPlayoutWithFivePercentClockRateSkew) {
base::TimeDelta::FromMilliseconds(kFrameTimerMs) * 110 / 100, base::TimeDelta::FromMilliseconds(kFrameTimerMs) * 110 / 100,
base::TimeDelta::FromMilliseconds(kFrameTimerMs) / 10); base::TimeDelta::FromMilliseconds(kFrameTimerMs) / 10);
int frames_counter = 0; for (size_t frames_counter = 0;
for (; frames_counter < 10000; ++frames_counter) { frames_counter < kLongTestIterations;
++frames_counter) {
SendFakeVideoFrame(testing_clock_sender_->NowTicks()); SendFakeVideoFrame(testing_clock_sender_->NowTicks());
RunTasks(kFrameTimerMs); RunTasks(kFrameTimerMs);
} }
RunTasks(2 * kFrameTimerMs + 1); // Empty the pipeline. RunTasks(2 * kFrameTimerMs + 1); // Empty the pipeline.
EXPECT_EQ(10000ul, video_ticks_.size()); EXPECT_EQ(kLongTestIterations, video_ticks_.size());
} }
TEST_F(End2EndTest, EvilNetwork) { TEST_F(End2EndTest, EvilNetwork) {
...@@ -1419,16 +1432,16 @@ TEST_F(End2EndTest, EvilNetwork) { ...@@ -1419,16 +1432,16 @@ TEST_F(End2EndTest, EvilNetwork) {
Create(); Create();
StartBasicPlayer(); StartBasicPlayer();
int frames_counter = 0; for (size_t frames_counter = 0;
for (; frames_counter < 10000; ++frames_counter) { frames_counter < kLongTestIterations;
++frames_counter) {
SendFakeVideoFrame(testing_clock_sender_->NowTicks()); SendFakeVideoFrame(testing_clock_sender_->NowTicks());
RunTasks(kFrameTimerMs); RunTasks(kFrameTimerMs);
} }
base::TimeTicks test_end = testing_clock_receiver_->NowTicks(); base::TimeTicks test_end = testing_clock_receiver_->NowTicks();
RunTasks(100 * kFrameTimerMs + 1); // Empty the pipeline. RunTasks(100 * kFrameTimerMs + 1); // Empty the pipeline.
EXPECT_GT(video_ticks_.size(), 100ul); EXPECT_GT(video_ticks_.size(), kLongTestIterations / 100);
VLOG(1) << "Fully transmitted " << video_ticks_.size() VLOG(1) << "Fully transmitted " << video_ticks_.size() << " frames.";
<< " out of 10000 frames.";
EXPECT_LT((video_ticks_.back().second - test_end).InMilliseconds(), 1000); EXPECT_LT((video_ticks_.back().second - test_end).InMilliseconds(), 1000);
} }
...@@ -1442,22 +1455,21 @@ TEST_F(End2EndTest, ShoveHighFrameRateDownYerThroat) { ...@@ -1442,22 +1455,21 @@ TEST_F(End2EndTest, ShoveHighFrameRateDownYerThroat) {
Create(); Create();
StartBasicPlayer(); StartBasicPlayer();
int frames_counter = 0; for (size_t frames_counter = 0;
for (; frames_counter < 10000; ++frames_counter) { frames_counter < kLongTestIterations;
++frames_counter) {
SendFakeVideoFrame(testing_clock_sender_->NowTicks()); SendFakeVideoFrame(testing_clock_sender_->NowTicks());
RunTasks(10 /* 10 ms, but 33.3 expected by system */); RunTasks(10 /* 10 ms, but 33.3 expected by system */);
} }
base::TimeTicks test_end = testing_clock_receiver_->NowTicks(); base::TimeTicks test_end = testing_clock_receiver_->NowTicks();
RunTasks(100 * kFrameTimerMs + 1); // Empty the pipeline. RunTasks(100 * kFrameTimerMs + 1); // Empty the pipeline.
EXPECT_LT(100ul, video_ticks_.size()); EXPECT_LT(kLongTestIterations / 100, video_ticks_.size());
EXPECT_GE(3334ul, video_ticks_.size()); EXPECT_GE(kLongTestIterations / 3, video_ticks_.size());
VLOG(1) << "Fully transmitted " << video_ticks_.size() VLOG(1) << "Fully transmitted " << video_ticks_.size() << " frames.";
<< " out of 10000 frames.";
EXPECT_LT((video_ticks_.back().second - test_end).InMilliseconds(), 1000); EXPECT_LT((video_ticks_.back().second - test_end).InMilliseconds(), 1000);
} }
// Disabled due to flake: http://crbug.com/448511 TEST_F(End2EndTest, OldPacketNetwork) {
TEST_F(End2EndTest, DISABLED_OldPacketNetwork) {
Configure(CODEC_VIDEO_FAKE, CODEC_AUDIO_PCM16, 32000, 1); Configure(CODEC_VIDEO_FAKE, CODEC_AUDIO_PCM16, 32000, 1);
sender_to_receiver_.SetPacketPipe(test::NewRandomDrop(0.01)); sender_to_receiver_.SetPacketPipe(test::NewRandomDrop(0.01));
scoped_ptr<test::PacketPipe> echo_chamber( scoped_ptr<test::PacketPipe> echo_chamber(
...@@ -1480,14 +1492,15 @@ TEST_F(End2EndTest, DISABLED_OldPacketNetwork) { ...@@ -1480,14 +1492,15 @@ TEST_F(End2EndTest, DISABLED_OldPacketNetwork) {
base::TimeDelta::FromMilliseconds(kFrameTimerMs) * 110 / 100, base::TimeDelta::FromMilliseconds(kFrameTimerMs) * 110 / 100,
base::TimeDelta::FromMilliseconds(kFrameTimerMs) / 10); base::TimeDelta::FromMilliseconds(kFrameTimerMs) / 10);
int frames_counter = 0; for (size_t frames_counter = 0;
for (; frames_counter < 10000; ++frames_counter) { frames_counter < kLongTestIterations;
++frames_counter) {
SendFakeVideoFrame(testing_clock_sender_->NowTicks()); SendFakeVideoFrame(testing_clock_sender_->NowTicks());
RunTasks(kFrameTimerMs); RunTasks(kFrameTimerMs);
} }
RunTasks(100 * kFrameTimerMs + 1); // Empty the pipeline. RunTasks(100 * kFrameTimerMs + 1); // Empty the pipeline.
EXPECT_EQ(10000ul, video_ticks_.size()); EXPECT_EQ(kLongTestIterations, video_ticks_.size());
} }
TEST_F(End2EndTest, TestSetPlayoutDelay) { TEST_F(End2EndTest, TestSetPlayoutDelay) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment