Clean up ramp-up tests and make sure they all pass.

BUG=webrtc:6935

Review-Url: https://codereview.webrtc.org/2599013002
Cr-Commit-Position: refs/heads/master@{#15960}
This commit is contained in:
stefan 2017-01-09 04:19:24 -08:00 committed by Commit bot
parent 5e8ca36892
commit 38d8b3c9b0
2 changed files with 26 additions and 110 deletions

View File

@ -20,7 +20,6 @@ namespace webrtc {
namespace { namespace {
static const int64_t kPollIntervalMs = 20; static const int64_t kPollIntervalMs = 20;
static const int kHighBandwidthLimitBps = 80000;
static const int kExpectedHighVideoBitrateBps = 60000; static const int kExpectedHighVideoBitrateBps = 60000;
static const int kExpectedHighAudioBitrateBps = 30000; static const int kExpectedHighAudioBitrateBps = 30000;
static const int kLowBandwidthLimitBps = 20000; static const int kLowBandwidthLimitBps = 20000;
@ -367,7 +366,7 @@ RampUpDownUpTester::RampUpDownUpTester(size_t num_video_streams,
state_start_ms_(clock_->TimeInMilliseconds()), state_start_ms_(clock_->TimeInMilliseconds()),
interval_start_ms_(clock_->TimeInMilliseconds()), interval_start_ms_(clock_->TimeInMilliseconds()),
sent_bytes_(0) { sent_bytes_(0) {
forward_transport_config_.link_capacity_kbps = kHighBandwidthLimitBps / 1000; forward_transport_config_.link_capacity_kbps = GetHighLinkCapacity();
} }
RampUpDownUpTester::~RampUpDownUpTester() {} RampUpDownUpTester::~RampUpDownUpTester() {}
@ -420,9 +419,16 @@ std::string RampUpDownUpTester::GetModifierString() const {
} }
int RampUpDownUpTester::GetExpectedHighBitrate() const { int RampUpDownUpTester::GetExpectedHighBitrate() const {
if (num_audio_streams_ > 0 && num_video_streams_ == 0) int expected_bitrate_bps = 0;
return kExpectedHighAudioBitrateBps; if (num_audio_streams_ > 0)
return kExpectedHighVideoBitrateBps; expected_bitrate_bps += kExpectedHighAudioBitrateBps;
if (num_video_streams_ > 0)
expected_bitrate_bps += kExpectedHighVideoBitrateBps;
return expected_bitrate_bps;
}
int RampUpDownUpTester::GetHighLinkCapacity() const {
return 4 * GetExpectedHighBitrate() / (3 * 1000);
} }
void RampUpDownUpTester::EvolveTestState(int bitrate_bps, bool suspended) { void RampUpDownUpTester::EvolveTestState(int bitrate_bps, bool suspended) {
@ -453,8 +459,7 @@ void RampUpDownUpTester::EvolveTestState(int bitrate_bps, bool suspended) {
suspended == check_suspend_state) { suspended == check_suspend_state) {
// The ramp-down was successful. Change the channel limit back to a // The ramp-down was successful. Change the channel limit back to a
// high value, and move to the next test state. // high value, and move to the next test state.
forward_transport_config_.link_capacity_kbps = forward_transport_config_.link_capacity_kbps = GetHighLinkCapacity();
kHighBandwidthLimitBps / 1000;
send_transport_->SetConfig(forward_transport_config_); send_transport_->SetConfig(forward_transport_config_);
test_state_ = kSecondRampup; test_state_ = kSecondRampup;
webrtc::test::PrintResult("ramp_up_down_up", GetModifierString(), webrtc::test::PrintResult("ramp_up_down_up", GetModifierString(),
@ -490,123 +495,51 @@ class RampUpTest : public test::CallTest {
} }
}; };
TEST_F(RampUpTest, SingleStream) {
RampUpTester test(1, 0, 0, RtpExtension::kTimestampOffsetUri, false, false);
RunBaseTest(&test);
}
TEST_F(RampUpTest, Simulcast) {
RampUpTester test(3, 0, 0, RtpExtension::kTimestampOffsetUri, false, false);
RunBaseTest(&test);
}
TEST_F(RampUpTest, SimulcastWithRtx) {
RampUpTester test(3, 0, 0, RtpExtension::kTimestampOffsetUri, true, false);
RunBaseTest(&test);
}
TEST_F(RampUpTest, SimulcastByRedWithRtx) {
RampUpTester test(3, 0, 0, RtpExtension::kTimestampOffsetUri, true, true);
RunBaseTest(&test);
}
TEST_F(RampUpTest, SingleStreamWithHighStartBitrate) {
RampUpTester test(1, 0, 0.9 * kSingleStreamTargetBps,
RtpExtension::kTimestampOffsetUri, false, false);
RunBaseTest(&test);
}
static const uint32_t kStartBitrateBps = 60000; static const uint32_t kStartBitrateBps = 60000;
// Disabled: https://bugs.chromium.org/p/webrtc/issues/detail?id=5576 TEST_F(RampUpTest, UpDownUpAbsSendTimeSimulcastRedRtx) {
TEST_F(RampUpTest, DISABLED_UpDownUpOneStream) {
RampUpDownUpTester test(1, 0, kStartBitrateBps, RtpExtension::kAbsSendTimeUri,
false, false);
RunBaseTest(&test);
}
TEST_F(RampUpTest, DISABLED_UpDownUpThreeStreams) {
RampUpDownUpTester test(3, 0, kStartBitrateBps, RtpExtension::kAbsSendTimeUri,
false, false);
RunBaseTest(&test);
}
// Disabled: https://bugs.chromium.org/p/webrtc/issues/detail?id=5576
TEST_F(RampUpTest, DISABLED_UpDownUpOneStreamRtx) {
RampUpDownUpTester test(1, 0, kStartBitrateBps, RtpExtension::kAbsSendTimeUri,
true, false);
RunBaseTest(&test);
}
TEST_F(RampUpTest, UpDownUpThreeStreamsRtx) {
RampUpDownUpTester test(3, 0, kStartBitrateBps, RtpExtension::kAbsSendTimeUri,
true, false);
RunBaseTest(&test);
}
// Disabled: https://bugs.chromium.org/p/webrtc/issues/detail?id=5576
TEST_F(RampUpTest, DISABLED_UpDownUpOneStreamByRedRtx) {
RampUpDownUpTester test(1, 0, kStartBitrateBps, RtpExtension::kAbsSendTimeUri,
true, true);
RunBaseTest(&test);
}
TEST_F(RampUpTest, UpDownUpThreeStreamsByRedRtx) {
RampUpDownUpTester test(3, 0, kStartBitrateBps, RtpExtension::kAbsSendTimeUri, RampUpDownUpTester test(3, 0, kStartBitrateBps, RtpExtension::kAbsSendTimeUri,
true, true); true, true);
RunBaseTest(&test); RunBaseTest(&test);
} }
TEST_F(RampUpTest, SendSideVideoUpDownUpRtx) { TEST_F(RampUpTest, UpDownUpTransportSequenceNumberRtx) {
RampUpDownUpTester test(3, 0, kStartBitrateBps, RampUpDownUpTester test(3, 0, kStartBitrateBps,
RtpExtension::kTransportSequenceNumberUri, true, RtpExtension::kTransportSequenceNumberUri, true,
false); false);
RunBaseTest(&test); RunBaseTest(&test);
} }
// TODO(holmer): Enable when audio bitrates are included in the bitrate TEST_F(RampUpTest, UpDownUpAudioVideoTransportSequenceNumberRtx) {
// allocation.
TEST_F(RampUpTest, DISABLED_SendSideAudioVideoUpDownUpRtx) {
RampUpDownUpTester test(3, 1, kStartBitrateBps, RampUpDownUpTester test(3, 1, kStartBitrateBps,
RtpExtension::kTransportSequenceNumberUri, true, RtpExtension::kTransportSequenceNumberUri, true,
false); false);
RunBaseTest(&test); RunBaseTest(&test);
} }
TEST_F(RampUpTest, SendSideAudioOnlyUpDownUpRtx) { TEST_F(RampUpTest, UpDownUpAudioTransportSequenceNumberRtx) {
RampUpDownUpTester test(0, 1, kStartBitrateBps, RampUpDownUpTester test(0, 1, kStartBitrateBps,
RtpExtension::kTransportSequenceNumberUri, true, RtpExtension::kTransportSequenceNumberUri, true,
false); false);
RunBaseTest(&test); RunBaseTest(&test);
} }
TEST_F(RampUpTest, AbsSendTimeSingleStream) { TEST_F(RampUpTest, TOffsetSimulcastRedRtx) {
RampUpTester test(3, 0, 0, RtpExtension::kTimestampOffsetUri, true, true);
RunBaseTest(&test);
}
TEST_F(RampUpTest, AbsSendTime) {
RampUpTester test(1, 0, 0, RtpExtension::kAbsSendTimeUri, false, false); RampUpTester test(1, 0, 0, RtpExtension::kAbsSendTimeUri, false, false);
RunBaseTest(&test); RunBaseTest(&test);
} }
TEST_F(RampUpTest, AbsSendTimeSimulcast) { TEST_F(RampUpTest, AbsSendTimeSimulcastRedRtx) {
RampUpTester test(3, 0, 0, RtpExtension::kAbsSendTimeUri, false, false);
RunBaseTest(&test);
}
TEST_F(RampUpTest, AbsSendTimeSimulcastWithRtx) {
RampUpTester test(3, 0, 0, RtpExtension::kAbsSendTimeUri, true, false);
RunBaseTest(&test);
}
TEST_F(RampUpTest, AbsSendTimeSimulcastByRedWithRtx) {
RampUpTester test(3, 0, 0, RtpExtension::kAbsSendTimeUri, true, true); RampUpTester test(3, 0, 0, RtpExtension::kAbsSendTimeUri, true, true);
RunBaseTest(&test); RunBaseTest(&test);
} }
TEST_F(RampUpTest, AbsSendTimeSingleStreamWithHighStartBitrate) { TEST_F(RampUpTest, TransportSequenceNumber) {
RampUpTester test(1, 0, 0.9 * kSingleStreamTargetBps,
RtpExtension::kAbsSendTimeUri, false, false);
RunBaseTest(&test);
}
TEST_F(RampUpTest, TransportSequenceNumberSingleStream) {
RampUpTester test(1, 0, 0, RtpExtension::kTransportSequenceNumberUri, false, RampUpTester test(1, 0, 0, RtpExtension::kTransportSequenceNumberUri, false,
false); false);
RunBaseTest(&test); RunBaseTest(&test);
@ -618,27 +551,9 @@ TEST_F(RampUpTest, TransportSequenceNumberSimulcast) {
RunBaseTest(&test); RunBaseTest(&test);
} }
TEST_F(RampUpTest, TransportSequenceNumberSimulcastWithRtx) { TEST_F(RampUpTest, TransportSequenceNumberSimulcastRedRtx) {
RampUpTester test(3, 0, 0, RtpExtension::kTransportSequenceNumberUri, true,
false);
RunBaseTest(&test);
}
TEST_F(RampUpTest, AudioVideoTransportSequenceNumberSimulcastWithRtx) {
RampUpTester test(3, 1, 0, RtpExtension::kTransportSequenceNumberUri, true,
false);
RunBaseTest(&test);
}
TEST_F(RampUpTest, TransportSequenceNumberSimulcastByRedWithRtx) {
RampUpTester test(3, 0, 0, RtpExtension::kTransportSequenceNumberUri, true, RampUpTester test(3, 0, 0, RtpExtension::kTransportSequenceNumberUri, true,
true); true);
RunBaseTest(&test); RunBaseTest(&test);
} }
TEST_F(RampUpTest, TransportSequenceNumberSingleStreamWithHighStartBitrate) {
RampUpTester test(1, 0, 0.9 * kSingleStreamTargetBps,
RtpExtension::kTransportSequenceNumberUri, false, false);
RunBaseTest(&test);
}
} // namespace webrtc } // namespace webrtc

View File

@ -124,6 +124,7 @@ class RampUpDownUpTester : public RampUpTester {
std::string GetModifierString() const; std::string GetModifierString() const;
int GetExpectedHighBitrate() const; int GetExpectedHighBitrate() const;
int GetHighLinkCapacity() const;
void EvolveTestState(int bitrate_bps, bool suspended); void EvolveTestState(int bitrate_bps, bool suspended);
TestStates test_state_; TestStates test_state_;