1 /*
2 * Copyright (c) 2024 Shenzhen Kaihong Digital Industry Development Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include "rtcp_unit_test.h"
17 #include <iostream>
18 #include "common/sharing_log.h"
19 #include "protocol/rtcp/include/rtcp_context.h"
20
21 using namespace testing::ext;
22 using namespace OHOS::Sharing;
23
24 namespace OHOS {
25 namespace Sharing {
26
SetUpTestCase()27 void RtcpUnitTest::SetUpTestCase() {}
TearDownTestCase()28 void RtcpUnitTest::TearDownTestCase() {}
SetUp()29 void RtcpUnitTest::SetUp() {}
TearDown()30 void RtcpUnitTest::TearDown() {}
31
32 namespace {
HWTEST_F(RtcpUnitTest, RtcpSenderContext_001, Function | SmallTest | Level2)33 HWTEST_F(RtcpUnitTest, RtcpSenderContext_001, Function | SmallTest | Level2)
34 {
35 auto context = std::make_shared<RtcpSenderContext>();
36 EXPECT_NE(context, nullptr);
37 }
38
HWTEST_F(RtcpUnitTest, RtcpSenderContext_002, Function | SmallTest | Level2)39 HWTEST_F(RtcpUnitTest, RtcpSenderContext_002, Function | SmallTest | Level2)
40 {
41 auto context = std::make_shared<RtcpSenderContext>();
42 EXPECT_NE(context, nullptr);
43 uint32_t ssrc = 0;
44 uint32_t rtt = 1;
45 context->rtt_[ssrc] = rtt;
46 auto ret = context->GetRtt(ssrc);
47 EXPECT_EQ(ret, rtt);
48 }
49
HWTEST_F(RtcpUnitTest, RtcpSenderContext_003, Function | SmallTest | Level2)50 HWTEST_F(RtcpUnitTest, RtcpSenderContext_003, Function | SmallTest | Level2)
51 {
52 auto context = std::make_shared<RtcpSenderContext>();
53 EXPECT_NE(context, nullptr);
54 uint32_t ssrc = 0;
55 uint32_t rtt = 1;
56 context->rtt_[ssrc] = rtt;
57 auto ret = context->GetRtt(rtt);
58 EXPECT_EQ(ret, 0);
59 }
60
HWTEST_F(RtcpUnitTest, RtcpSenderContext_004, Function | SmallTest | Level2)61 HWTEST_F(RtcpUnitTest, RtcpSenderContext_004, Function | SmallTest | Level2)
62 {
63 auto context = std::make_shared<RtcpSenderContext>();
64 EXPECT_NE(context, nullptr);
65 RtcpHeader head;
66 head.pt_ = static_cast<uint8_t>(RtcpType::RTCP_RR);
67 head.version_ = 2;
68 head.padding_ = 0;
69 head.reportCount_ = 0;
70 context->OnRtcp(&head);
71 }
72
HWTEST_F(RtcpUnitTest, RtcpSenderContext_005, Function | SmallTest | Level2)73 HWTEST_F(RtcpUnitTest, RtcpSenderContext_005, Function | SmallTest | Level2)
74 {
75 auto context = std::make_shared<RtcpSenderContext>();
76 EXPECT_NE(context, nullptr);
77 RtcpHeader head;
78 head.pt_ = static_cast<uint8_t>(RtcpType::RTCP_XR);
79 head.version_ = 2;
80 head.padding_ = 0;
81 head.reportCount_ = 0;
82 context->OnRtcp(&head);
83 }
84
HWTEST_F(RtcpUnitTest, RtcpSenderContext_006, Function | SmallTest | Level2)85 HWTEST_F(RtcpUnitTest, RtcpSenderContext_006, Function | SmallTest | Level2)
86 {
87 auto context = std::make_shared<RtcpSenderContext>();
88 EXPECT_NE(context, nullptr);
89 RtcpHeader head;
90 head.pt_ = static_cast<uint8_t>(RtcpType::RTCP_XR);
91 head.version_ = 2;
92 head.padding_ = 0;
93 head.reportCount_ = 0;
94 context->OnRtcp(&head);
95 }
96
HWTEST_F(RtcpUnitTest, RtcpSenderContext_007, Function | SmallTest | Level2)97 HWTEST_F(RtcpUnitTest, RtcpSenderContext_007, Function | SmallTest | Level2)
98 {
99 auto context = std::make_shared<RtcpSenderContext>();
100 EXPECT_NE(context, nullptr);
101 uint32_t rtcp_ssrc = 0;
102 uint32_t rtp_ssrc = 0;
103 auto ret = context->CreateRtcpXRDLRR(rtcp_ssrc, rtp_ssrc);
104 EXPECT_EQ(ret, nullptr);
105 }
106
HWTEST_F(RtcpUnitTest, RtcpReceiverContext_008, Function | SmallTest | Level2)107 HWTEST_F(RtcpUnitTest, RtcpReceiverContext_008, Function | SmallTest | Level2)
108 {
109 auto context = std::make_shared<RtcpReceiverContext>();
110 EXPECT_NE(context, nullptr);
111 RtcpHeader head;
112 head.pt_ = static_cast<uint8_t>(RtcpType::RTCP_SR);
113 head.version_ = 2;
114 head.padding_ = 0;
115 head.reportCount_ = 0;
116 context->OnRtcp(&head);
117 }
118
HWTEST_F(RtcpUnitTest, RtcpReceiverContext_009, Function | SmallTest | Level2)119 HWTEST_F(RtcpUnitTest, RtcpReceiverContext_009, Function | SmallTest | Level2)
120 {
121 auto context = std::make_shared<RtcpReceiverContext>();
122 EXPECT_NE(context, nullptr);
123 RtcpHeader head;
124 head.pt_ = static_cast<uint8_t>(RtcpType::RTCP_RR);
125 head.version_ = 2;
126 head.padding_ = 0;
127 head.reportCount_ = 0;
128 context->OnRtcp(&head);
129 }
130
HWTEST_F(RtcpUnitTest, RtcpReceiverContext_010, Function | SmallTest | Level2)131 HWTEST_F(RtcpUnitTest, RtcpReceiverContext_010, Function | SmallTest | Level2)
132 {
133 auto context = std::make_shared<RtcpReceiverContext>();
134 EXPECT_NE(context, nullptr);
135 context->OnRtp(0, 0, 0, 0, 0);
136 }
137
HWTEST_F(RtcpUnitTest, RtcpReceiverContext_011, Function | SmallTest | Level2)138 HWTEST_F(RtcpUnitTest, RtcpReceiverContext_011, Function | SmallTest | Level2)
139 {
140 auto context = std::make_shared<RtcpReceiverContext>();
141 EXPECT_NE(context, nullptr);
142 uint32_t rtcp_ssrc = 0;
143 uint32_t rtp_ssrc = 0;
144 auto ret = context->CreateRtcpRR(rtcp_ssrc, rtp_ssrc);
145 EXPECT_NE(ret, nullptr);
146 }
147
HWTEST_F(RtcpUnitTest, RtcpReceiverContext_012, Function | SmallTest | Level2)148 HWTEST_F(RtcpUnitTest, RtcpReceiverContext_012, Function | SmallTest | Level2)
149 {
150 auto context = std::make_shared<RtcpReceiverContext>();
151 EXPECT_NE(context, nullptr);
152 auto ret = context->GetLost();
153 EXPECT_NE(ret, 0);
154 }
155
HWTEST_F(RtcpUnitTest, RtcpReceiverContext_013, Function | SmallTest | Level2)156 HWTEST_F(RtcpUnitTest, RtcpReceiverContext_013, Function | SmallTest | Level2)
157 {
158 auto context = std::make_shared<RtcpReceiverContext>();
159 EXPECT_NE(context, nullptr);
160 auto ret = context->GetLostInterval();
161 EXPECT_EQ(ret, 1);
162 }
163
HWTEST_F(RtcpUnitTest, RtcpReceiverContext_014, Function | SmallTest | Level2)164 HWTEST_F(RtcpUnitTest, RtcpReceiverContext_014, Function | SmallTest | Level2)
165 {
166 auto context = std::make_shared<RtcpReceiverContext>();
167 EXPECT_NE(context, nullptr);
168 auto ret = context->GetExpectedPackets();
169 EXPECT_EQ(ret, 1);
170 }
171
HWTEST_F(RtcpUnitTest, RtcpReceiverContext_015, Function | SmallTest | Level2)172 HWTEST_F(RtcpUnitTest, RtcpReceiverContext_015, Function | SmallTest | Level2)
173 {
174 auto context = std::make_shared<RtcpReceiverContext>();
175 EXPECT_NE(context, nullptr);
176 auto ret = context->GetExpectedPacketsInterval();
177 EXPECT_EQ(ret, 1);
178 }
179
HWTEST_F(RtcpUnitTest, RtcpSR_016, Function | SmallTest | Level2)180 HWTEST_F(RtcpUnitTest, RtcpSR_016, Function | SmallTest | Level2)
181 {
182 auto sr = std::make_shared<RtcpSR>();
183 EXPECT_NE(sr, nullptr);
184 }
185
HWTEST_F(RtcpUnitTest, RtcpSR_017, Function | SmallTest | Level2)186 HWTEST_F(RtcpUnitTest, RtcpSR_017, Function | SmallTest | Level2)
187 {
188 auto sr = RtcpSR::Create(1);
189 EXPECT_NE(sr, nullptr);
190 }
191
HWTEST_F(RtcpUnitTest, RtcpSR_018, Function | SmallTest | Level2)192 HWTEST_F(RtcpUnitTest, RtcpSR_018, Function | SmallTest | Level2)
193 {
194 auto sr = std::make_shared<RtcpSR>();
195 EXPECT_NE(sr, nullptr);
196 auto &ret = sr->SetSsrc(0);
197 EXPECT_EQ(&ret, sr.get());
198 }
199
HWTEST_F(RtcpUnitTest, RtcpSR_019, Function | SmallTest | Level2)200 HWTEST_F(RtcpUnitTest, RtcpSR_019, Function | SmallTest | Level2)
201 {
202 auto sr = std::make_shared<RtcpSR>();
203 EXPECT_NE(sr, nullptr);
204 auto &ret = sr->SetNtpStamp(timeval{});
205 EXPECT_EQ(&ret, sr.get());
206 }
207
HWTEST_F(RtcpUnitTest, RtcpSR_020, Function | SmallTest | Level2)208 HWTEST_F(RtcpUnitTest, RtcpSR_020, Function | SmallTest | Level2)
209 {
210 auto sr = std::make_shared<RtcpSR>();
211 EXPECT_NE(sr, nullptr);
212 auto &ret = sr->SetPacketCount(0);
213 EXPECT_EQ(&ret, sr.get());
214 }
215
HWTEST_F(RtcpUnitTest, RtcpSR_021, Function | SmallTest | Level2)216 HWTEST_F(RtcpUnitTest, RtcpSR_021, Function | SmallTest | Level2)
217 {
218 auto sr = std::make_shared<RtcpSR>();
219 EXPECT_NE(sr, nullptr);
220 auto &ret = sr->SetNtpStamp(0);
221 EXPECT_EQ(&ret, sr.get());
222 }
223
HWTEST_F(RtcpUnitTest, RtcpSR_022, Function | SmallTest | Level2)224 HWTEST_F(RtcpUnitTest, RtcpSR_022, Function | SmallTest | Level2)
225 {
226 auto sr = std::make_shared<RtcpSR>();
227 EXPECT_NE(sr, nullptr);
228 auto &ret = sr->SetSsrc(0);
229 EXPECT_EQ(&ret, sr.get());
230 auto ret1 = sr->GetSsrc();
231 EXPECT_EQ(ret1, 0);
232 }
233
HWTEST_F(RtcpUnitTest, RtcpSR_023, Function | SmallTest | Level2)234 HWTEST_F(RtcpUnitTest, RtcpSR_023, Function | SmallTest | Level2)
235 {
236 auto sr = std::make_shared<RtcpSR>();
237 EXPECT_NE(sr, nullptr);
238 auto &ret = sr->SetPacketCount(0);
239 EXPECT_EQ(&ret, sr.get());
240 auto ret1 = sr->GetPacketCount();
241 EXPECT_EQ(ret1, 0);
242 }
243
HWTEST_F(RtcpUnitTest, RtcpSR_024, Function | SmallTest | Level2)244 HWTEST_F(RtcpUnitTest, RtcpSR_024, Function | SmallTest | Level2)
245 {
246 auto sr = std::make_shared<RtcpSR>();
247 EXPECT_NE(sr, nullptr);
248 auto &ret = sr->SetNtpStamp(0);
249 EXPECT_EQ(&ret, sr.get());
250 auto ret1 = sr->GetNtpUnixStampMS();
251 EXPECT_EQ(ret1, 0);
252 }
253
HWTEST_F(RtcpUnitTest, RtcpSR_025, Function | SmallTest | Level2)254 HWTEST_F(RtcpUnitTest, RtcpSR_025, Function | SmallTest | Level2)
255 {
256 auto sr = std::make_shared<RtcpSR>();
257 EXPECT_NE(sr, nullptr);
258 auto &ret = sr->SetNtpStamp(timeval{});
259 EXPECT_EQ(&ret, sr.get());
260 auto ret1 = sr->GetNtpStamp();
261 EXPECT_NE(ret1, "");
262 }
263
HWTEST_F(RtcpUnitTest, RtcpSR_026, Function | SmallTest | Level2)264 HWTEST_F(RtcpUnitTest, RtcpSR_026, Function | SmallTest | Level2)
265 {
266 auto sr = std::make_shared<RtcpSR>();
267 EXPECT_NE(sr, nullptr);
268 auto ret = sr->GetItemList();
269 EXPECT_EQ(ret.size(), 0);
270 }
271
HWTEST_F(RtcpUnitTest, RtcpRR_027, Function | SmallTest | Level2)272 HWTEST_F(RtcpUnitTest, RtcpRR_027, Function | SmallTest | Level2)
273 {
274 auto rr = std::make_shared<RtcpRR>();
275 EXPECT_NE(rr, nullptr);
276 auto ret = rr->GetItemList();
277 EXPECT_EQ(ret.size(), 0);
278 }
279
HWTEST_F(RtcpUnitTest, RtcpRR_028, Function | SmallTest | Level2)280 HWTEST_F(RtcpUnitTest, RtcpRR_028, Function | SmallTest | Level2)
281 {
282 auto rr = RtcpRR::Create(0);
283 EXPECT_NE(rr, nullptr);
284 }
285
HWTEST_F(RtcpUnitTest, SdesChunk_029, Function | SmallTest | Level2)286 HWTEST_F(RtcpUnitTest, SdesChunk_029, Function | SmallTest | Level2)
287 {
288 auto chunk = std::make_shared<SdesChunk>();
289 EXPECT_NE(chunk, nullptr);
290 }
291
HWTEST_F(RtcpUnitTest, SdesChunk_030, Function | SmallTest | Level2)292 HWTEST_F(RtcpUnitTest, SdesChunk_030, Function | SmallTest | Level2)
293 {
294 auto ret = SdesChunk::MinSize();
295 EXPECT_NE(ret, 0);
296 }
297
HWTEST_F(RtcpUnitTest, SdesChunk_031, Function | SmallTest | Level2)298 HWTEST_F(RtcpUnitTest, SdesChunk_031, Function | SmallTest | Level2)
299 {
300 auto chunk = std::make_shared<SdesChunk>();
301 EXPECT_NE(chunk, nullptr);
302 auto ret = chunk->TotalBytes();
303 EXPECT_NE(ret, 0);
304 }
305
HWTEST_F(RtcpUnitTest, RtcpSdes_032, Function | SmallTest | Level2)306 HWTEST_F(RtcpUnitTest, RtcpSdes_032, Function | SmallTest | Level2)
307 {
308 auto sdes = std::make_shared<RtcpSdes>();
309 EXPECT_NE(sdes, nullptr);
310 }
311
HWTEST_F(RtcpUnitTest, RtcpSdes_033, Function | SmallTest | Level2)312 HWTEST_F(RtcpUnitTest, RtcpSdes_033, Function | SmallTest | Level2)
313 {
314 auto sdes = std::make_shared<RtcpSdes>();
315 EXPECT_NE(sdes, nullptr);
316 auto ret = sdes->GetChunkList();
317 EXPECT_EQ(ret.size(), 0);
318 }
319
HWTEST_F(RtcpUnitTest, RtcpSdes_034, Function | SmallTest | Level2)320 HWTEST_F(RtcpUnitTest, RtcpSdes_034, Function | SmallTest | Level2)
321 {
322 const std::vector<std::string> itemText{"123"};
323 auto ret = RtcpSdes::Create(itemText);
324 EXPECT_NE(ret, nullptr);
325 }
326
HWTEST_F(RtcpUnitTest, RtcpFB_035, Function | SmallTest | Level2)327 HWTEST_F(RtcpUnitTest, RtcpFB_035, Function | SmallTest | Level2)
328 {
329 auto fb = std::make_shared<RtcpFB>();
330 EXPECT_NE(fb, nullptr);
331 }
332
HWTEST_F(RtcpUnitTest, RtcpFB_036, Function | SmallTest | Level2)333 HWTEST_F(RtcpUnitTest, RtcpFB_036, Function | SmallTest | Level2)
334 {
335 auto fb = std::make_shared<RtcpFB>();
336 EXPECT_NE(fb, nullptr);
337 auto ret = fb->GetFciSize();
338 EXPECT_EQ(ret, -8);
339 }
340
HWTEST_F(RtcpUnitTest, RtcpFB_037, Function | SmallTest | Level2)341 HWTEST_F(RtcpUnitTest, RtcpFB_037, Function | SmallTest | Level2)
342 {
343 auto fb = std::make_shared<RtcpFB>();
344 EXPECT_NE(fb, nullptr);
345 auto ret = fb->GetFciPtr();
346 EXPECT_NE(ret, nullptr);
347 }
348
HWTEST_F(RtcpUnitTest, RtcpFB_038, Function | SmallTest | Level2)349 HWTEST_F(RtcpUnitTest, RtcpFB_038, Function | SmallTest | Level2)
350 {
351 auto ret = RtcpFB::Create(PsfbType::RTCP_PSFB_PLI);
352 EXPECT_NE(ret, nullptr);
353 }
354
HWTEST_F(RtcpUnitTest, RtcpFB_039, Function | SmallTest | Level2)355 HWTEST_F(RtcpUnitTest, RtcpFB_039, Function | SmallTest | Level2)
356 {
357 auto ret = RtcpFB::Create(RtpfbType::RTCP_RTPFB_NACK);
358 EXPECT_NE(ret, nullptr);
359 }
360
HWTEST_F(RtcpUnitTest, RtcpFB_040, Function | SmallTest | Level2)361 HWTEST_F(RtcpUnitTest, RtcpFB_040, Function | SmallTest | Level2)
362 {
363 auto ret = RtcpFB::CreateInner(RtcpType::RTCP_FIR, 0, nullptr, 0);
364 EXPECT_NE(ret, nullptr);
365 }
366
HWTEST_F(RtcpUnitTest, RtcpFB_041, Function | SmallTest | Level2)367 HWTEST_F(RtcpUnitTest, RtcpFB_041, Function | SmallTest | Level2)
368 {
369 auto bye = std::make_shared<RtcpBye>();
370 EXPECT_NE(bye, nullptr);
371 }
372
HWTEST_F(RtcpUnitTest, RtcpBye_042, Function | SmallTest | Level2)373 HWTEST_F(RtcpUnitTest, RtcpBye_042, Function | SmallTest | Level2)
374 {
375 auto bye = std::make_shared<RtcpBye>();
376 EXPECT_NE(bye, nullptr);
377 }
378
HWTEST_F(RtcpUnitTest, RtcpBye_043, Function | SmallTest | Level2)379 HWTEST_F(RtcpUnitTest, RtcpBye_043, Function | SmallTest | Level2)
380 {
381 auto bye = std::make_shared<RtcpBye>();
382 EXPECT_NE(bye, nullptr);
383 bye->ssrc_[0] = 1;
384 auto ret = bye->GetReason();
385 EXPECT_EQ(ret, "");
386 }
387
HWTEST_F(RtcpUnitTest, RtcpBye_044, Function | SmallTest | Level2)388 HWTEST_F(RtcpUnitTest, RtcpBye_044, Function | SmallTest | Level2)
389 {
390 auto bye = std::make_shared<RtcpBye>();
391 EXPECT_NE(bye, nullptr);
392 auto ret = bye->GetReason();
393 EXPECT_EQ(ret, "");
394 }
395
HWTEST_F(RtcpUnitTest, RtcpBye_045, Function | SmallTest | Level2)396 HWTEST_F(RtcpUnitTest, RtcpBye_045, Function | SmallTest | Level2)
397 {
398 auto bye = std::make_shared<RtcpBye>();
399 EXPECT_NE(bye, nullptr);
400 auto ret = bye->GetSSRC();
401 EXPECT_EQ(ret.size(), 0);
402 }
403
HWTEST_F(RtcpUnitTest, RtcpBye_046, Function | SmallTest | Level2)404 HWTEST_F(RtcpUnitTest, RtcpBye_046, Function | SmallTest | Level2)
405 {
406 const std::vector<uint32_t> ssrc{1, 2};
407 const std::string reason{"1111"};
408 auto ret = RtcpBye::Create(ssrc, reason);
409 EXPECT_NE(ret, nullptr);
410 }
411
HWTEST_F(RtcpUnitTest, RtcpXRDLRR_047, Function | SmallTest | Level2)412 HWTEST_F(RtcpUnitTest, RtcpXRDLRR_047, Function | SmallTest | Level2)
413 {
414 auto lrr = std::make_shared<RtcpXRDLRR>();
415 EXPECT_NE(lrr, nullptr);
416 auto ret = lrr->GetItemList();
417 EXPECT_EQ(ret.size(), 0);
418 }
419
HWTEST_F(RtcpUnitTest, RtcpXRDLRR_048, Function | SmallTest | Level2)420 HWTEST_F(RtcpUnitTest, RtcpXRDLRR_048, Function | SmallTest | Level2)
421 {
422 auto ret = RtcpXRDLRR::Create(0);
423 EXPECT_NE(ret, nullptr);
424 }
425 } // namespace
426 } // namespace Sharing
427 } // namespace OHOS