| 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,
|
|
|