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

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

Issue 2370313002: Reland of Unify rtcp packet setters (Closed)
Patch Set: Fix breaking mistype Created 4 years, 2 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 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
103 template <> 103 template <>
104 NtpTime RtcpPacketExtendedReportsTest::Rand<NtpTime>() { 104 NtpTime RtcpPacketExtendedReportsTest::Rand<NtpTime>() {
105 uint32_t secs = Rand<uint32_t>(); 105 uint32_t secs = Rand<uint32_t>();
106 uint32_t frac = Rand<uint32_t>(); 106 uint32_t frac = Rand<uint32_t>();
107 return NtpTime(secs, frac); 107 return NtpTime(secs, frac);
108 } 108 }
109 109
110 template <> 110 template <>
111 Rrtr RtcpPacketExtendedReportsTest::Rand<Rrtr>() { 111 Rrtr RtcpPacketExtendedReportsTest::Rand<Rrtr>() {
112 Rrtr rrtr; 112 Rrtr rrtr;
113 rrtr.WithNtp(Rand<NtpTime>()); 113 rrtr.SetNtp(Rand<NtpTime>());
114 return rrtr; 114 return rrtr;
115 } 115 }
116 116
117 template <> 117 template <>
118 RTCPVoIPMetric RtcpPacketExtendedReportsTest::Rand<RTCPVoIPMetric>() { 118 RTCPVoIPMetric RtcpPacketExtendedReportsTest::Rand<RTCPVoIPMetric>() {
119 RTCPVoIPMetric metric; 119 RTCPVoIPMetric metric;
120 metric.lossRate = Rand<uint8_t>(); 120 metric.lossRate = Rand<uint8_t>();
121 metric.discardRate = Rand<uint8_t>(); 121 metric.discardRate = Rand<uint8_t>();
122 metric.burstDensity = Rand<uint8_t>(); 122 metric.burstDensity = Rand<uint8_t>();
123 metric.gapDensity = Rand<uint8_t>(); 123 metric.gapDensity = Rand<uint8_t>();
(...skipping 12 matching lines...) Expand all
136 metric.RXconfig = Rand<uint8_t>(); 136 metric.RXconfig = Rand<uint8_t>();
137 metric.JBnominal = Rand<uint16_t>(); 137 metric.JBnominal = Rand<uint16_t>();
138 metric.JBmax = Rand<uint16_t>(); 138 metric.JBmax = Rand<uint16_t>();
139 metric.JBabsMax = Rand<uint16_t>(); 139 metric.JBabsMax = Rand<uint16_t>();
140 return metric; 140 return metric;
141 } 141 }
142 142
143 template <> 143 template <>
144 VoipMetric RtcpPacketExtendedReportsTest::Rand<VoipMetric>() { 144 VoipMetric RtcpPacketExtendedReportsTest::Rand<VoipMetric>() {
145 VoipMetric voip_metric; 145 VoipMetric voip_metric;
146 voip_metric.To(Rand<uint32_t>()); 146 voip_metric.SetMediaSsrc(Rand<uint32_t>());
147 voip_metric.WithVoipMetric(Rand<RTCPVoIPMetric>()); 147 voip_metric.SetVoipMetric(Rand<RTCPVoIPMetric>());
148 return voip_metric; 148 return voip_metric;
149 } 149 }
150 150
151 TEST_F(RtcpPacketExtendedReportsTest, CreateWithoutReportBlocks) { 151 TEST_F(RtcpPacketExtendedReportsTest, CreateWithoutReportBlocks) {
152 ExtendedReports xr; 152 ExtendedReports xr;
153 xr.From(kSenderSsrc); 153 xr.SetSenderSsrc(kSenderSsrc);
154 154
155 rtc::Buffer packet = xr.Build(); 155 rtc::Buffer packet = xr.Build();
156 156
157 EXPECT_THAT(make_tuple(packet.data(), packet.size()), 157 EXPECT_THAT(make_tuple(packet.data(), packet.size()),
158 ElementsAreArray(kEmptyPacket)); 158 ElementsAreArray(kEmptyPacket));
159 } 159 }
160 160
161 TEST_F(RtcpPacketExtendedReportsTest, ParseWithoutReportBlocks) { 161 TEST_F(RtcpPacketExtendedReportsTest, ParseWithoutReportBlocks) {
162 ExtendedReports parsed; 162 ExtendedReports parsed;
163 EXPECT_TRUE(test::ParseSinglePacket(kEmptyPacket, &parsed)); 163 EXPECT_TRUE(test::ParseSinglePacket(kEmptyPacket, &parsed));
164 EXPECT_EQ(kSenderSsrc, parsed.sender_ssrc()); 164 EXPECT_EQ(kSenderSsrc, parsed.sender_ssrc());
165 EXPECT_THAT(parsed.rrtrs(), IsEmpty()); 165 EXPECT_THAT(parsed.rrtrs(), IsEmpty());
166 EXPECT_THAT(parsed.dlrrs(), IsEmpty()); 166 EXPECT_THAT(parsed.dlrrs(), IsEmpty());
167 EXPECT_THAT(parsed.voip_metrics(), IsEmpty()); 167 EXPECT_THAT(parsed.voip_metrics(), IsEmpty());
168 } 168 }
169 169
170 TEST_F(RtcpPacketExtendedReportsTest, CreateAndParseWithOneRrtrBlock) { 170 TEST_F(RtcpPacketExtendedReportsTest, CreateAndParseWithOneRrtrBlock) {
171 Rrtr rrtr = Rand<Rrtr>(); 171 Rrtr rrtr = Rand<Rrtr>();
172 ExtendedReports xr; 172 ExtendedReports xr;
173 xr.From(kSenderSsrc); 173 xr.SetSenderSsrc(kSenderSsrc);
174 EXPECT_TRUE(xr.WithRrtr(rrtr)); 174 EXPECT_TRUE(xr.AddRrtr(rrtr));
175 rtc::Buffer packet = xr.Build(); 175 rtc::Buffer packet = xr.Build();
176 176
177 ExtendedReports mparsed; 177 ExtendedReports mparsed;
178 EXPECT_TRUE(test::ParseSinglePacket(packet, &mparsed)); 178 EXPECT_TRUE(test::ParseSinglePacket(packet, &mparsed));
179 const ExtendedReports& parsed = mparsed; 179 const ExtendedReports& parsed = mparsed;
180 180
181 EXPECT_EQ(kSenderSsrc, parsed.sender_ssrc()); 181 EXPECT_EQ(kSenderSsrc, parsed.sender_ssrc());
182 EXPECT_THAT(parsed.rrtrs(), ElementsAre(rrtr)); 182 EXPECT_THAT(parsed.rrtrs(), ElementsAre(rrtr));
183 } 183 }
184 184
185 TEST_F(RtcpPacketExtendedReportsTest, CreateAndParseWithTwoRrtrBlocks) { 185 TEST_F(RtcpPacketExtendedReportsTest, CreateAndParseWithTwoRrtrBlocks) {
186 Rrtr rrtr1 = Rand<Rrtr>(); 186 Rrtr rrtr1 = Rand<Rrtr>();
187 Rrtr rrtr2 = Rand<Rrtr>(); 187 Rrtr rrtr2 = Rand<Rrtr>();
188 ExtendedReports xr; 188 ExtendedReports xr;
189 xr.From(kSenderSsrc); 189 xr.SetSenderSsrc(kSenderSsrc);
190 EXPECT_TRUE(xr.WithRrtr(rrtr1)); 190 EXPECT_TRUE(xr.AddRrtr(rrtr1));
191 EXPECT_TRUE(xr.WithRrtr(rrtr2)); 191 EXPECT_TRUE(xr.AddRrtr(rrtr2));
192 192
193 rtc::Buffer packet = xr.Build(); 193 rtc::Buffer packet = xr.Build();
194 194
195 ExtendedReports mparsed; 195 ExtendedReports mparsed;
196 EXPECT_TRUE(test::ParseSinglePacket(packet, &mparsed)); 196 EXPECT_TRUE(test::ParseSinglePacket(packet, &mparsed));
197 const ExtendedReports& parsed = mparsed; 197 const ExtendedReports& parsed = mparsed;
198 198
199 EXPECT_EQ(kSenderSsrc, parsed.sender_ssrc()); 199 EXPECT_EQ(kSenderSsrc, parsed.sender_ssrc());
200 EXPECT_THAT(parsed.rrtrs(), ElementsAre(rrtr1, rrtr2)); 200 EXPECT_THAT(parsed.rrtrs(), ElementsAre(rrtr1, rrtr2));
201 } 201 }
202 202
203 TEST_F(RtcpPacketExtendedReportsTest, CreateAndParseWithDlrrWithOneSubBlock) { 203 TEST_F(RtcpPacketExtendedReportsTest, CreateAndParseWithDlrrWithOneSubBlock) {
204 Dlrr dlrr; 204 Dlrr dlrr;
205 EXPECT_TRUE(dlrr.WithDlrrItem(Rand<ReceiveTimeInfo>())); 205 EXPECT_TRUE(dlrr.AddDlrrItem(Rand<ReceiveTimeInfo>()));
206 ExtendedReports xr; 206 ExtendedReports xr;
207 xr.From(kSenderSsrc); 207 xr.SetSenderSsrc(kSenderSsrc);
208 EXPECT_TRUE(xr.WithDlrr(dlrr)); 208 EXPECT_TRUE(xr.AddDlrr(dlrr));
209 209
210 rtc::Buffer packet = xr.Build(); 210 rtc::Buffer packet = xr.Build();
211 211
212 ExtendedReports mparsed; 212 ExtendedReports mparsed;
213 EXPECT_TRUE(test::ParseSinglePacket(packet, &mparsed)); 213 EXPECT_TRUE(test::ParseSinglePacket(packet, &mparsed));
214 const ExtendedReports& parsed = mparsed; 214 const ExtendedReports& parsed = mparsed;
215 215
216 EXPECT_EQ(kSenderSsrc, parsed.sender_ssrc()); 216 EXPECT_EQ(kSenderSsrc, parsed.sender_ssrc());
217 EXPECT_THAT(parsed.dlrrs(), ElementsAre(dlrr)); 217 EXPECT_THAT(parsed.dlrrs(), ElementsAre(dlrr));
218 } 218 }
219 219
220 TEST_F(RtcpPacketExtendedReportsTest, CreateAndParseWithDlrrWithTwoSubBlocks) { 220 TEST_F(RtcpPacketExtendedReportsTest, CreateAndParseWithDlrrWithTwoSubBlocks) {
221 Dlrr dlrr; 221 Dlrr dlrr;
222 EXPECT_TRUE(dlrr.WithDlrrItem(Rand<ReceiveTimeInfo>())); 222 EXPECT_TRUE(dlrr.AddDlrrItem(Rand<ReceiveTimeInfo>()));
223 EXPECT_TRUE(dlrr.WithDlrrItem(Rand<ReceiveTimeInfo>())); 223 EXPECT_TRUE(dlrr.AddDlrrItem(Rand<ReceiveTimeInfo>()));
224 ExtendedReports xr; 224 ExtendedReports xr;
225 xr.From(kSenderSsrc); 225 xr.SetSenderSsrc(kSenderSsrc);
226 EXPECT_TRUE(xr.WithDlrr(dlrr)); 226 EXPECT_TRUE(xr.AddDlrr(dlrr));
227 227
228 rtc::Buffer packet = xr.Build(); 228 rtc::Buffer packet = xr.Build();
229 229
230 ExtendedReports mparsed; 230 ExtendedReports mparsed;
231 EXPECT_TRUE(test::ParseSinglePacket(packet, &mparsed)); 231 EXPECT_TRUE(test::ParseSinglePacket(packet, &mparsed));
232 const ExtendedReports& parsed = mparsed; 232 const ExtendedReports& parsed = mparsed;
233 233
234 EXPECT_EQ(kSenderSsrc, parsed.sender_ssrc()); 234 EXPECT_EQ(kSenderSsrc, parsed.sender_ssrc());
235 EXPECT_THAT(parsed.dlrrs(), ElementsAre(dlrr)); 235 EXPECT_THAT(parsed.dlrrs(), ElementsAre(dlrr));
236 } 236 }
237 237
238 TEST_F(RtcpPacketExtendedReportsTest, CreateAndParseWithTwoDlrrBlocks) { 238 TEST_F(RtcpPacketExtendedReportsTest, CreateAndParseWithTwoDlrrBlocks) {
239 Dlrr dlrr1; 239 Dlrr dlrr1;
240 EXPECT_TRUE(dlrr1.WithDlrrItem(Rand<ReceiveTimeInfo>())); 240 EXPECT_TRUE(dlrr1.AddDlrrItem(Rand<ReceiveTimeInfo>()));
241 Dlrr dlrr2; 241 Dlrr dlrr2;
242 EXPECT_TRUE(dlrr2.WithDlrrItem(Rand<ReceiveTimeInfo>())); 242 EXPECT_TRUE(dlrr2.AddDlrrItem(Rand<ReceiveTimeInfo>()));
243 ExtendedReports xr; 243 ExtendedReports xr;
244 xr.From(kSenderSsrc); 244 xr.SetSenderSsrc(kSenderSsrc);
245 EXPECT_TRUE(xr.WithDlrr(dlrr1)); 245 EXPECT_TRUE(xr.AddDlrr(dlrr1));
246 EXPECT_TRUE(xr.WithDlrr(dlrr2)); 246 EXPECT_TRUE(xr.AddDlrr(dlrr2));
247 247
248 rtc::Buffer packet = xr.Build(); 248 rtc::Buffer packet = xr.Build();
249 249
250 ExtendedReports mparsed; 250 ExtendedReports mparsed;
251 EXPECT_TRUE(test::ParseSinglePacket(packet, &mparsed)); 251 EXPECT_TRUE(test::ParseSinglePacket(packet, &mparsed));
252 const ExtendedReports& parsed = mparsed; 252 const ExtendedReports& parsed = mparsed;
253 253
254 EXPECT_EQ(kSenderSsrc, parsed.sender_ssrc()); 254 EXPECT_EQ(kSenderSsrc, parsed.sender_ssrc());
255 EXPECT_THAT(parsed.dlrrs(), ElementsAre(dlrr1, dlrr2)); 255 EXPECT_THAT(parsed.dlrrs(), ElementsAre(dlrr1, dlrr2));
256 } 256 }
257 257
258 TEST_F(RtcpPacketExtendedReportsTest, CreateAndParseWithVoipMetric) { 258 TEST_F(RtcpPacketExtendedReportsTest, CreateAndParseWithVoipMetric) {
259 VoipMetric voip_metric = Rand<VoipMetric>(); 259 VoipMetric voip_metric = Rand<VoipMetric>();
260 260
261 ExtendedReports xr; 261 ExtendedReports xr;
262 xr.From(kSenderSsrc); 262 xr.SetSenderSsrc(kSenderSsrc);
263 EXPECT_TRUE(xr.WithVoipMetric(voip_metric)); 263 EXPECT_TRUE(xr.AddVoipMetric(voip_metric));
264 264
265 rtc::Buffer packet = xr.Build(); 265 rtc::Buffer packet = xr.Build();
266 266
267 ExtendedReports mparsed; 267 ExtendedReports mparsed;
268 EXPECT_TRUE(test::ParseSinglePacket(packet, &mparsed)); 268 EXPECT_TRUE(test::ParseSinglePacket(packet, &mparsed));
269 const ExtendedReports& parsed = mparsed; 269 const ExtendedReports& parsed = mparsed;
270 270
271 EXPECT_EQ(kSenderSsrc, parsed.sender_ssrc()); 271 EXPECT_EQ(kSenderSsrc, parsed.sender_ssrc());
272 EXPECT_THAT(parsed.voip_metrics(), ElementsAre(voip_metric)); 272 EXPECT_THAT(parsed.voip_metrics(), ElementsAre(voip_metric));
273 } 273 }
274 274
275 TEST_F(RtcpPacketExtendedReportsTest, CreateAndParseWithMultipleReportBlocks) { 275 TEST_F(RtcpPacketExtendedReportsTest, CreateAndParseWithMultipleReportBlocks) {
276 Rrtr rrtr = Rand<Rrtr>(); 276 Rrtr rrtr = Rand<Rrtr>();
277 Dlrr dlrr; 277 Dlrr dlrr;
278 EXPECT_TRUE(dlrr.WithDlrrItem(Rand<ReceiveTimeInfo>())); 278 EXPECT_TRUE(dlrr.AddDlrrItem(Rand<ReceiveTimeInfo>()));
279 VoipMetric metric = Rand<VoipMetric>(); 279 VoipMetric metric = Rand<VoipMetric>();
280 ExtendedReports xr; 280 ExtendedReports xr;
281 xr.From(kSenderSsrc); 281 xr.SetSenderSsrc(kSenderSsrc);
282 EXPECT_TRUE(xr.WithRrtr(rrtr)); 282 EXPECT_TRUE(xr.AddRrtr(rrtr));
283 EXPECT_TRUE(xr.WithDlrr(dlrr)); 283 EXPECT_TRUE(xr.AddDlrr(dlrr));
284 EXPECT_TRUE(xr.WithVoipMetric(metric)); 284 EXPECT_TRUE(xr.AddVoipMetric(metric));
285 285
286 rtc::Buffer packet = xr.Build(); 286 rtc::Buffer packet = xr.Build();
287 287
288 ExtendedReports mparsed; 288 ExtendedReports mparsed;
289 EXPECT_TRUE(test::ParseSinglePacket(packet, &mparsed)); 289 EXPECT_TRUE(test::ParseSinglePacket(packet, &mparsed));
290 const ExtendedReports& parsed = mparsed; 290 const ExtendedReports& parsed = mparsed;
291 291
292 EXPECT_EQ(kSenderSsrc, parsed.sender_ssrc()); 292 EXPECT_EQ(kSenderSsrc, parsed.sender_ssrc());
293 EXPECT_THAT(parsed.rrtrs(), ElementsAre(rrtr)); 293 EXPECT_THAT(parsed.rrtrs(), ElementsAre(rrtr));
294 EXPECT_THAT(parsed.dlrrs(), ElementsAre(dlrr)); 294 EXPECT_THAT(parsed.dlrrs(), ElementsAre(dlrr));
295 EXPECT_THAT(parsed.voip_metrics(), ElementsAre(metric)); 295 EXPECT_THAT(parsed.voip_metrics(), ElementsAre(metric));
296 } 296 }
297 297
298 TEST_F(RtcpPacketExtendedReportsTest, DlrrWithoutItemNotIncludedInPacket) { 298 TEST_F(RtcpPacketExtendedReportsTest, DlrrWithoutItemNotIncludedInPacket) {
299 Rrtr rrtr = Rand<Rrtr>(); 299 Rrtr rrtr = Rand<Rrtr>();
300 Dlrr dlrr; 300 Dlrr dlrr;
301 VoipMetric metric = Rand<VoipMetric>(); 301 VoipMetric metric = Rand<VoipMetric>();
302 ExtendedReports xr; 302 ExtendedReports xr;
303 xr.From(kSenderSsrc); 303 xr.SetSenderSsrc(kSenderSsrc);
304 EXPECT_TRUE(xr.WithRrtr(rrtr)); 304 EXPECT_TRUE(xr.AddRrtr(rrtr));
305 EXPECT_TRUE(xr.WithDlrr(dlrr)); 305 EXPECT_TRUE(xr.AddDlrr(dlrr));
306 EXPECT_TRUE(xr.WithVoipMetric(metric)); 306 EXPECT_TRUE(xr.AddVoipMetric(metric));
307 307
308 rtc::Buffer packet = xr.Build(); 308 rtc::Buffer packet = xr.Build();
309 309
310 ExtendedReports mparsed; 310 ExtendedReports mparsed;
311 EXPECT_TRUE(test::ParseSinglePacket(packet, &mparsed)); 311 EXPECT_TRUE(test::ParseSinglePacket(packet, &mparsed));
312 const ExtendedReports& parsed = mparsed; 312 const ExtendedReports& parsed = mparsed;
313 313
314 EXPECT_THAT(parsed.rrtrs(), ElementsAre(rrtr)); 314 EXPECT_THAT(parsed.rrtrs(), ElementsAre(rrtr));
315 EXPECT_THAT(parsed.dlrrs(), IsEmpty()); 315 EXPECT_THAT(parsed.dlrrs(), IsEmpty());
316 EXPECT_THAT(parsed.voip_metrics(), ElementsAre(metric)); 316 EXPECT_THAT(parsed.voip_metrics(), ElementsAre(metric));
317 } 317 }
318 318
319 TEST_F(RtcpPacketExtendedReportsTest, WithTooManyBlocks) { 319 TEST_F(RtcpPacketExtendedReportsTest, WithTooManyBlocks) {
320 const size_t kMaxBlocks = 50; 320 const size_t kMaxBlocks = 50;
321 ExtendedReports xr; 321 ExtendedReports xr;
322 322
323 Rrtr rrtr = Rand<Rrtr>(); 323 Rrtr rrtr = Rand<Rrtr>();
324 for (size_t i = 0; i < kMaxBlocks; ++i) 324 for (size_t i = 0; i < kMaxBlocks; ++i)
325 EXPECT_TRUE(xr.WithRrtr(rrtr)); 325 EXPECT_TRUE(xr.AddRrtr(rrtr));
326 EXPECT_FALSE(xr.WithRrtr(rrtr)); 326 EXPECT_FALSE(xr.AddRrtr(rrtr));
327 327
328 Dlrr dlrr; 328 Dlrr dlrr;
329 for (size_t i = 0; i < kMaxBlocks; ++i) 329 for (size_t i = 0; i < kMaxBlocks; ++i)
330 EXPECT_TRUE(xr.WithDlrr(dlrr)); 330 EXPECT_TRUE(xr.AddDlrr(dlrr));
331 EXPECT_FALSE(xr.WithDlrr(dlrr)); 331 EXPECT_FALSE(xr.AddDlrr(dlrr));
332 332
333 VoipMetric voip_metric = Rand<VoipMetric>(); 333 VoipMetric voip_metric = Rand<VoipMetric>();
334 for (size_t i = 0; i < kMaxBlocks; ++i) 334 for (size_t i = 0; i < kMaxBlocks; ++i)
335 EXPECT_TRUE(xr.WithVoipMetric(voip_metric)); 335 EXPECT_TRUE(xr.AddVoipMetric(voip_metric));
336 EXPECT_FALSE(xr.WithVoipMetric(voip_metric)); 336 EXPECT_FALSE(xr.AddVoipMetric(voip_metric));
337 } 337 }
338 } // namespace webrtc 338 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/modules/rtp_rtcp/source/rtcp_packet/extended_reports.cc ('k') | webrtc/modules/rtp_rtcp/source/rtcp_packet/fir.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698