Index: webrtc/logging/rtc_event_log/rtc_event_log_unittest_helper.cc |
diff --git a/webrtc/logging/rtc_event_log/rtc_event_log_unittest_helper.cc b/webrtc/logging/rtc_event_log/rtc_event_log_unittest_helper.cc |
index 5bd8e4d0609c60f805e01e19343fbe2b824ea360..e7db5930f7c15ec937f5b7c19a2ca2d14012ab76 100644 |
--- a/webrtc/logging/rtc_event_log/rtc_event_log_unittest_helper.cc |
+++ b/webrtc/logging/rtc_event_log/rtc_event_log_unittest_helper.cc |
@@ -42,6 +42,20 @@ MediaType GetRuntimeMediaType(rtclog::MediaType media_type) { |
RTC_NOTREACHED(); |
return MediaType::ANY; |
} |
+ |
+BandwidthUsage GetRuntimeDetectorState( |
+ rtclog::DelayBasedBweUpdate::DetectorState detector_state) { |
+ switch (detector_state) { |
+ case rtclog::DelayBasedBweUpdate::BWE_NORMAL: |
+ return kBwNormal; |
+ case rtclog::DelayBasedBweUpdate::BWE_UNDERUSING: |
+ return kBwUnderusing; |
+ case rtclog::DelayBasedBweUpdate::BWE_OVERUSING: |
+ return kBwOverusing; |
+ } |
+ RTC_NOTREACHED(); |
+ return kBwNormal; |
+} |
} // namespace |
// Checks that the event has a timestamp, a type and exactly the data field |
@@ -64,6 +78,19 @@ MediaType GetRuntimeMediaType(rtclog::MediaType media_type) { |
<< "Event of type " << type << " has " |
<< (event.has_rtcp_packet() ? "" : "no ") << "RTCP packet"; |
} |
+ if ((type == rtclog::Event::LOSS_BASED_BWE_UPDATE) != |
+ event.has_loss_based_bwe_update()) { |
+ return ::testing::AssertionFailure() |
+ << "Event of type " << type << " has " |
+ << (event.has_loss_based_bwe_update() ? "" : "no ") << "loss update"; |
+ } |
+ if ((type == rtclog::Event::DELAY_BASED_BWE_UPDATE) != |
+ event.has_delay_based_bwe_update()) { |
+ return ::testing::AssertionFailure() |
+ << "Event of type " << type << " has " |
+ << (event.has_delay_based_bwe_update() ? "" : "no ") |
+ << "delay update"; |
+ } |
if ((type == rtclog::Event::AUDIO_PLAYOUT_EVENT) != |
event.has_audio_playout_event()) { |
return ::testing::AssertionFailure() |
@@ -98,6 +125,13 @@ MediaType GetRuntimeMediaType(rtclog::MediaType media_type) { |
<< (event.has_audio_sender_config() ? "" : "no ") |
<< "audio sender config"; |
} |
+ if ((type == rtclog::Event::AUDIO_NETWORK_ADAPTATION_EVENT) != |
+ event.has_audio_network_adaptation()) { |
+ return ::testing::AssertionFailure() |
+ << "Event of type " << type << " has " |
+ << (event.has_audio_network_adaptation() ? "" : "no ") |
+ << "audio network adaptation"; |
+ } |
return ::testing::AssertionSuccess(); |
} |
@@ -441,10 +475,10 @@ void RtcEventLogTestHelper::VerifyBweLossEvent( |
int32_t total_packets) { |
const rtclog::Event& event = parsed_log.events_[index]; |
ASSERT_TRUE(IsValidBasicEvent(event)); |
- ASSERT_EQ(rtclog::Event::BWE_PACKET_LOSS_EVENT, event.type()); |
- const rtclog::BwePacketLossEvent& bwe_event = event.bwe_packet_loss_event(); |
- ASSERT_TRUE(bwe_event.has_bitrate()); |
- EXPECT_EQ(bitrate, bwe_event.bitrate()); |
+ ASSERT_EQ(rtclog::Event::LOSS_BASED_BWE_UPDATE, event.type()); |
+ const rtclog::LossBasedBweUpdate& bwe_event = event.loss_based_bwe_update(); |
+ ASSERT_TRUE(bwe_event.has_bitrate_bps()); |
+ EXPECT_EQ(bitrate, bwe_event.bitrate_bps()); |
ASSERT_TRUE(bwe_event.has_fraction_loss()); |
EXPECT_EQ(fraction_loss, bwe_event.fraction_loss()); |
ASSERT_TRUE(bwe_event.has_total_packets()); |
@@ -454,13 +488,37 @@ void RtcEventLogTestHelper::VerifyBweLossEvent( |
int32_t parsed_bitrate; |
uint8_t parsed_fraction_loss; |
int32_t parsed_total_packets; |
- parsed_log.GetBwePacketLossEvent( |
+ parsed_log.GetLossBasedBweUpdate( |
index, &parsed_bitrate, &parsed_fraction_loss, &parsed_total_packets); |
EXPECT_EQ(bitrate, parsed_bitrate); |
EXPECT_EQ(fraction_loss, parsed_fraction_loss); |
EXPECT_EQ(total_packets, parsed_total_packets); |
} |
+void RtcEventLogTestHelper::VerifyBweDelayEvent( |
+ const ParsedRtcEventLog& parsed_log, |
+ size_t index, |
+ int32_t bitrate, |
+ BandwidthUsage detector_state) { |
+ const rtclog::Event& event = parsed_log.events_[index]; |
+ ASSERT_TRUE(IsValidBasicEvent(event)); |
+ ASSERT_EQ(rtclog::Event::DELAY_BASED_BWE_UPDATE, event.type()); |
+ const rtclog::DelayBasedBweUpdate& bwe_event = event.delay_based_bwe_update(); |
+ ASSERT_TRUE(bwe_event.has_bitrate_bps()); |
+ EXPECT_EQ(bitrate, bwe_event.bitrate_bps()); |
+ ASSERT_TRUE(bwe_event.has_detector_state()); |
+ EXPECT_EQ(detector_state, |
+ GetRuntimeDetectorState(bwe_event.detector_state())); |
+ |
+ // Check consistency of the parser. |
+ int32_t parsed_bitrate; |
+ BandwidthUsage parsed_detector_state; |
+ parsed_log.GetDelayBasedBweUpdate(index, &parsed_bitrate, |
+ &parsed_detector_state); |
+ EXPECT_EQ(bitrate, parsed_bitrate); |
+ EXPECT_EQ(detector_state, parsed_detector_state); |
+} |
+ |
void RtcEventLogTestHelper::VerifyAudioNetworkAdaptation( |
const ParsedRtcEventLog& parsed_log, |
size_t index, |