| Index: webrtc/modules/rtp_rtcp/source/rtcp_packet/sender_report_unittest.cc
|
| diff --git a/webrtc/modules/rtp_rtcp/source/rtcp_packet/sender_report_unittest.cc b/webrtc/modules/rtp_rtcp/source/rtcp_packet/sender_report_unittest.cc
|
| index c7576500a42598ae94a4447c347e0a2f968775ec..8e3a926dde5fbb1e105634fd7d34666ed3ac6c25 100644
|
| --- a/webrtc/modules/rtp_rtcp/source/rtcp_packet/sender_report_unittest.cc
|
| +++ b/webrtc/modules/rtp_rtcp/source/rtcp_packet/sender_report_unittest.cc
|
| @@ -10,6 +10,8 @@
|
|
|
| #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/sender_report.h"
|
|
|
| +#include <utility>
|
| +
|
| #include "webrtc/test/gmock.h"
|
| #include "webrtc/test/gtest.h"
|
| #include "webrtc/test/rtcp_packet_parser.h"
|
| @@ -101,14 +103,43 @@ TEST(RtcpPacketSenderReportTest, CreateAndParseWithTwoReportBlocks) {
|
| TEST(RtcpPacketSenderReportTest, CreateWithTooManyReportBlocks) {
|
| SenderReport sr;
|
| sr.SetSenderSsrc(kSenderSsrc);
|
| - const size_t kMaxReportBlocks = (1 << 5) - 1;
|
| ReportBlock rb;
|
| - for (size_t i = 0; i < kMaxReportBlocks; ++i) {
|
| + for (size_t i = 0; i < SenderReport::kMaxNumberOfReportBlocks; ++i) {
|
| rb.SetMediaSsrc(kRemoteSsrc + i);
|
| EXPECT_TRUE(sr.AddReportBlock(rb));
|
| }
|
| - rb.SetMediaSsrc(kRemoteSsrc + kMaxReportBlocks);
|
| + rb.SetMediaSsrc(kRemoteSsrc + SenderReport::kMaxNumberOfReportBlocks);
|
| EXPECT_FALSE(sr.AddReportBlock(rb));
|
| }
|
|
|
| +TEST(RtcpPacketSenderReportTest, SetReportBlocksOverwritesOldBlocks) {
|
| + SenderReport sr;
|
| + ReportBlock report_block;
|
| + // Use jitter field of the report blocks to distinguish them.
|
| + report_block.SetJitter(1001u);
|
| + sr.AddReportBlock(report_block);
|
| + ASSERT_EQ(sr.report_blocks().size(), 1u);
|
| + ASSERT_EQ(sr.report_blocks()[0].jitter(), 1001u);
|
| +
|
| + std::vector<ReportBlock> blocks(3u);
|
| + blocks[0].SetJitter(2001u);
|
| + blocks[1].SetJitter(3001u);
|
| + blocks[2].SetJitter(4001u);
|
| + EXPECT_TRUE(sr.SetReportBlocks(blocks));
|
| + ASSERT_EQ(sr.report_blocks().size(), 3u);
|
| + EXPECT_EQ(sr.report_blocks()[0].jitter(), 2001u);
|
| + EXPECT_EQ(sr.report_blocks()[1].jitter(), 3001u);
|
| + EXPECT_EQ(sr.report_blocks()[2].jitter(), 4001u);
|
| +}
|
| +
|
| +TEST(RtcpPacketSenderReportTest, SetReportBlocksMaxLimit) {
|
| + SenderReport sr;
|
| + std::vector<ReportBlock> max_blocks(SenderReport::kMaxNumberOfReportBlocks);
|
| + EXPECT_TRUE(sr.SetReportBlocks(std::move(max_blocks)));
|
| +
|
| + std::vector<ReportBlock> one_too_many_blocks(
|
| + SenderReport::kMaxNumberOfReportBlocks + 1);
|
| + EXPECT_FALSE(sr.SetReportBlocks(std::move(one_too_many_blocks)));
|
| +}
|
| +
|
| } // namespace webrtc
|
|
|