blob: b9ad1ce359f809066a5629d323a077b55f1e423e [file] [log] [blame]
Chen Xingd2a66862019-06-03 14:53:42 +02001/*
2 * Copyright (c) 2019 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 "api/rtp_packet_infos.h"
12
13#include "test/gmock.h"
14#include "test/gtest.h"
15
16namespace webrtc {
17
18TEST(RtpPacketInfoTest, Ssrc) {
19 const uint32_t value = 4038189233;
20
21 RtpPacketInfo lhs;
22 RtpPacketInfo rhs;
23
24 EXPECT_TRUE(lhs == rhs);
25 EXPECT_FALSE(lhs != rhs);
26
27 rhs.set_ssrc(value);
28 EXPECT_EQ(rhs.ssrc(), value);
29
30 EXPECT_FALSE(lhs == rhs);
31 EXPECT_TRUE(lhs != rhs);
32
33 lhs = rhs;
34
35 EXPECT_TRUE(lhs == rhs);
36 EXPECT_FALSE(lhs != rhs);
37
38 rhs = RtpPacketInfo();
39 EXPECT_NE(rhs.ssrc(), value);
40
41 rhs = RtpPacketInfo(value, {}, {}, {}, {}, {});
42 EXPECT_EQ(rhs.ssrc(), value);
43}
44
45TEST(RtpPacketInfoTest, Csrcs) {
46 const std::vector<uint32_t> value = {4038189233, 3016333617, 1207992985};
47
48 RtpPacketInfo lhs;
49 RtpPacketInfo rhs;
50
51 EXPECT_TRUE(lhs == rhs);
52 EXPECT_FALSE(lhs != rhs);
53
54 rhs.set_csrcs(value);
55 EXPECT_EQ(rhs.csrcs(), value);
56
57 EXPECT_FALSE(lhs == rhs);
58 EXPECT_TRUE(lhs != rhs);
59
60 lhs = rhs;
61
62 EXPECT_TRUE(lhs == rhs);
63 EXPECT_FALSE(lhs != rhs);
64
65 rhs = RtpPacketInfo();
66 EXPECT_NE(rhs.csrcs(), value);
67
68 rhs = RtpPacketInfo({}, value, {}, {}, {}, {});
69 EXPECT_EQ(rhs.csrcs(), value);
70}
71
72TEST(RtpPacketInfoTest, SequenceNumber) {
73 const uint16_t value = 20238;
74
75 RtpPacketInfo lhs;
76 RtpPacketInfo rhs;
77
78 EXPECT_TRUE(lhs == rhs);
79 EXPECT_FALSE(lhs != rhs);
80
81 rhs.set_sequence_number(value);
82 EXPECT_EQ(rhs.sequence_number(), value);
83
84 EXPECT_FALSE(lhs == rhs);
85 EXPECT_TRUE(lhs != rhs);
86
87 lhs = rhs;
88
89 EXPECT_TRUE(lhs == rhs);
90 EXPECT_FALSE(lhs != rhs);
91
92 rhs = RtpPacketInfo();
93 EXPECT_NE(rhs.sequence_number(), value);
94
95 rhs = RtpPacketInfo({}, {}, value, {}, {}, {});
96 EXPECT_EQ(rhs.sequence_number(), value);
97}
98
99TEST(RtpPacketInfoTest, RtpTimestamp) {
100 const uint32_t value = 4038189233;
101
102 RtpPacketInfo lhs;
103 RtpPacketInfo rhs;
104
105 EXPECT_TRUE(lhs == rhs);
106 EXPECT_FALSE(lhs != rhs);
107
108 rhs.set_rtp_timestamp(value);
109 EXPECT_EQ(rhs.rtp_timestamp(), value);
110
111 EXPECT_FALSE(lhs == rhs);
112 EXPECT_TRUE(lhs != rhs);
113
114 lhs = rhs;
115
116 EXPECT_TRUE(lhs == rhs);
117 EXPECT_FALSE(lhs != rhs);
118
119 rhs = RtpPacketInfo();
120 EXPECT_NE(rhs.rtp_timestamp(), value);
121
122 rhs = RtpPacketInfo({}, {}, {}, value, {}, {});
123 EXPECT_EQ(rhs.rtp_timestamp(), value);
124}
125
126TEST(RtpPacketInfoTest, AudioLevel) {
127 const absl::optional<uint8_t> value = 31;
128
129 RtpPacketInfo lhs;
130 RtpPacketInfo rhs;
131
132 EXPECT_TRUE(lhs == rhs);
133 EXPECT_FALSE(lhs != rhs);
134
135 rhs.set_audio_level(value);
136 EXPECT_EQ(rhs.audio_level(), value);
137
138 EXPECT_FALSE(lhs == rhs);
139 EXPECT_TRUE(lhs != rhs);
140
141 lhs = rhs;
142
143 EXPECT_TRUE(lhs == rhs);
144 EXPECT_FALSE(lhs != rhs);
145
146 rhs = RtpPacketInfo();
147 EXPECT_NE(rhs.audio_level(), value);
148
149 rhs = RtpPacketInfo({}, {}, {}, {}, value, {});
150 EXPECT_EQ(rhs.audio_level(), value);
151}
152
153TEST(RtpPacketInfoTest, ReceiveTimeMs) {
154 const int64_t value = 8868963877546349045LL;
155
156 RtpPacketInfo lhs;
157 RtpPacketInfo rhs;
158
159 EXPECT_TRUE(lhs == rhs);
160 EXPECT_FALSE(lhs != rhs);
161
162 rhs.set_receive_time_ms(value);
163 EXPECT_EQ(rhs.receive_time_ms(), value);
164
165 EXPECT_FALSE(lhs == rhs);
166 EXPECT_TRUE(lhs != rhs);
167
168 lhs = rhs;
169
170 EXPECT_TRUE(lhs == rhs);
171 EXPECT_FALSE(lhs != rhs);
172
173 rhs = RtpPacketInfo();
174 EXPECT_NE(rhs.receive_time_ms(), value);
175
176 rhs = RtpPacketInfo({}, {}, {}, {}, {}, value);
177 EXPECT_EQ(rhs.receive_time_ms(), value);
178}
179
180} // namespace webrtc