Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6)

Side by Side Diff: webrtc/modules/rtp_rtcp/source/rtcp_packet/compound_packet_unittest.cc

Issue 1582323005: [rtp_rtcp] Append functionality moved from base RtcpPacket class to CompoundPacket (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: rebase Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 15 matching lines...) Expand all
26 using webrtc::rtcp::SenderReport; 26 using webrtc::rtcp::SenderReport;
27 using webrtc::test::RtcpPacketParser; 27 using webrtc::test::RtcpPacketParser;
28 28
29 namespace webrtc { 29 namespace webrtc {
30 30
31 const uint32_t kSenderSsrc = 0x12345678; 31 const uint32_t kSenderSsrc = 0x12345678;
32 const uint32_t kRemoteSsrc = 0x23456789; 32 const uint32_t kRemoteSsrc = 0x23456789;
33 const uint8_t kSeqNo = 13; 33 const uint8_t kSeqNo = 13;
34 34
35 TEST(RtcpCompoundPacketTest, AppendPacket) { 35 TEST(RtcpCompoundPacketTest, AppendPacket) {
36 CompoundPacket compound;
36 Fir fir; 37 Fir fir;
37 fir.WithRequestTo(kRemoteSsrc, kSeqNo); 38 fir.WithRequestTo(kRemoteSsrc, kSeqNo);
38 ReportBlock rb; 39 ReportBlock rb;
39 ReceiverReport rr; 40 ReceiverReport rr;
40 rr.From(kSenderSsrc); 41 rr.From(kSenderSsrc);
41 EXPECT_TRUE(rr.WithReportBlock(rb)); 42 EXPECT_TRUE(rr.WithReportBlock(rb));
42 rr.Append(&fir); 43 compound.Append(&rr);
44 compound.Append(&fir);
43 45
44 rtc::Buffer packet = rr.Build(); 46 rtc::Buffer packet = compound.Build();
45 RtcpPacketParser parser; 47 RtcpPacketParser parser;
46 parser.Parse(packet.data(), packet.size()); 48 parser.Parse(packet.data(), packet.size());
47 EXPECT_EQ(1, parser.receiver_report()->num_packets()); 49 EXPECT_EQ(1, parser.receiver_report()->num_packets());
48 EXPECT_EQ(kSenderSsrc, parser.receiver_report()->Ssrc()); 50 EXPECT_EQ(kSenderSsrc, parser.receiver_report()->Ssrc());
49 EXPECT_EQ(1, parser.report_block()->num_packets()); 51 EXPECT_EQ(1, parser.report_block()->num_packets());
50 EXPECT_EQ(1, parser.fir()->num_packets()); 52 EXPECT_EQ(1, parser.fir()->num_packets());
51 } 53 }
52 54
53 TEST(RtcpCompoundPacketTest, AppendPacketOnEmpty) {
54 CompoundPacket empty;
55 ReceiverReport rr;
56 rr.From(kSenderSsrc);
57 empty.Append(&rr);
58
59 rtc::Buffer packet = empty.Build();
60 RtcpPacketParser parser;
61 parser.Parse(packet.data(), packet.size());
62 EXPECT_EQ(1, parser.receiver_report()->num_packets());
63 EXPECT_EQ(0, parser.report_block()->num_packets());
64 }
65
66 TEST(RtcpCompoundPacketTest, AppendPacketWithOwnAppendedPacket) { 55 TEST(RtcpCompoundPacketTest, AppendPacketWithOwnAppendedPacket) {
56 CompoundPacket root;
57 CompoundPacket leaf;
67 Fir fir; 58 Fir fir;
68 fir.WithRequestTo(kRemoteSsrc, kSeqNo); 59 fir.WithRequestTo(kRemoteSsrc, kSeqNo);
69 Bye bye; 60 Bye bye;
70 ReportBlock rb; 61 ReportBlock rb;
71 62
72 ReceiverReport rr; 63 ReceiverReport rr;
73 EXPECT_TRUE(rr.WithReportBlock(rb)); 64 EXPECT_TRUE(rr.WithReportBlock(rb));
74 rr.Append(&fir); 65 leaf.Append(&rr);
66 leaf.Append(&fir);
75 67
76 SenderReport sr; 68 SenderReport sr;
77 sr.Append(&bye); 69 root.Append(&sr);
78 sr.Append(&rr); 70 root.Append(&bye);
71 root.Append(&leaf);
79 72
80 rtc::Buffer packet = sr.Build(); 73 rtc::Buffer packet = root.Build();
81 RtcpPacketParser parser; 74 RtcpPacketParser parser;
82 parser.Parse(packet.data(), packet.size()); 75 parser.Parse(packet.data(), packet.size());
83 EXPECT_EQ(1, parser.sender_report()->num_packets()); 76 EXPECT_EQ(1, parser.sender_report()->num_packets());
84 EXPECT_EQ(1, parser.receiver_report()->num_packets()); 77 EXPECT_EQ(1, parser.receiver_report()->num_packets());
85 EXPECT_EQ(1, parser.report_block()->num_packets()); 78 EXPECT_EQ(1, parser.report_block()->num_packets());
86 EXPECT_EQ(1, parser.bye()->num_packets()); 79 EXPECT_EQ(1, parser.bye()->num_packets());
87 EXPECT_EQ(1, parser.fir()->num_packets()); 80 EXPECT_EQ(1, parser.fir()->num_packets());
88 } 81 }
89 82
90 TEST(RtcpCompoundPacketTest, BuildWithInputBuffer) { 83 TEST(RtcpCompoundPacketTest, BuildWithInputBuffer) {
84 CompoundPacket compound;
91 Fir fir; 85 Fir fir;
92 fir.WithRequestTo(kRemoteSsrc, kSeqNo); 86 fir.WithRequestTo(kRemoteSsrc, kSeqNo);
93 ReportBlock rb; 87 ReportBlock rb;
94 ReceiverReport rr; 88 ReceiverReport rr;
95 rr.From(kSenderSsrc); 89 rr.From(kSenderSsrc);
96 EXPECT_TRUE(rr.WithReportBlock(rb)); 90 EXPECT_TRUE(rr.WithReportBlock(rb));
97 rr.Append(&fir); 91 compound.Append(&rr);
92 compound.Append(&fir);
98 93
99 const size_t kRrLength = 8; 94 const size_t kRrLength = 8;
100 const size_t kReportBlockLength = 24; 95 const size_t kReportBlockLength = 24;
101 const size_t kFirLength = 20; 96 const size_t kFirLength = 20;
102 97
103 class Verifier : public rtcp::RtcpPacket::PacketReadyCallback { 98 class Verifier : public rtcp::RtcpPacket::PacketReadyCallback {
104 public: 99 public:
105 void OnPacketReady(uint8_t* data, size_t length) override { 100 void OnPacketReady(uint8_t* data, size_t length) override {
106 RtcpPacketParser parser; 101 RtcpPacketParser parser;
107 parser.Parse(data, length); 102 parser.Parse(data, length);
108 EXPECT_EQ(1, parser.receiver_report()->num_packets()); 103 EXPECT_EQ(1, parser.receiver_report()->num_packets());
109 EXPECT_EQ(1, parser.report_block()->num_packets()); 104 EXPECT_EQ(1, parser.report_block()->num_packets());
110 EXPECT_EQ(1, parser.fir()->num_packets()); 105 EXPECT_EQ(1, parser.fir()->num_packets());
111 ++packets_created_; 106 ++packets_created_;
112 } 107 }
113 108
114 int packets_created_ = 0; 109 int packets_created_ = 0;
115 } verifier; 110 } verifier;
116 const size_t kBufferSize = kRrLength + kReportBlockLength + kFirLength; 111 const size_t kBufferSize = kRrLength + kReportBlockLength + kFirLength;
117 uint8_t buffer[kBufferSize]; 112 uint8_t buffer[kBufferSize];
118 EXPECT_TRUE(rr.BuildExternalBuffer(buffer, kBufferSize, &verifier)); 113 EXPECT_TRUE(compound.BuildExternalBuffer(buffer, kBufferSize, &verifier));
119 EXPECT_EQ(1, verifier.packets_created_); 114 EXPECT_EQ(1, verifier.packets_created_);
120 } 115 }
121 116
122 TEST(RtcpCompoundPacketTest, BuildWithTooSmallBuffer_FragmentedSend) { 117 TEST(RtcpCompoundPacketTest, BuildWithTooSmallBuffer_FragmentedSend) {
118 CompoundPacket compound;
123 Fir fir; 119 Fir fir;
124 fir.WithRequestTo(kRemoteSsrc, kSeqNo); 120 fir.WithRequestTo(kRemoteSsrc, kSeqNo);
125 ReportBlock rb; 121 ReportBlock rb;
126 ReceiverReport rr; 122 ReceiverReport rr;
127 rr.From(kSenderSsrc); 123 rr.From(kSenderSsrc);
128 EXPECT_TRUE(rr.WithReportBlock(rb)); 124 EXPECT_TRUE(rr.WithReportBlock(rb));
129 rr.Append(&fir); 125 compound.Append(&rr);
126 compound.Append(&fir);
130 127
131 const size_t kRrLength = 8; 128 const size_t kRrLength = 8;
132 const size_t kReportBlockLength = 24; 129 const size_t kReportBlockLength = 24;
133 130
134 class Verifier : public rtcp::RtcpPacket::PacketReadyCallback { 131 class Verifier : public rtcp::RtcpPacket::PacketReadyCallback {
135 public: 132 public:
136 void OnPacketReady(uint8_t* data, size_t length) override { 133 void OnPacketReady(uint8_t* data, size_t length) override {
137 RtcpPacketParser parser; 134 RtcpPacketParser parser;
138 parser.Parse(data, length); 135 parser.Parse(data, length);
139 switch (packets_created_++) { 136 switch (packets_created_++) {
(...skipping 10 matching lines...) Expand all
150 default: 147 default:
151 ADD_FAILURE() << "OnPacketReady not expected to be called " 148 ADD_FAILURE() << "OnPacketReady not expected to be called "
152 << packets_created_ << " times."; 149 << packets_created_ << " times.";
153 } 150 }
154 } 151 }
155 152
156 int packets_created_ = 0; 153 int packets_created_ = 0;
157 } verifier; 154 } verifier;
158 const size_t kBufferSize = kRrLength + kReportBlockLength; 155 const size_t kBufferSize = kRrLength + kReportBlockLength;
159 uint8_t buffer[kBufferSize]; 156 uint8_t buffer[kBufferSize];
160 EXPECT_TRUE(rr.BuildExternalBuffer(buffer, kBufferSize, &verifier)); 157 EXPECT_TRUE(compound.BuildExternalBuffer(buffer, kBufferSize, &verifier));
161 EXPECT_EQ(2, verifier.packets_created_); 158 EXPECT_EQ(2, verifier.packets_created_);
162 } 159 }
163 160
164 } // namespace webrtc 161 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698