Chromium Code Reviews| Index: webrtc/modules/rtp_rtcp/source/rtcp_packet/receiver_report_unittest.cc |
| diff --git a/webrtc/modules/rtp_rtcp/source/rtcp_packet/receiver_report_unittest.cc b/webrtc/modules/rtp_rtcp/source/rtcp_packet/receiver_report_unittest.cc |
| index 4061db889f2b39a0a2681f680722bc2ea2c08c43..de45fa6ab56823a213798d781f7ce3cf850d4b83 100644 |
| --- a/webrtc/modules/rtp_rtcp/source/rtcp_packet/receiver_report_unittest.cc |
| +++ b/webrtc/modules/rtp_rtcp/source/rtcp_packet/receiver_report_unittest.cc |
| @@ -10,6 +10,8 @@ |
| #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/receiver_report.h" |
| +#include <utility> |
| + |
| #include "webrtc/test/gmock.h" |
| #include "webrtc/test/gtest.h" |
| #include "webrtc/test/rtcp_packet_parser.h" |
| @@ -117,14 +119,43 @@ TEST(RtcpPacketReceiverReportTest, CreateAndParseWithTwoReportBlocks) { |
| TEST(RtcpPacketReceiverReportTest, CreateWithTooManyReportBlocks) { |
| ReceiverReport rr; |
| rr.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 < ReceiverReport::kMaxNumberOfReportBlocks; ++i) { |
| rb.SetMediaSsrc(kRemoteSsrc + i); |
| EXPECT_TRUE(rr.AddReportBlock(rb)); |
| } |
| - rb.SetMediaSsrc(kRemoteSsrc + kMaxReportBlocks); |
| + rb.SetMediaSsrc(kRemoteSsrc - 1); |
|
eladalon
2017/07/25 13:26:09
IMHO, as a second pair of eyes, it was clearer wit
danilchap
2017/07/25 13:39:00
I'll add + kMax back since it is clearer.
|
| EXPECT_FALSE(rr.AddReportBlock(rb)); |
| } |
| +TEST(RtcpPacketReceiverReportTest, SetReportBlocksOverwritesOldBlocks) { |
| + ReceiverReport rr; |
| + ReportBlock report_block; |
| + // Use jitter field of the report blocks to distinguish them. |
| + report_block.SetJitter(1001u); |
| + rr.AddReportBlock(report_block); |
| + ASSERT_EQ(rr.report_blocks().size(), 1u); |
| + ASSERT_EQ(rr.report_blocks()[0].jitter(), 1001u); |
| + |
| + std::vector<ReportBlock> blocks(3u); |
| + blocks[0].SetJitter(2001u); |
| + blocks[1].SetJitter(3001u); |
| + blocks[2].SetJitter(4001u); |
| + EXPECT_TRUE(rr.SetReportBlocks(blocks)); |
| + ASSERT_EQ(rr.report_blocks().size(), 3u); |
| + EXPECT_EQ(rr.report_blocks()[0].jitter(), 2001u); |
| + EXPECT_EQ(rr.report_blocks()[1].jitter(), 3001u); |
| + EXPECT_EQ(rr.report_blocks()[2].jitter(), 4001u); |
| +} |
| + |
| +TEST(RtcpPacketReceiverReportTest, SetReportBlocksMaxLimit) { |
| + ReceiverReport rr; |
| + std::vector<ReportBlock> max_blocks(ReceiverReport::kMaxNumberOfReportBlocks); |
| + EXPECT_TRUE(rr.SetReportBlocks(std::move(max_blocks))); |
| + |
| + std::vector<ReportBlock> one_too_many_blocks( |
| + ReceiverReport::kMaxNumberOfReportBlocks + 1); |
| + EXPECT_FALSE(rr.SetReportBlocks(std::move(one_too_many_blocks))); |
| +} |
| + |
| } // namespace webrtc |