rtcp_nack_stats_unittest.cc (1834B)
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 "modules/rtp_rtcp/source/rtcp_nack_stats.h" 12 13 #include "test/gtest.h" 14 15 namespace webrtc { 16 17 TEST(RtcpNackStatsTest, Requests) { 18 RtcpNackStats stats; 19 EXPECT_EQ(0U, stats.unique_requests()); 20 EXPECT_EQ(0U, stats.requests()); 21 stats.ReportRequest(10); 22 EXPECT_EQ(1U, stats.unique_requests()); 23 EXPECT_EQ(1U, stats.requests()); 24 25 stats.ReportRequest(10); 26 EXPECT_EQ(1U, stats.unique_requests()); 27 stats.ReportRequest(11); 28 EXPECT_EQ(2U, stats.unique_requests()); 29 30 stats.ReportRequest(11); 31 EXPECT_EQ(2U, stats.unique_requests()); 32 stats.ReportRequest(13); 33 EXPECT_EQ(3U, stats.unique_requests()); 34 35 stats.ReportRequest(11); 36 EXPECT_EQ(3U, stats.unique_requests()); 37 EXPECT_EQ(6U, stats.requests()); 38 } 39 40 TEST(RtcpNackStatsTest, RequestsWithWrap) { 41 RtcpNackStats stats; 42 stats.ReportRequest(65534); 43 EXPECT_EQ(1U, stats.unique_requests()); 44 45 stats.ReportRequest(65534); 46 EXPECT_EQ(1U, stats.unique_requests()); 47 stats.ReportRequest(65535); 48 EXPECT_EQ(2U, stats.unique_requests()); 49 50 stats.ReportRequest(65535); 51 EXPECT_EQ(2U, stats.unique_requests()); 52 stats.ReportRequest(0); 53 EXPECT_EQ(3U, stats.unique_requests()); 54 55 stats.ReportRequest(65535); 56 EXPECT_EQ(3U, stats.unique_requests()); 57 stats.ReportRequest(0); 58 EXPECT_EQ(3U, stats.unique_requests()); 59 stats.ReportRequest(1); 60 EXPECT_EQ(4U, stats.unique_requests()); 61 EXPECT_EQ(8U, stats.requests()); 62 } 63 64 } // namespace webrtc