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

Side by Side Diff: webrtc/call/rtp_rtcp_demuxer_helper_unittest.cc

Issue 2943693003: Create RtcpDemuxer (Closed)
Patch Set: CR response Created 3 years, 6 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
(Empty)
1 /*
2 * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.
3 *
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
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11 #include <cstdio>
12
13 #include "webrtc/call/rtp_rtcp_demuxer_helper.h"
14
15 #include "webrtc/base/arraysize.h"
16 #include "webrtc/base/buffer.h"
17 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/bye.h"
18 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/extended_jitter_report.h"
19 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/pli.h"
20 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/rapid_resync_request.h"
21 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/receiver_report.h"
22 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/sender_report.h"
23 #include "webrtc/test/gtest.h"
24
25 namespace webrtc {
26
27 namespace {
28 constexpr uint32_t kSsrc = 8374;
29 } // namespace
30
31 TEST(RtpRtcpDemuxerHelperTest, ParseSenderSsrc_CorrectOutputForBye) {
32 webrtc::rtcp::Bye rtcp_packet;
33 rtcp_packet.SetSenderSsrc(kSsrc);
34
35 rtc::Buffer buffer = rtcp_packet.Build();
36 rtc::ArrayView<const uint8_t> array =
37 rtc::ArrayView<const uint8_t>(buffer.data(), buffer.size());
38
39 uint32_t ssrc;
40 EXPECT_TRUE(ParseSenderSsrc(array, &ssrc));
danilchap 2017/06/16 16:46:19 you should be able to pass buffer directly, withou
eladalon 2017/06/19 11:28:47 Done.
41 EXPECT_EQ(ssrc, kSsrc);
42 }
43
44 TEST(RtpRtcpDemuxerHelperTest, ParseSenderSsrc_CorrectOutputForPsfb) {
45 webrtc::rtcp::Pli rtcp_packet; // Psfb is abstract; use a subclass.
46 rtcp_packet.SetSenderSsrc(kSsrc);
47
48 rtc::Buffer buffer = rtcp_packet.Build();
49 rtc::ArrayView<const uint8_t> array =
50 rtc::ArrayView<const uint8_t>(buffer.data(), buffer.size());
51
52 uint32_t ssrc;
53 EXPECT_TRUE(ParseSenderSsrc(array, &ssrc));
54 EXPECT_EQ(ssrc, kSsrc);
55 }
56
57 TEST(RtpRtcpDemuxerHelperTest, ParseSenderSsrc_CorrectOutputForReceiverReport) {
58 webrtc::rtcp::ReceiverReport rtcp_packet;
59 rtcp_packet.SetSenderSsrc(kSsrc);
60
61 rtc::Buffer buffer = rtcp_packet.Build();
62 rtc::ArrayView<const uint8_t> array =
63 rtc::ArrayView<const uint8_t>(buffer.data(), buffer.size());
64
65 uint32_t ssrc;
66 EXPECT_TRUE(ParseSenderSsrc(array, &ssrc));
67 EXPECT_EQ(ssrc, kSsrc);
68 }
69
70 TEST(RtpRtcpDemuxerHelperTest, ParseSenderSsrc_CorrectOutputForRtpfb) {
71 // Rtpfb is abstract; use a subclass.
72 webrtc::rtcp::RapidResyncRequest rtcp_packet;
73 rtcp_packet.SetSenderSsrc(kSsrc);
74
75 rtc::Buffer buffer = rtcp_packet.Build();
76 rtc::ArrayView<const uint8_t> array =
77 rtc::ArrayView<const uint8_t>(buffer.data(), buffer.size());
78
79 uint32_t ssrc;
80 EXPECT_TRUE(ParseSenderSsrc(array, &ssrc));
81 EXPECT_EQ(ssrc, kSsrc);
82 }
83
84 TEST(RtpRtcpDemuxerHelperTest, ParseSenderSsrc_CorrectOutputForSenderReport) {
85 webrtc::rtcp::SenderReport rtcp_packet;
86 rtcp_packet.SetSenderSsrc(kSsrc);
87
88 rtc::Buffer buffer = rtcp_packet.Build();
89 rtc::ArrayView<const uint8_t> array =
90 rtc::ArrayView<const uint8_t>(buffer.data(), buffer.size());
91
92 uint32_t ssrc;
93 EXPECT_TRUE(ParseSenderSsrc(array, &ssrc));
94 EXPECT_EQ(ssrc, kSsrc);
95 }
96
97 TEST(RtpRtcpDemuxerHelperTest, ParseSenderSsrc_BadRtcpPacket) {
danilchap 2017/06/16 16:46:19 may be test for other kind of bad packets too: e.g
eladalon 2017/06/19 11:28:47 IMHO, that would be the sink's problem; the demuxe
98 uint8_t garbage[100];
99 memset(&garbage[0], 0, arraysize(garbage));
100
101 uint32_t ssrc;
102 EXPECT_FALSE(ParseSenderSsrc(garbage, &ssrc));
103 }
104
105 TEST(RtpRtcpDemuxerHelperTest, ParseSenderSsrc_RtcpMessageWithoutSenderSsrc) {
106 webrtc::rtcp::ExtendedJitterReport rtcp_packet; // Has no sender SSRC.
107
108 rtc::Buffer buffer = rtcp_packet.Build();
109 rtc::ArrayView<const uint8_t> array =
110 rtc::ArrayView<const uint8_t>(buffer.data(), buffer.size());
111
112 uint32_t ssrc;
113 EXPECT_FALSE(ParseSenderSsrc(array, &ssrc));
114 }
115
116 } // namespace webrtc
OLDNEW
« webrtc/call/rtp_rtcp_demuxer_helper.cc ('K') | « webrtc/call/rtp_rtcp_demuxer_helper.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698