OLD | NEW |
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 Loading... |
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.SetNtp(Rand<NtpTime>()); | 113 rrtr.WithNtp(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 Loading... |
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.SetMediaSsrc(Rand<uint32_t>()); | 146 voip_metric.To(Rand<uint32_t>()); |
147 voip_metric.SetVoipMetric(Rand<RTCPVoIPMetric>()); | 147 voip_metric.WithVoipMetric(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.SetSenderSsrc(kSenderSsrc); | 153 xr.From(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.SetSenderSsrc(kSenderSsrc); | 173 xr.From(kSenderSsrc); |
174 EXPECT_TRUE(xr.AddRrtr(rrtr)); | 174 EXPECT_TRUE(xr.WithRrtr(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.SetSenderSsrc(kSenderSsrc); | 189 xr.From(kSenderSsrc); |
190 EXPECT_TRUE(xr.AddRrtr(rrtr1)); | 190 EXPECT_TRUE(xr.WithRrtr(rrtr1)); |
191 EXPECT_TRUE(xr.AddRrtr(rrtr2)); | 191 EXPECT_TRUE(xr.WithRrtr(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.AddDlrrItem(Rand<ReceiveTimeInfo>())); | 205 EXPECT_TRUE(dlrr.WithDlrrItem(Rand<ReceiveTimeInfo>())); |
206 ExtendedReports xr; | 206 ExtendedReports xr; |
207 xr.SetSenderSsrc(kSenderSsrc); | 207 xr.From(kSenderSsrc); |
208 EXPECT_TRUE(xr.AddDlrr(dlrr)); | 208 EXPECT_TRUE(xr.WithDlrr(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.AddDlrrItem(Rand<ReceiveTimeInfo>())); | 222 EXPECT_TRUE(dlrr.WithDlrrItem(Rand<ReceiveTimeInfo>())); |
223 EXPECT_TRUE(dlrr.AddDlrrItem(Rand<ReceiveTimeInfo>())); | 223 EXPECT_TRUE(dlrr.WithDlrrItem(Rand<ReceiveTimeInfo>())); |
224 ExtendedReports xr; | 224 ExtendedReports xr; |
225 xr.SetSenderSsrc(kSenderSsrc); | 225 xr.From(kSenderSsrc); |
226 EXPECT_TRUE(xr.AddDlrr(dlrr)); | 226 EXPECT_TRUE(xr.WithDlrr(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.AddDlrrItem(Rand<ReceiveTimeInfo>())); | 240 EXPECT_TRUE(dlrr1.WithDlrrItem(Rand<ReceiveTimeInfo>())); |
241 Dlrr dlrr2; | 241 Dlrr dlrr2; |
242 EXPECT_TRUE(dlrr2.AddDlrrItem(Rand<ReceiveTimeInfo>())); | 242 EXPECT_TRUE(dlrr2.WithDlrrItem(Rand<ReceiveTimeInfo>())); |
243 ExtendedReports xr; | 243 ExtendedReports xr; |
244 xr.SetSenderSsrc(kSenderSsrc); | 244 xr.From(kSenderSsrc); |
245 EXPECT_TRUE(xr.AddDlrr(dlrr1)); | 245 EXPECT_TRUE(xr.WithDlrr(dlrr1)); |
246 EXPECT_TRUE(xr.AddDlrr(dlrr2)); | 246 EXPECT_TRUE(xr.WithDlrr(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.SetSenderSsrc(kSenderSsrc); | 262 xr.From(kSenderSsrc); |
263 EXPECT_TRUE(xr.AddVoipMetric(voip_metric)); | 263 EXPECT_TRUE(xr.WithVoipMetric(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.AddDlrrItem(Rand<ReceiveTimeInfo>())); | 278 EXPECT_TRUE(dlrr.WithDlrrItem(Rand<ReceiveTimeInfo>())); |
279 VoipMetric metric = Rand<VoipMetric>(); | 279 VoipMetric metric = Rand<VoipMetric>(); |
280 ExtendedReports xr; | 280 ExtendedReports xr; |
281 xr.SetSenderSsrc(kSenderSsrc); | 281 xr.From(kSenderSsrc); |
282 EXPECT_TRUE(xr.AddRrtr(rrtr)); | 282 EXPECT_TRUE(xr.WithRrtr(rrtr)); |
283 EXPECT_TRUE(xr.AddDlrr(dlrr)); | 283 EXPECT_TRUE(xr.WithDlrr(dlrr)); |
284 EXPECT_TRUE(xr.AddVoipMetric(metric)); | 284 EXPECT_TRUE(xr.WithVoipMetric(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.SetSenderSsrc(kSenderSsrc); | 303 xr.From(kSenderSsrc); |
304 EXPECT_TRUE(xr.AddRrtr(rrtr)); | 304 EXPECT_TRUE(xr.WithRrtr(rrtr)); |
305 EXPECT_TRUE(xr.AddDlrr(dlrr)); | 305 EXPECT_TRUE(xr.WithDlrr(dlrr)); |
306 EXPECT_TRUE(xr.AddVoipMetric(metric)); | 306 EXPECT_TRUE(xr.WithVoipMetric(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.AddRrtr(rrtr)); | 325 EXPECT_TRUE(xr.WithRrtr(rrtr)); |
326 EXPECT_FALSE(xr.AddRrtr(rrtr)); | 326 EXPECT_FALSE(xr.WithRrtr(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.AddDlrr(dlrr)); | 330 EXPECT_TRUE(xr.WithDlrr(dlrr)); |
331 EXPECT_FALSE(xr.AddDlrr(dlrr)); | 331 EXPECT_FALSE(xr.WithDlrr(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.AddVoipMetric(voip_metric)); | 335 EXPECT_TRUE(xr.WithVoipMetric(voip_metric)); |
336 EXPECT_FALSE(xr.AddVoipMetric(voip_metric)); | 336 EXPECT_FALSE(xr.WithVoipMetric(voip_metric)); |
337 } | 337 } |
338 } // namespace webrtc | 338 } // namespace webrtc |
OLD | NEW |