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

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

Issue 2943693003: Create RtcpDemuxer (Closed)
Patch Set: Rebased Created 3 years, 5 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
« no previous file with comments | « webrtc/call/rtp_rtcp_demuxer_helper.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/basictypes.h"
17 #include "webrtc/base/buffer.h"
18 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/bye.h"
19 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/extended_jitter_report.h"
20 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/extended_reports.h"
21 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/pli.h"
22 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/rapid_resync_request.h"
23 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/receiver_report.h"
24 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/sender_report.h"
25 #include "webrtc/test/gtest.h"
26
27 namespace webrtc {
28
29 namespace {
30 constexpr uint32_t kSsrc = 8374;
31 } // namespace
32
33 TEST(RtpRtcpDemuxerHelperTest, ParseRtcpPacketSenderSsrc_ByePacket) {
34 webrtc::rtcp::Bye rtcp_packet;
35 rtcp_packet.SetSenderSsrc(kSsrc);
36 rtc::Buffer raw_packet = rtcp_packet.Build();
37
38 rtc::Optional<uint32_t> ssrc = ParseRtcpPacketSenderSsrc(raw_packet);
39 EXPECT_EQ(ssrc, kSsrc);
40 }
41
42 TEST(RtpRtcpDemuxerHelperTest,
43 ParseRtcpPacketSenderSsrc_ExtendedReportsPacket) {
44 webrtc::rtcp::ExtendedReports rtcp_packet;
45 rtcp_packet.SetSenderSsrc(kSsrc);
46 rtc::Buffer raw_packet = rtcp_packet.Build();
47
48 rtc::Optional<uint32_t> ssrc = ParseRtcpPacketSenderSsrc(raw_packet);
49 EXPECT_EQ(ssrc, kSsrc);
50 }
51
52 TEST(RtpRtcpDemuxerHelperTest, ParseRtcpPacketSenderSsrc_PsfbPacket) {
53 webrtc::rtcp::Pli rtcp_packet; // Psfb is abstract; use a subclass.
54 rtcp_packet.SetSenderSsrc(kSsrc);
55 rtc::Buffer raw_packet = rtcp_packet.Build();
56
57 rtc::Optional<uint32_t> ssrc = ParseRtcpPacketSenderSsrc(raw_packet);
58 EXPECT_EQ(ssrc, kSsrc);
59 }
60
61 TEST(RtpRtcpDemuxerHelperTest, ParseRtcpPacketSenderSsrc_ReceiverReportPacket) {
62 webrtc::rtcp::ReceiverReport rtcp_packet;
63 rtcp_packet.SetSenderSsrc(kSsrc);
64 rtc::Buffer raw_packet = rtcp_packet.Build();
65
66 rtc::Optional<uint32_t> ssrc = ParseRtcpPacketSenderSsrc(raw_packet);
67 EXPECT_EQ(ssrc, kSsrc);
68 }
69
70 TEST(RtpRtcpDemuxerHelperTest, ParseRtcpPacketSenderSsrc_RtpfbPacket) {
71 // Rtpfb is abstract; use a subclass.
72 webrtc::rtcp::RapidResyncRequest rtcp_packet;
73 rtcp_packet.SetSenderSsrc(kSsrc);
74 rtc::Buffer raw_packet = rtcp_packet.Build();
75
76 rtc::Optional<uint32_t> ssrc = ParseRtcpPacketSenderSsrc(raw_packet);
77 EXPECT_EQ(ssrc, kSsrc);
78 }
79
80 TEST(RtpRtcpDemuxerHelperTest, ParseRtcpPacketSenderSsrc_SenderReportPacket) {
81 webrtc::rtcp::SenderReport rtcp_packet;
82 rtcp_packet.SetSenderSsrc(kSsrc);
83 rtc::Buffer raw_packet = rtcp_packet.Build();
84
85 rtc::Optional<uint32_t> ssrc = ParseRtcpPacketSenderSsrc(raw_packet);
86 EXPECT_EQ(ssrc, kSsrc);
87 }
88
89 TEST(RtpRtcpDemuxerHelperTest, ParseRtcpPacketSenderSsrc_MalformedRtcpPacket) {
90 uint8_t garbage[100];
91 memset(&garbage[0], 0, arraysize(garbage));
92
93 rtc::Optional<uint32_t> ssrc = ParseRtcpPacketSenderSsrc(garbage);
94 EXPECT_FALSE(ssrc);
95 }
96
97 TEST(RtpRtcpDemuxerHelperTest,
98 ParseRtcpPacketSenderSsrc_RtcpMessageWithoutSenderSsrc) {
99 webrtc::rtcp::ExtendedJitterReport rtcp_packet; // Has no sender SSRC.
100 rtc::Buffer raw_packet = rtcp_packet.Build();
101
102 rtc::Optional<uint32_t> ssrc = ParseRtcpPacketSenderSsrc(raw_packet);
103 EXPECT_FALSE(ssrc);
104 }
105
106 TEST(RtpRtcpDemuxerHelperTest, ParseRtcpPacketSenderSsrc_TruncatedRtcpMessage) {
107 webrtc::rtcp::Bye rtcp_packet;
108 rtcp_packet.SetSenderSsrc(kSsrc);
109 rtc::Buffer raw_packet = rtcp_packet.Build();
110
111 constexpr size_t rtcp_length_bytes = 8;
112 ASSERT_EQ(rtcp_length_bytes, raw_packet.size());
113
114 rtc::Optional<uint32_t> ssrc = ParseRtcpPacketSenderSsrc(
115 rtc::ArrayView<const uint8_t>(raw_packet.data(), rtcp_length_bytes - 1));
116 EXPECT_FALSE(ssrc);
117 }
118
119 } // namespace webrtc
OLDNEW
« no previous file with comments | « 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