Fix for flaky test: VideoSendStreamTest.RtcpSenderReportContainsMediaBytesSent.
Only compare media bytes sent if number of sent packets in rtcp packet are equal to sent rtp packets.
BUG=4327
R=pbos@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/34299004
Cr-Commit-Position: refs/heads/master@{#8454}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8454 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/webrtc/video/video_send_stream_tests.cc b/webrtc/video/video_send_stream_tests.cc
index 8330b9d..f5ec59b 100644
--- a/webrtc/video/video_send_stream_tests.cc
+++ b/webrtc/video/video_send_stream_tests.cc
@@ -1423,14 +1423,17 @@
}
TEST_F(VideoSendStreamTest, RtcpSenderReportContainsMediaBytesSent) {
- class RtcpByeTest : public test::SendTest {
+ class RtcpSenderReportTest : public test::SendTest {
public:
- RtcpByeTest() : SendTest(kDefaultTimeoutMs), media_bytes_sent_(0) {}
+ RtcpSenderReportTest() : SendTest(kDefaultTimeoutMs),
+ rtp_packets_sent_(0),
+ media_bytes_sent_(0) {}
private:
virtual Action OnSendRtp(const uint8_t* packet, size_t length) OVERRIDE {
RTPHeader header;
EXPECT_TRUE(parser_->Parse(packet, length, &header));
+ ++rtp_packets_sent_;
media_bytes_sent_ += length - header.headerLength - header.paddingLength;
return SEND_PACKET;
}
@@ -1440,15 +1443,17 @@
EXPECT_TRUE(parser.IsValid());
RTCPUtility::RTCPPacketTypes packet_type = parser.Begin();
- uint32_t sender_octet_count = 0;
while (packet_type != RTCPUtility::kRtcpNotValidCode) {
if (packet_type == RTCPUtility::kRtcpSrCode) {
- sender_octet_count = parser.Packet().SR.SenderOctetCount;
- EXPECT_EQ(sender_octet_count, media_bytes_sent_);
- if (sender_octet_count > 0)
+ // Only compare sent media bytes if SenderPacketCount matches the
+ // number of sent rtp packets (a new rtp packet could be sent before
+ // the rtcp packet).
+ if (parser.Packet().SR.SenderOctetCount > 0 &&
+ parser.Packet().SR.SenderPacketCount == rtp_packets_sent_) {
+ EXPECT_EQ(media_bytes_sent_, parser.Packet().SR.SenderOctetCount);
observation_complete_->Set();
+ }
}
-
packet_type = parser.Iterate();
}
@@ -1460,6 +1465,7 @@
<< "Timed out while waiting for RTCP sender report.";
}
+ size_t rtp_packets_sent_;
size_t media_bytes_sent_;
} test;