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 17 matching lines...) Expand all Loading... |
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 CompoundPacket compound; |
37 Fir fir; | 37 Fir fir; |
38 fir.AddRequestTo(kRemoteSsrc, kSeqNo); | 38 fir.WithRequestTo(kRemoteSsrc, kSeqNo); |
39 ReportBlock rb; | 39 ReportBlock rb; |
40 ReceiverReport rr; | 40 ReceiverReport rr; |
41 rr.SetSenderSsrc(kSenderSsrc); | 41 rr.From(kSenderSsrc); |
42 EXPECT_TRUE(rr.AddReportBlock(rb)); | 42 EXPECT_TRUE(rr.WithReportBlock(rb)); |
43 compound.Append(&rr); | 43 compound.Append(&rr); |
44 compound.Append(&fir); | 44 compound.Append(&fir); |
45 | 45 |
46 rtc::Buffer packet = compound.Build(); | 46 rtc::Buffer packet = compound.Build(); |
47 RtcpPacketParser parser; | 47 RtcpPacketParser parser; |
48 parser.Parse(packet.data(), packet.size()); | 48 parser.Parse(packet.data(), packet.size()); |
49 EXPECT_EQ(1, parser.receiver_report()->num_packets()); | 49 EXPECT_EQ(1, parser.receiver_report()->num_packets()); |
50 EXPECT_EQ(kSenderSsrc, parser.receiver_report()->sender_ssrc()); | 50 EXPECT_EQ(kSenderSsrc, parser.receiver_report()->sender_ssrc()); |
51 EXPECT_EQ(1u, parser.receiver_report()->report_blocks().size()); | 51 EXPECT_EQ(1u, parser.receiver_report()->report_blocks().size()); |
52 EXPECT_EQ(1, parser.fir()->num_packets()); | 52 EXPECT_EQ(1, parser.fir()->num_packets()); |
53 } | 53 } |
54 | 54 |
55 TEST(RtcpCompoundPacketTest, AppendPacketWithOwnAppendedPacket) { | 55 TEST(RtcpCompoundPacketTest, AppendPacketWithOwnAppendedPacket) { |
56 CompoundPacket root; | 56 CompoundPacket root; |
57 CompoundPacket leaf; | 57 CompoundPacket leaf; |
58 Fir fir; | 58 Fir fir; |
59 fir.AddRequestTo(kRemoteSsrc, kSeqNo); | 59 fir.WithRequestTo(kRemoteSsrc, kSeqNo); |
60 Bye bye; | 60 Bye bye; |
61 ReportBlock rb; | 61 ReportBlock rb; |
62 | 62 |
63 ReceiverReport rr; | 63 ReceiverReport rr; |
64 EXPECT_TRUE(rr.AddReportBlock(rb)); | 64 EXPECT_TRUE(rr.WithReportBlock(rb)); |
65 leaf.Append(&rr); | 65 leaf.Append(&rr); |
66 leaf.Append(&fir); | 66 leaf.Append(&fir); |
67 | 67 |
68 SenderReport sr; | 68 SenderReport sr; |
69 root.Append(&sr); | 69 root.Append(&sr); |
70 root.Append(&bye); | 70 root.Append(&bye); |
71 root.Append(&leaf); | 71 root.Append(&leaf); |
72 | 72 |
73 rtc::Buffer packet = root.Build(); | 73 rtc::Buffer packet = root.Build(); |
74 RtcpPacketParser parser; | 74 RtcpPacketParser parser; |
75 parser.Parse(packet.data(), packet.size()); | 75 parser.Parse(packet.data(), packet.size()); |
76 EXPECT_EQ(1, parser.sender_report()->num_packets()); | 76 EXPECT_EQ(1, parser.sender_report()->num_packets()); |
77 EXPECT_EQ(1, parser.receiver_report()->num_packets()); | 77 EXPECT_EQ(1, parser.receiver_report()->num_packets()); |
78 EXPECT_EQ(1u, parser.receiver_report()->report_blocks().size()); | 78 EXPECT_EQ(1u, parser.receiver_report()->report_blocks().size()); |
79 EXPECT_EQ(1, parser.bye()->num_packets()); | 79 EXPECT_EQ(1, parser.bye()->num_packets()); |
80 EXPECT_EQ(1, parser.fir()->num_packets()); | 80 EXPECT_EQ(1, parser.fir()->num_packets()); |
81 } | 81 } |
82 | 82 |
83 TEST(RtcpCompoundPacketTest, BuildWithInputBuffer) { | 83 TEST(RtcpCompoundPacketTest, BuildWithInputBuffer) { |
84 CompoundPacket compound; | 84 CompoundPacket compound; |
85 Fir fir; | 85 Fir fir; |
86 fir.AddRequestTo(kRemoteSsrc, kSeqNo); | 86 fir.WithRequestTo(kRemoteSsrc, kSeqNo); |
87 ReportBlock rb; | 87 ReportBlock rb; |
88 ReceiverReport rr; | 88 ReceiverReport rr; |
89 rr.SetSenderSsrc(kSenderSsrc); | 89 rr.From(kSenderSsrc); |
90 EXPECT_TRUE(rr.AddReportBlock(rb)); | 90 EXPECT_TRUE(rr.WithReportBlock(rb)); |
91 compound.Append(&rr); | 91 compound.Append(&rr); |
92 compound.Append(&fir); | 92 compound.Append(&fir); |
93 | 93 |
94 const size_t kRrLength = 8; | 94 const size_t kRrLength = 8; |
95 const size_t kReportBlockLength = 24; | 95 const size_t kReportBlockLength = 24; |
96 const size_t kFirLength = 20; | 96 const size_t kFirLength = 20; |
97 | 97 |
98 class Verifier : public rtcp::RtcpPacket::PacketReadyCallback { | 98 class Verifier : public rtcp::RtcpPacket::PacketReadyCallback { |
99 public: | 99 public: |
100 void OnPacketReady(uint8_t* data, size_t length) override { | 100 void OnPacketReady(uint8_t* data, size_t length) override { |
101 RtcpPacketParser parser; | 101 RtcpPacketParser parser; |
102 parser.Parse(data, length); | 102 parser.Parse(data, length); |
103 EXPECT_EQ(1, parser.receiver_report()->num_packets()); | 103 EXPECT_EQ(1, parser.receiver_report()->num_packets()); |
104 EXPECT_EQ(1u, parser.receiver_report()->report_blocks().size()); | 104 EXPECT_EQ(1u, parser.receiver_report()->report_blocks().size()); |
105 EXPECT_EQ(1, parser.fir()->num_packets()); | 105 EXPECT_EQ(1, parser.fir()->num_packets()); |
106 ++packets_created_; | 106 ++packets_created_; |
107 } | 107 } |
108 | 108 |
109 int packets_created_ = 0; | 109 int packets_created_ = 0; |
110 } verifier; | 110 } verifier; |
111 const size_t kBufferSize = kRrLength + kReportBlockLength + kFirLength; | 111 const size_t kBufferSize = kRrLength + kReportBlockLength + kFirLength; |
112 uint8_t buffer[kBufferSize]; | 112 uint8_t buffer[kBufferSize]; |
113 EXPECT_TRUE(compound.BuildExternalBuffer(buffer, kBufferSize, &verifier)); | 113 EXPECT_TRUE(compound.BuildExternalBuffer(buffer, kBufferSize, &verifier)); |
114 EXPECT_EQ(1, verifier.packets_created_); | 114 EXPECT_EQ(1, verifier.packets_created_); |
115 } | 115 } |
116 | 116 |
117 TEST(RtcpCompoundPacketTest, BuildWithTooSmallBuffer_FragmentedSend) { | 117 TEST(RtcpCompoundPacketTest, BuildWithTooSmallBuffer_FragmentedSend) { |
118 CompoundPacket compound; | 118 CompoundPacket compound; |
119 Fir fir; | 119 Fir fir; |
120 fir.AddRequestTo(kRemoteSsrc, kSeqNo); | 120 fir.WithRequestTo(kRemoteSsrc, kSeqNo); |
121 ReportBlock rb; | 121 ReportBlock rb; |
122 ReceiverReport rr; | 122 ReceiverReport rr; |
123 rr.SetSenderSsrc(kSenderSsrc); | 123 rr.From(kSenderSsrc); |
124 EXPECT_TRUE(rr.AddReportBlock(rb)); | 124 EXPECT_TRUE(rr.WithReportBlock(rb)); |
125 compound.Append(&rr); | 125 compound.Append(&rr); |
126 compound.Append(&fir); | 126 compound.Append(&fir); |
127 | 127 |
128 const size_t kRrLength = 8; | 128 const size_t kRrLength = 8; |
129 const size_t kReportBlockLength = 24; | 129 const size_t kReportBlockLength = 24; |
130 | 130 |
131 class Verifier : public rtcp::RtcpPacket::PacketReadyCallback { | 131 class Verifier : public rtcp::RtcpPacket::PacketReadyCallback { |
132 public: | 132 public: |
133 void OnPacketReady(uint8_t* data, size_t length) override { | 133 void OnPacketReady(uint8_t* data, size_t length) override { |
134 RtcpPacketParser parser; | 134 RtcpPacketParser parser; |
(...skipping 17 matching lines...) Expand all Loading... |
152 | 152 |
153 int packets_created_ = 0; | 153 int packets_created_ = 0; |
154 } verifier; | 154 } verifier; |
155 const size_t kBufferSize = kRrLength + kReportBlockLength; | 155 const size_t kBufferSize = kRrLength + kReportBlockLength; |
156 uint8_t buffer[kBufferSize]; | 156 uint8_t buffer[kBufferSize]; |
157 EXPECT_TRUE(compound.BuildExternalBuffer(buffer, kBufferSize, &verifier)); | 157 EXPECT_TRUE(compound.BuildExternalBuffer(buffer, kBufferSize, &verifier)); |
158 EXPECT_EQ(2, verifier.packets_created_); | 158 EXPECT_EQ(2, verifier.packets_created_); |
159 } | 159 } |
160 | 160 |
161 } // namespace webrtc | 161 } // namespace webrtc |
OLD | NEW |