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

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: Speculative workaround fix for win8_chromium_ng compile error. Created 4 years, 11 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 | « media/cast/net/rtp/receiver_stats.cc ('k') | media/cast/net/rtp/rtp_defines.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/macros.h" 9 #include "base/macros.h"
10 #include "base/test/simple_test_tick_clock.h" 10 #include "base/test/simple_test_tick_clock.h"
11 #include "base/time/time.h" 11 #include "base/time/time.h"
12 #include "media/cast/constants.h"
12 #include "media/cast/net/rtp/receiver_stats.h" 13 #include "media/cast/net/rtp/receiver_stats.h"
13 #include "media/cast/net/rtp/rtp_defines.h" 14 #include "media/cast/net/rtp/rtp_defines.h"
14 15
15 namespace media { 16 namespace media {
16 namespace cast { 17 namespace cast {
17 18
18 static const int64_t kStartMillisecond = INT64_C(12345678900000); 19 static const int64_t kStartMillisecond = INT64_C(12345678900000);
19 static const uint32_t kStdTimeIncrementMs = 33; 20 static const uint32_t kStdTimeIncrementMs = 33;
20 21
21 class ReceiverStatsTest : public ::testing::Test { 22 class ReceiverStatsTest : public ::testing::Test {
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 RtpReceiverStatistics s = stats_.GetStatistics(); 55 RtpReceiverStatistics s = stats_.GetStatistics();
55 EXPECT_EQ(0u, s.fraction_lost); 56 EXPECT_EQ(0u, s.fraction_lost);
56 EXPECT_EQ(0u, s.cumulative_lost); 57 EXPECT_EQ(0u, s.cumulative_lost);
57 EXPECT_EQ(0u, s.extended_high_sequence_number); 58 EXPECT_EQ(0u, s.extended_high_sequence_number);
58 EXPECT_EQ(0u, s.jitter); 59 EXPECT_EQ(0u, s.jitter);
59 } 60 }
60 61
61 TEST_F(ReceiverStatsTest, LossCount) { 62 TEST_F(ReceiverStatsTest, LossCount) {
62 for (int i = 0; i < 300; ++i) { 63 for (int i = 0; i < 300; ++i) {
63 if (i % 4) 64 if (i % 4)
64 stats_.UpdateStatistics(rtp_header_); 65 stats_.UpdateStatistics(rtp_header_, kVideoFrequency);
65 if (i % 3) { 66 if (i % 3) {
66 rtp_header_.rtp_timestamp += 33 * 90; 67 rtp_header_.rtp_timestamp += RtpTimeDelta::FromTimeDelta(
68 base::TimeDelta::FromMilliseconds(33), kVideoFrequency);
67 } 69 }
68 ++rtp_header_.sequence_number; 70 ++rtp_header_.sequence_number;
69 testing_clock_.Advance(delta_increments_); 71 testing_clock_.Advance(delta_increments_);
70 } 72 }
71 RtpReceiverStatistics s = stats_.GetStatistics(); 73 RtpReceiverStatistics s = stats_.GetStatistics();
72 EXPECT_EQ(63u, s.fraction_lost); 74 EXPECT_EQ(63u, s.fraction_lost);
73 EXPECT_EQ(74u, s.cumulative_lost); 75 EXPECT_EQ(74u, s.cumulative_lost);
74 // Build extended sequence number. 76 // Build extended sequence number.
75 const uint32_t extended_seq_num = rtp_header_.sequence_number - 1; 77 const uint32_t extended_seq_num = rtp_header_.sequence_number - 1;
76 EXPECT_EQ(extended_seq_num, s.extended_high_sequence_number); 78 EXPECT_EQ(extended_seq_num, s.extended_high_sequence_number);
77 } 79 }
78 80
79 TEST_F(ReceiverStatsTest, NoLossWrap) { 81 TEST_F(ReceiverStatsTest, NoLossWrap) {
80 rtp_header_.sequence_number = 65500; 82 rtp_header_.sequence_number = 65500;
81 for (int i = 0; i < 300; ++i) { 83 for (int i = 0; i < 300; ++i) {
82 stats_.UpdateStatistics(rtp_header_); 84 stats_.UpdateStatistics(rtp_header_, kVideoFrequency);
83 if (i % 3) { 85 if (i % 3) {
84 rtp_header_.rtp_timestamp += 33 * 90; 86 rtp_header_.rtp_timestamp += RtpTimeDelta::FromTimeDelta(
87 base::TimeDelta::FromMilliseconds(33), kVideoFrequency);
85 } 88 }
86 ++rtp_header_.sequence_number; 89 ++rtp_header_.sequence_number;
87 testing_clock_.Advance(delta_increments_); 90 testing_clock_.Advance(delta_increments_);
88 } 91 }
89 RtpReceiverStatistics s = stats_.GetStatistics(); 92 RtpReceiverStatistics s = stats_.GetStatistics();
90 EXPECT_EQ(0u, s.fraction_lost); 93 EXPECT_EQ(0u, s.fraction_lost);
91 EXPECT_EQ(0u, s.cumulative_lost); 94 EXPECT_EQ(0u, s.cumulative_lost);
92 // Build extended sequence number (one wrap cycle). 95 // Build extended sequence number (one wrap cycle).
93 const uint32_t extended_seq_num = (1 << 16) + rtp_header_.sequence_number - 1; 96 const uint32_t extended_seq_num = (1 << 16) + rtp_header_.sequence_number - 1;
94 EXPECT_EQ(extended_seq_num, s.extended_high_sequence_number); 97 EXPECT_EQ(extended_seq_num, s.extended_high_sequence_number);
95 } 98 }
96 99
97 TEST_F(ReceiverStatsTest, LossCountWrap) { 100 TEST_F(ReceiverStatsTest, LossCountWrap) {
98 const uint32_t kStartSequenceNumber = 65500; 101 const uint32_t kStartSequenceNumber = 65500;
99 rtp_header_.sequence_number = kStartSequenceNumber; 102 rtp_header_.sequence_number = kStartSequenceNumber;
100 for (int i = 0; i < 300; ++i) { 103 for (int i = 0; i < 300; ++i) {
101 if (i % 4) 104 if (i % 4)
102 stats_.UpdateStatistics(rtp_header_); 105 stats_.UpdateStatistics(rtp_header_, kVideoFrequency);
103 if (i % 3) 106 if (i % 3)
104 // Update timestamp. 107 rtp_header_.rtp_timestamp += RtpTimeDelta::FromTicks(1);
105 ++rtp_header_.rtp_timestamp;
106 ++rtp_header_.sequence_number; 108 ++rtp_header_.sequence_number;
107 testing_clock_.Advance(delta_increments_); 109 testing_clock_.Advance(delta_increments_);
108 } 110 }
109 RtpReceiverStatistics s = stats_.GetStatistics(); 111 RtpReceiverStatistics s = stats_.GetStatistics();
110 EXPECT_EQ(63u, s.fraction_lost); 112 EXPECT_EQ(63u, s.fraction_lost);
111 EXPECT_EQ(74u, s.cumulative_lost); 113 EXPECT_EQ(74u, s.cumulative_lost);
112 // Build extended sequence number (one wrap cycle). 114 // Build extended sequence number (one wrap cycle).
113 const uint32_t extended_seq_num = (1 << 16) + rtp_header_.sequence_number - 1; 115 const uint32_t extended_seq_num = (1 << 16) + rtp_header_.sequence_number - 1;
114 EXPECT_EQ(extended_seq_num, s.extended_high_sequence_number); 116 EXPECT_EQ(extended_seq_num, s.extended_high_sequence_number);
115 } 117 }
116 118
117 TEST_F(ReceiverStatsTest, BasicJitter) { 119 TEST_F(ReceiverStatsTest, BasicJitter) {
118 for (int i = 0; i < 300; ++i) { 120 for (int i = 0; i < 300; ++i) {
119 stats_.UpdateStatistics(rtp_header_); 121 stats_.UpdateStatistics(rtp_header_, kVideoFrequency);
120 ++rtp_header_.sequence_number; 122 ++rtp_header_.sequence_number;
121 rtp_header_.rtp_timestamp += 33 * 90; 123 rtp_header_.rtp_timestamp += RtpTimeDelta::FromTimeDelta(
124 base::TimeDelta::FromMilliseconds(33), kVideoFrequency);
122 testing_clock_.Advance(delta_increments_); 125 testing_clock_.Advance(delta_increments_);
123 } 126 }
124 RtpReceiverStatistics s = stats_.GetStatistics(); 127 RtpReceiverStatistics s = stats_.GetStatistics();
125 EXPECT_FALSE(s.fraction_lost); 128 EXPECT_FALSE(s.fraction_lost);
126 EXPECT_FALSE(s.cumulative_lost); 129 EXPECT_FALSE(s.cumulative_lost);
127 // Build extended sequence number (one wrap cycle). 130 // Build extended sequence number (one wrap cycle).
128 const uint32_t extended_seq_num = rtp_header_.sequence_number - 1; 131 const uint32_t extended_seq_num = rtp_header_.sequence_number - 1;
129 EXPECT_EQ(extended_seq_num, s.extended_high_sequence_number); 132 EXPECT_EQ(extended_seq_num, s.extended_high_sequence_number);
130 EXPECT_EQ(ExpectedJitter(kStdTimeIncrementMs, 300), s.jitter); 133 EXPECT_EQ(ExpectedJitter(kStdTimeIncrementMs, 300), s.jitter);
131 } 134 }
132 135
133 TEST_F(ReceiverStatsTest, NonTrivialJitter) { 136 TEST_F(ReceiverStatsTest, NonTrivialJitter) {
134 const int kAdditionalIncrement = 5; 137 const int kAdditionalIncrement = 5;
135 for (int i = 0; i < 300; ++i) { 138 for (int i = 0; i < 300; ++i) {
136 stats_.UpdateStatistics(rtp_header_); 139 stats_.UpdateStatistics(rtp_header_, kVideoFrequency);
137 ++rtp_header_.sequence_number; 140 ++rtp_header_.sequence_number;
138 rtp_header_.rtp_timestamp += 33 * 90; 141 rtp_header_.rtp_timestamp += RtpTimeDelta::FromTimeDelta(
142 base::TimeDelta::FromMilliseconds(33), kVideoFrequency);
139 base::TimeDelta additional_delta = 143 base::TimeDelta additional_delta =
140 base::TimeDelta::FromMilliseconds(kAdditionalIncrement); 144 base::TimeDelta::FromMilliseconds(kAdditionalIncrement);
141 testing_clock_.Advance(delta_increments_ + additional_delta); 145 testing_clock_.Advance(delta_increments_ + additional_delta);
142 } 146 }
143 RtpReceiverStatistics s = stats_.GetStatistics(); 147 RtpReceiverStatistics s = stats_.GetStatistics();
144 EXPECT_FALSE(s.fraction_lost); 148 EXPECT_FALSE(s.fraction_lost);
145 EXPECT_FALSE(s.cumulative_lost); 149 EXPECT_FALSE(s.cumulative_lost);
146 // Build extended sequence number (one wrap cycle). 150 // Build extended sequence number (one wrap cycle).
147 const uint32_t extended_seq_num = rtp_header_.sequence_number - 1; 151 const uint32_t extended_seq_num = rtp_header_.sequence_number - 1;
148 EXPECT_EQ(extended_seq_num, s.extended_high_sequence_number); 152 EXPECT_EQ(extended_seq_num, s.extended_high_sequence_number);
149 EXPECT_EQ(ExpectedJitter(kStdTimeIncrementMs + kAdditionalIncrement, 300), 153 EXPECT_EQ(ExpectedJitter(kStdTimeIncrementMs + kAdditionalIncrement, 300),
150 s.jitter); 154 s.jitter);
151 } 155 }
152 156
153 } // namespace cast 157 } // namespace cast
154 } // namespace media 158 } // namespace media
OLDNEW
« no previous file with comments | « media/cast/net/rtp/receiver_stats.cc ('k') | media/cast/net/rtp/rtp_defines.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698