| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2014 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 * This file includes unit tests for the RtcpPacket. | 10 * This file includes unit tests for the RtcpPacket. |
| 11 */ | 11 */ |
| 12 | 12 |
| 13 #include "testing/gmock/include/gmock/gmock.h" | 13 #include "testing/gmock/include/gmock/gmock.h" |
| 14 #include "testing/gtest/include/gtest/gtest.h" | 14 #include "testing/gtest/include/gtest/gtest.h" |
| 15 | 15 |
| 16 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet.h" | 16 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet.h" |
| 17 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/extended_jitter_report.h" |
| 17 #include "webrtc/test/rtcp_packet_parser.h" | 18 #include "webrtc/test/rtcp_packet_parser.h" |
| 18 | 19 |
| 19 using ::testing::ElementsAre; | 20 using ::testing::ElementsAre; |
| 20 | 21 |
| 21 using webrtc::rtcp::App; | 22 using webrtc::rtcp::App; |
| 22 using webrtc::rtcp::Bye; | 23 using webrtc::rtcp::Bye; |
| 23 using webrtc::rtcp::Dlrr; | 24 using webrtc::rtcp::Dlrr; |
| 24 using webrtc::rtcp::Empty; | 25 using webrtc::rtcp::Empty; |
| 25 using webrtc::rtcp::Fir; | 26 using webrtc::rtcp::Fir; |
| 26 using webrtc::rtcp::Ij; | 27 using webrtc::rtcp::ExtendedJitterReport; |
| 27 using webrtc::rtcp::Nack; | 28 using webrtc::rtcp::Nack; |
| 28 using webrtc::rtcp::Pli; | 29 using webrtc::rtcp::Pli; |
| 29 using webrtc::rtcp::Sdes; | 30 using webrtc::rtcp::Sdes; |
| 30 using webrtc::rtcp::SenderReport; | 31 using webrtc::rtcp::SenderReport; |
| 31 using webrtc::rtcp::Sli; | 32 using webrtc::rtcp::Sli; |
| 32 using webrtc::rtcp::RawPacket; | 33 using webrtc::rtcp::RawPacket; |
| 33 using webrtc::rtcp::ReceiverReport; | 34 using webrtc::rtcp::ReceiverReport; |
| 34 using webrtc::rtcp::Remb; | 35 using webrtc::rtcp::Remb; |
| 35 using webrtc::rtcp::ReportBlock; | 36 using webrtc::rtcp::ReportBlock; |
| 36 using webrtc::rtcp::Rpsi; | 37 using webrtc::rtcp::Rpsi; |
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 189 const int kMaxReportBlocks = (1 << 5) - 1; | 190 const int kMaxReportBlocks = (1 << 5) - 1; |
| 190 ReportBlock rb; | 191 ReportBlock rb; |
| 191 for (int i = 0; i < kMaxReportBlocks; ++i) { | 192 for (int i = 0; i < kMaxReportBlocks; ++i) { |
| 192 rb.To(kRemoteSsrc + i); | 193 rb.To(kRemoteSsrc + i); |
| 193 EXPECT_TRUE(sr.WithReportBlock(rb)); | 194 EXPECT_TRUE(sr.WithReportBlock(rb)); |
| 194 } | 195 } |
| 195 rb.To(kRemoteSsrc + kMaxReportBlocks); | 196 rb.To(kRemoteSsrc + kMaxReportBlocks); |
| 196 EXPECT_FALSE(sr.WithReportBlock(rb)); | 197 EXPECT_FALSE(sr.WithReportBlock(rb)); |
| 197 } | 198 } |
| 198 | 199 |
| 199 TEST(RtcpPacketTest, IjNoItem) { | |
| 200 Ij ij; | |
| 201 | |
| 202 rtc::scoped_ptr<RawPacket> packet(ij.Build()); | |
| 203 RtcpPacketParser parser; | |
| 204 parser.Parse(packet->Buffer(), packet->Length()); | |
| 205 EXPECT_EQ(1, parser.ij()->num_packets()); | |
| 206 EXPECT_EQ(0, parser.ij_item()->num_packets()); | |
| 207 } | |
| 208 | |
| 209 TEST(RtcpPacketTest, IjOneItem) { | |
| 210 Ij ij; | |
| 211 EXPECT_TRUE(ij.WithJitterItem(0x11111111)); | |
| 212 | |
| 213 rtc::scoped_ptr<RawPacket> packet(ij.Build()); | |
| 214 RtcpPacketParser parser; | |
| 215 parser.Parse(packet->Buffer(), packet->Length()); | |
| 216 EXPECT_EQ(1, parser.ij()->num_packets()); | |
| 217 EXPECT_EQ(1, parser.ij_item()->num_packets()); | |
| 218 EXPECT_EQ(0x11111111U, parser.ij_item()->Jitter()); | |
| 219 } | |
| 220 | |
| 221 TEST(RtcpPacketTest, IjTwoItems) { | |
| 222 Ij ij; | |
| 223 EXPECT_TRUE(ij.WithJitterItem(0x11111111)); | |
| 224 EXPECT_TRUE(ij.WithJitterItem(0x22222222)); | |
| 225 | |
| 226 rtc::scoped_ptr<RawPacket> packet(ij.Build()); | |
| 227 RtcpPacketParser parser; | |
| 228 parser.Parse(packet->Buffer(), packet->Length()); | |
| 229 EXPECT_EQ(1, parser.ij()->num_packets()); | |
| 230 EXPECT_EQ(2, parser.ij_item()->num_packets()); | |
| 231 EXPECT_EQ(0x22222222U, parser.ij_item()->Jitter()); | |
| 232 } | |
| 233 | |
| 234 TEST(RtcpPacketTest, IjTooManyItems) { | |
| 235 Ij ij; | |
| 236 const int kMaxIjItems = (1 << 5) - 1; | |
| 237 for (int i = 0; i < kMaxIjItems; ++i) { | |
| 238 EXPECT_TRUE(ij.WithJitterItem(i)); | |
| 239 } | |
| 240 EXPECT_FALSE(ij.WithJitterItem(kMaxIjItems)); | |
| 241 } | |
| 242 | |
| 243 TEST(RtcpPacketTest, AppWithNoData) { | 200 TEST(RtcpPacketTest, AppWithNoData) { |
| 244 App app; | 201 App app; |
| 245 app.WithSubType(30); | 202 app.WithSubType(30); |
| 246 uint32_t name = 'n' << 24; | 203 uint32_t name = 'n' << 24; |
| 247 name += 'a' << 16; | 204 name += 'a' << 16; |
| 248 name += 'm' << 8; | 205 name += 'm' << 8; |
| 249 name += 'e'; | 206 name += 'e'; |
| 250 app.WithName(name); | 207 app.WithName(name); |
| 251 | 208 |
| 252 rtc::scoped_ptr<RawPacket> packet(app.Build()); | 209 rtc::scoped_ptr<RawPacket> packet(app.Build()); |
| (...skipping 826 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1079 EXPECT_TRUE(xr.WithDlrr(&dlrr)); | 1036 EXPECT_TRUE(xr.WithDlrr(&dlrr)); |
| 1080 EXPECT_FALSE(xr.WithDlrr(&dlrr)); | 1037 EXPECT_FALSE(xr.WithDlrr(&dlrr)); |
| 1081 | 1038 |
| 1082 VoipMetric voip_metric; | 1039 VoipMetric voip_metric; |
| 1083 for (int i = 0; i < kMaxBlocks; ++i) | 1040 for (int i = 0; i < kMaxBlocks; ++i) |
| 1084 EXPECT_TRUE(xr.WithVoipMetric(&voip_metric)); | 1041 EXPECT_TRUE(xr.WithVoipMetric(&voip_metric)); |
| 1085 EXPECT_FALSE(xr.WithVoipMetric(&voip_metric)); | 1042 EXPECT_FALSE(xr.WithVoipMetric(&voip_metric)); |
| 1086 } | 1043 } |
| 1087 | 1044 |
| 1088 } // namespace webrtc | 1045 } // namespace webrtc |
| OLD | NEW |