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

Side by Side Diff: media/cast/net/rtp/receiver_stats_unittest.cc

Issue 1515433002: Replace uses of raw uint32's with a type-checked RtpTimeTicks data type. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years 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
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <gtest/gtest.h> 5 #include <gtest/gtest.h>
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include "base/test/simple_test_tick_clock.h" 9 #include "base/test/simple_test_tick_clock.h"
10 #include "base/time/time.h" 10 #include "base/time/time.h"
11 #include "media/cast/constants.h"
11 #include "media/cast/net/rtp/receiver_stats.h" 12 #include "media/cast/net/rtp/receiver_stats.h"
12 #include "media/cast/net/rtp/rtp_defines.h" 13 #include "media/cast/net/rtp/rtp_defines.h"
13 14
14 namespace media { 15 namespace media {
15 namespace cast { 16 namespace cast {
16 17
17 static const int64 kStartMillisecond = INT64_C(12345678900000); 18 static const int64 kStartMillisecond = INT64_C(12345678900000);
18 static const uint32 kStdTimeIncrementMs = 33; 19 static const uint32 kStdTimeIncrementMs = 33;
19 20
20 class ReceiverStatsTest : public ::testing::Test { 21 class ReceiverStatsTest : public ::testing::Test {
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 RtpReceiverStatistics s = stats_.GetStatistics(); 54 RtpReceiverStatistics s = stats_.GetStatistics();
54 EXPECT_EQ(0u, s.fraction_lost); 55 EXPECT_EQ(0u, s.fraction_lost);
55 EXPECT_EQ(0u, s.cumulative_lost); 56 EXPECT_EQ(0u, s.cumulative_lost);
56 EXPECT_EQ(0u, s.extended_high_sequence_number); 57 EXPECT_EQ(0u, s.extended_high_sequence_number);
57 EXPECT_EQ(0u, s.jitter); 58 EXPECT_EQ(0u, s.jitter);
58 } 59 }
59 60
60 TEST_F(ReceiverStatsTest, LossCount) { 61 TEST_F(ReceiverStatsTest, LossCount) {
61 for (int i = 0; i < 300; ++i) { 62 for (int i = 0; i < 300; ++i) {
62 if (i % 4) 63 if (i % 4)
63 stats_.UpdateStatistics(rtp_header_); 64 stats_.UpdateStatistics(rtp_header_, kVideoFrequency);
64 if (i % 3) { 65 if (i % 3) {
65 rtp_header_.rtp_timestamp += 33 * 90; 66 rtp_header_.rtp_timestamp += RtpTimeDelta::FromTimeDelta(
67 base::TimeDelta::FromMilliseconds(33), kVideoFrequency);
66 } 68 }
67 ++rtp_header_.sequence_number; 69 ++rtp_header_.sequence_number;
68 testing_clock_.Advance(delta_increments_); 70 testing_clock_.Advance(delta_increments_);
69 } 71 }
70 RtpReceiverStatistics s = stats_.GetStatistics(); 72 RtpReceiverStatistics s = stats_.GetStatistics();
71 EXPECT_EQ(63u, s.fraction_lost); 73 EXPECT_EQ(63u, s.fraction_lost);
72 EXPECT_EQ(74u, s.cumulative_lost); 74 EXPECT_EQ(74u, s.cumulative_lost);
73 // Build extended sequence number. 75 // Build extended sequence number.
74 const uint32 extended_seq_num = rtp_header_.sequence_number - 1; 76 const uint32 extended_seq_num = rtp_header_.sequence_number - 1;
75 EXPECT_EQ(extended_seq_num, s.extended_high_sequence_number); 77 EXPECT_EQ(extended_seq_num, s.extended_high_sequence_number);
76 } 78 }
77 79
78 TEST_F(ReceiverStatsTest, NoLossWrap) { 80 TEST_F(ReceiverStatsTest, NoLossWrap) {
79 rtp_header_.sequence_number = 65500; 81 rtp_header_.sequence_number = 65500;
80 for (int i = 0; i < 300; ++i) { 82 for (int i = 0; i < 300; ++i) {
81 stats_.UpdateStatistics(rtp_header_); 83 stats_.UpdateStatistics(rtp_header_, kVideoFrequency);
82 if (i % 3) { 84 if (i % 3) {
83 rtp_header_.rtp_timestamp += 33 * 90; 85 rtp_header_.rtp_timestamp += RtpTimeDelta::FromTimeDelta(
86 base::TimeDelta::FromMilliseconds(33), kVideoFrequency);
84 } 87 }
85 ++rtp_header_.sequence_number; 88 ++rtp_header_.sequence_number;
86 testing_clock_.Advance(delta_increments_); 89 testing_clock_.Advance(delta_increments_);
87 } 90 }
88 RtpReceiverStatistics s = stats_.GetStatistics(); 91 RtpReceiverStatistics s = stats_.GetStatistics();
89 EXPECT_EQ(0u, s.fraction_lost); 92 EXPECT_EQ(0u, s.fraction_lost);
90 EXPECT_EQ(0u, s.cumulative_lost); 93 EXPECT_EQ(0u, s.cumulative_lost);
91 // Build extended sequence number (one wrap cycle). 94 // Build extended sequence number (one wrap cycle).
92 const uint32 extended_seq_num = (1 << 16) + rtp_header_.sequence_number - 1; 95 const uint32 extended_seq_num = (1 << 16) + rtp_header_.sequence_number - 1;
93 EXPECT_EQ(extended_seq_num, s.extended_high_sequence_number); 96 EXPECT_EQ(extended_seq_num, s.extended_high_sequence_number);
94 } 97 }
95 98
96 TEST_F(ReceiverStatsTest, LossCountWrap) { 99 TEST_F(ReceiverStatsTest, LossCountWrap) {
97 const uint32 kStartSequenceNumber = 65500; 100 const uint32 kStartSequenceNumber = 65500;
98 rtp_header_.sequence_number = kStartSequenceNumber; 101 rtp_header_.sequence_number = kStartSequenceNumber;
99 for (int i = 0; i < 300; ++i) { 102 for (int i = 0; i < 300; ++i) {
100 if (i % 4) 103 if (i % 4)
101 stats_.UpdateStatistics(rtp_header_); 104 stats_.UpdateStatistics(rtp_header_, kVideoFrequency);
102 if (i % 3) 105 if (i % 3)
103 // Update timestamp. 106 rtp_header_.rtp_timestamp += RtpTimeDelta::FromTicks(1);
104 ++rtp_header_.rtp_timestamp;
105 ++rtp_header_.sequence_number; 107 ++rtp_header_.sequence_number;
106 testing_clock_.Advance(delta_increments_); 108 testing_clock_.Advance(delta_increments_);
107 } 109 }
108 RtpReceiverStatistics s = stats_.GetStatistics(); 110 RtpReceiverStatistics s = stats_.GetStatistics();
109 EXPECT_EQ(63u, s.fraction_lost); 111 EXPECT_EQ(63u, s.fraction_lost);
110 EXPECT_EQ(74u, s.cumulative_lost); 112 EXPECT_EQ(74u, s.cumulative_lost);
111 // Build extended sequence number (one wrap cycle). 113 // Build extended sequence number (one wrap cycle).
112 const uint32 extended_seq_num = (1 << 16) + rtp_header_.sequence_number - 1; 114 const uint32 extended_seq_num = (1 << 16) + rtp_header_.sequence_number - 1;
113 EXPECT_EQ(extended_seq_num, s.extended_high_sequence_number); 115 EXPECT_EQ(extended_seq_num, s.extended_high_sequence_number);
114 } 116 }
115 117
116 TEST_F(ReceiverStatsTest, BasicJitter) { 118 TEST_F(ReceiverStatsTest, BasicJitter) {
117 for (int i = 0; i < 300; ++i) { 119 for (int i = 0; i < 300; ++i) {
118 stats_.UpdateStatistics(rtp_header_); 120 stats_.UpdateStatistics(rtp_header_, kVideoFrequency);
119 ++rtp_header_.sequence_number; 121 ++rtp_header_.sequence_number;
120 rtp_header_.rtp_timestamp += 33 * 90; 122 rtp_header_.rtp_timestamp += RtpTimeDelta::FromTimeDelta(
123 base::TimeDelta::FromMilliseconds(33), kVideoFrequency);
121 testing_clock_.Advance(delta_increments_); 124 testing_clock_.Advance(delta_increments_);
122 } 125 }
123 RtpReceiverStatistics s = stats_.GetStatistics(); 126 RtpReceiverStatistics s = stats_.GetStatistics();
124 EXPECT_FALSE(s.fraction_lost); 127 EXPECT_FALSE(s.fraction_lost);
125 EXPECT_FALSE(s.cumulative_lost); 128 EXPECT_FALSE(s.cumulative_lost);
126 // Build extended sequence number (one wrap cycle). 129 // Build extended sequence number (one wrap cycle).
127 const uint32 extended_seq_num = rtp_header_.sequence_number - 1; 130 const uint32 extended_seq_num = rtp_header_.sequence_number - 1;
128 EXPECT_EQ(extended_seq_num, s.extended_high_sequence_number); 131 EXPECT_EQ(extended_seq_num, s.extended_high_sequence_number);
129 EXPECT_EQ(ExpectedJitter(kStdTimeIncrementMs, 300), s.jitter); 132 EXPECT_EQ(ExpectedJitter(kStdTimeIncrementMs, 300), s.jitter);
130 } 133 }
131 134
132 TEST_F(ReceiverStatsTest, NonTrivialJitter) { 135 TEST_F(ReceiverStatsTest, NonTrivialJitter) {
133 const int kAdditionalIncrement = 5; 136 const int kAdditionalIncrement = 5;
134 for (int i = 0; i < 300; ++i) { 137 for (int i = 0; i < 300; ++i) {
135 stats_.UpdateStatistics(rtp_header_); 138 stats_.UpdateStatistics(rtp_header_, kVideoFrequency);
136 ++rtp_header_.sequence_number; 139 ++rtp_header_.sequence_number;
137 rtp_header_.rtp_timestamp += 33 * 90; 140 rtp_header_.rtp_timestamp += RtpTimeDelta::FromTimeDelta(
141 base::TimeDelta::FromMilliseconds(33), kVideoFrequency);
138 base::TimeDelta additional_delta = 142 base::TimeDelta additional_delta =
139 base::TimeDelta::FromMilliseconds(kAdditionalIncrement); 143 base::TimeDelta::FromMilliseconds(kAdditionalIncrement);
140 testing_clock_.Advance(delta_increments_ + additional_delta); 144 testing_clock_.Advance(delta_increments_ + additional_delta);
141 } 145 }
142 RtpReceiverStatistics s = stats_.GetStatistics(); 146 RtpReceiverStatistics s = stats_.GetStatistics();
143 EXPECT_FALSE(s.fraction_lost); 147 EXPECT_FALSE(s.fraction_lost);
144 EXPECT_FALSE(s.cumulative_lost); 148 EXPECT_FALSE(s.cumulative_lost);
145 // Build extended sequence number (one wrap cycle). 149 // Build extended sequence number (one wrap cycle).
146 const uint32 extended_seq_num = rtp_header_.sequence_number - 1; 150 const uint32 extended_seq_num = rtp_header_.sequence_number - 1;
147 EXPECT_EQ(extended_seq_num, s.extended_high_sequence_number); 151 EXPECT_EQ(extended_seq_num, s.extended_high_sequence_number);
148 EXPECT_EQ(ExpectedJitter(kStdTimeIncrementMs + kAdditionalIncrement, 300), 152 EXPECT_EQ(ExpectedJitter(kStdTimeIncrementMs + kAdditionalIncrement, 300),
149 s.jitter); 153 s.jitter);
150 } 154 }
151 155
152 } // namespace cast 156 } // namespace cast
153 } // namespace media 157 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698