Index: webrtc/call/rampup_tests.cc |
diff --git a/webrtc/call/rampup_tests.cc b/webrtc/call/rampup_tests.cc |
index d8f0592ec42d1ca489b9eb6afacd3c495e30b3bf..46e97cd2a5352ad97b9f6901bb5e7c6bda92fb24 100644 |
--- a/webrtc/call/rampup_tests.cc |
+++ b/webrtc/call/rampup_tests.cc |
@@ -36,9 +36,11 @@ std::vector<uint32_t> GenerateSsrcs(size_t num_streams, uint32_t ssrc_offset) { |
RampUpTester::RampUpTester(size_t num_video_streams, |
size_t num_audio_streams, |
unsigned int start_bitrate_bps, |
+ int64_t min_run_time_ms, |
const std::string& extension_type, |
bool rtx, |
- bool red) |
+ bool red, |
+ bool report_perf_stats) |
: EndToEndTest(test::CallTest::kLongTimeoutMs), |
event_(false, false), |
clock_(Clock::GetRealTimeClock()), |
@@ -49,7 +51,8 @@ RampUpTester::RampUpTester(size_t num_video_streams, |
sender_call_(nullptr), |
send_stream_(nullptr), |
start_bitrate_bps_(start_bitrate_bps), |
- start_bitrate_verified_(false), |
+ min_run_time_ms_(min_run_time_ms), |
+ report_perf_stats_(report_perf_stats), |
expected_bitrate_bps_(0), |
test_start_ms_(-1), |
ramp_up_finished_ms_(-1), |
@@ -253,17 +256,11 @@ bool RampUpTester::PollStats() { |
if (sender_call_) { |
Call::Stats stats = sender_call_->GetStats(); |
- RTC_DCHECK_GT(expected_bitrate_bps_, 0); |
- if (!start_bitrate_verified_ && start_bitrate_bps_ != 0) { |
- // For tests with an explicitly set start bitrate, verify the first |
- // bitrate estimate is close to the start bitrate and lower than the |
- // test target bitrate. This is to verify a call respects the configured |
- // start bitrate, but due to the BWE implementation we can't guarantee the |
- // first estimate really is as high as the start bitrate. |
- EXPECT_GT(stats.send_bandwidth_bps, 0.9 * start_bitrate_bps_); |
- start_bitrate_verified_ = true; |
- } |
- if (stats.send_bandwidth_bps >= expected_bitrate_bps_) { |
+ EXPECT_GE(stats.send_bandwidth_bps, start_bitrate_bps_); |
+ EXPECT_GE(expected_bitrate_bps_, 0); |
+ if (stats.send_bandwidth_bps >= expected_bitrate_bps_ && |
+ (min_run_time_ms_ == -1 || |
+ clock_->TimeInMilliseconds() - test_start_ms_ >= min_run_time_ms_)) { |
ramp_up_finished_ms_ = clock_->TimeInMilliseconds(); |
observation_complete_.Set(); |
} |
@@ -325,21 +322,23 @@ void RampUpTester::TriggerTestDone() { |
&rtx_total_sent, &rtx_padding_sent, &rtx_media_sent); |
} |
- ReportResult("ramp-up-total-packets-sent", total_packets_sent, "packets"); |
- ReportResult("ramp-up-total-sent", total_sent, "bytes"); |
- ReportResult("ramp-up-media-sent", media_sent, "bytes"); |
- ReportResult("ramp-up-padding-sent", padding_sent, "bytes"); |
- ReportResult("ramp-up-rtx-total-packets-sent", rtx_total_packets_sent, |
- "packets"); |
- ReportResult("ramp-up-rtx-total-sent", rtx_total_sent, "bytes"); |
- ReportResult("ramp-up-rtx-media-sent", rtx_media_sent, "bytes"); |
- ReportResult("ramp-up-rtx-padding-sent", rtx_padding_sent, "bytes"); |
- if (ramp_up_finished_ms_ >= 0) { |
- ReportResult("ramp-up-time", ramp_up_finished_ms_ - test_start_ms_, |
- "milliseconds"); |
+ if (report_perf_stats_) { |
+ ReportResult("ramp-up-total-packets-sent", total_packets_sent, "packets"); |
+ ReportResult("ramp-up-total-sent", total_sent, "bytes"); |
+ ReportResult("ramp-up-media-sent", media_sent, "bytes"); |
+ ReportResult("ramp-up-padding-sent", padding_sent, "bytes"); |
+ ReportResult("ramp-up-rtx-total-packets-sent", rtx_total_packets_sent, |
+ "packets"); |
+ ReportResult("ramp-up-rtx-total-sent", rtx_total_sent, "bytes"); |
+ ReportResult("ramp-up-rtx-media-sent", rtx_media_sent, "bytes"); |
+ ReportResult("ramp-up-rtx-padding-sent", rtx_padding_sent, "bytes"); |
+ if (ramp_up_finished_ms_ >= 0) { |
+ ReportResult("ramp-up-time", ramp_up_finished_ms_ - test_start_ms_, |
+ "milliseconds"); |
+ } |
+ ReportResult("ramp-up-average-network-latency", |
+ send_transport_->GetAverageDelayMs(), "milliseconds"); |
} |
- ReportResult("ramp-up-average-network-latency", |
- send_transport_->GetAverageDelayMs(), "milliseconds"); |
} |
void RampUpTester::PerformTest() { |
@@ -359,9 +358,11 @@ RampUpDownUpTester::RampUpDownUpTester(size_t num_video_streams, |
: RampUpTester(num_video_streams, |
num_audio_streams, |
start_bitrate_bps, |
+ 0, |
extension_type, |
rtx, |
- red), |
+ red, |
+ true), |
test_state_(kFirstRampup), |
state_start_ms_(clock_->TimeInMilliseconds()), |
interval_start_ms_(clock_->TimeInMilliseconds()), |
@@ -525,35 +526,45 @@ TEST_F(RampUpTest, UpDownUpAudioTransportSequenceNumberRtx) { |
} |
TEST_F(RampUpTest, TOffsetSimulcastRedRtx) { |
- RampUpTester test(3, 0, 0, RtpExtension::kTimestampOffsetUri, true, true); |
+ RampUpTester test(3, 0, 0, 0, RtpExtension::kTimestampOffsetUri, true, true, |
+ true); |
RunBaseTest(&test); |
} |
TEST_F(RampUpTest, AbsSendTime) { |
- RampUpTester test(1, 0, 0, RtpExtension::kAbsSendTimeUri, false, false); |
+ RampUpTester test(1, 0, 0, 0, RtpExtension::kAbsSendTimeUri, false, false, |
+ true); |
RunBaseTest(&test); |
} |
TEST_F(RampUpTest, AbsSendTimeSimulcastRedRtx) { |
- RampUpTester test(3, 0, 0, RtpExtension::kAbsSendTimeUri, true, true); |
+ RampUpTester test(3, 0, 0, 0, RtpExtension::kAbsSendTimeUri, true, true, |
+ true); |
RunBaseTest(&test); |
} |
TEST_F(RampUpTest, TransportSequenceNumber) { |
- RampUpTester test(1, 0, 0, RtpExtension::kTransportSequenceNumberUri, false, |
- false); |
+ RampUpTester test(1, 0, 0, 0, RtpExtension::kTransportSequenceNumberUri, |
+ false, false, true); |
RunBaseTest(&test); |
} |
TEST_F(RampUpTest, TransportSequenceNumberSimulcast) { |
- RampUpTester test(3, 0, 0, RtpExtension::kTransportSequenceNumberUri, false, |
- false); |
+ RampUpTester test(3, 0, 0, 0, RtpExtension::kTransportSequenceNumberUri, |
+ false, false, true); |
RunBaseTest(&test); |
} |
TEST_F(RampUpTest, TransportSequenceNumberSimulcastRedRtx) { |
- RampUpTester test(3, 0, 0, RtpExtension::kTransportSequenceNumberUri, true, |
- true); |
+ RampUpTester test(3, 0, 0, 0, RtpExtension::kTransportSequenceNumberUri, |
+ true, true, true); |
+ RunBaseTest(&test); |
+} |
+ |
+TEST_F(RampUpTest, AudioTransportSequenceNumber) { |
+ RampUpTester test(0, 1, 300000, 10000, |
+ RtpExtension::kTransportSequenceNumberUri, false, false, |
+ false); |
RunBaseTest(&test); |
} |
} // namespace webrtc |