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

Side by Side Diff: media/cast/rtcp/rtcp_unittest.cc

Issue 145443005: Fixes for memory and threading issues in cast (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix compile Created 6 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 | Annotate | Revision Log
« no previous file with comments | « media/cast/rtcp/rtcp_sender_unittest.cc ('k') | media/cast/test/encode_decode_test.cc » ('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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "base/test/simple_test_tick_clock.h" 5 #include "base/test/simple_test_tick_clock.h"
6 #include "media/cast/cast_defines.h" 6 #include "media/cast/cast_defines.h"
7 #include "media/cast/cast_environment.h" 7 #include "media/cast/cast_environment.h"
8 #include "media/cast/rtcp/mock_rtcp_receiver_feedback.h" 8 #include "media/cast/rtcp/mock_rtcp_receiver_feedback.h"
9 #include "media/cast/rtcp/mock_rtcp_sender_feedback.h" 9 #include "media/cast/rtcp/mock_rtcp_sender_feedback.h"
10 #include "media/cast/rtcp/rtcp.h" 10 #include "media/cast/rtcp/rtcp.h"
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 c_name) { 140 c_name) {
141 } 141 }
142 142
143 using Rtcp::CheckForWrapAround; 143 using Rtcp::CheckForWrapAround;
144 using Rtcp::OnReceivedLipSyncInfo; 144 using Rtcp::OnReceivedLipSyncInfo;
145 }; 145 };
146 146
147 class RtcpTest : public ::testing::Test { 147 class RtcpTest : public ::testing::Test {
148 protected: 148 protected:
149 RtcpTest() 149 RtcpTest()
150 : task_runner_(new test::FakeTaskRunner(&testing_clock_)), 150 : testing_clock_(new base::SimpleTestTickClock()),
151 cast_environment_(new CastEnvironment(&testing_clock_, task_runner_, 151 task_runner_(new test::FakeTaskRunner(testing_clock_)),
152 cast_environment_(new CastEnvironment(
153 scoped_ptr<base::TickClock>(testing_clock_).Pass(),
152 task_runner_, task_runner_, task_runner_, task_runner_, 154 task_runner_, task_runner_, task_runner_, task_runner_,
153 task_runner_, GetDefaultCastSenderLoggingConfig())), 155 task_runner_, task_runner_, GetDefaultCastSenderLoggingConfig())),
154 sender_to_receiver_(&testing_clock_), 156 sender_to_receiver_(testing_clock_),
155 receiver_to_sender_(cast_environment_, &testing_clock_) { 157 receiver_to_sender_(cast_environment_, testing_clock_) {
156 testing_clock_.Advance( 158 testing_clock_->Advance(
157 base::TimeDelta::FromMilliseconds(kStartMillisecond)); 159 base::TimeDelta::FromMilliseconds(kStartMillisecond));
158 transport::CastTransportConfig transport_config; 160 transport::CastTransportConfig transport_config;
159 transport_sender_.reset(new transport::CastTransportSenderImpl( 161 transport_sender_.reset(new transport::CastTransportSenderImpl(
160 &testing_clock_, 162 testing_clock_,
161 transport_config, 163 transport_config,
162 base::Bind(&UpdateCastTransportStatus), task_runner_)); 164 base::Bind(&UpdateCastTransportStatus), task_runner_));
163 transport_sender_->InsertFakeTransportForTesting(&sender_to_receiver_); 165 transport_sender_->InsertFakeTransportForTesting(&sender_to_receiver_);
164 EXPECT_CALL(mock_sender_feedback_, OnReceivedCastFeedback(_)).Times(0); 166 EXPECT_CALL(mock_sender_feedback_, OnReceivedCastFeedback(_)).Times(0);
165 } 167 }
166 168
167 virtual ~RtcpTest() {} 169 virtual ~RtcpTest() {}
168 static void UpdateCastTransportStatus(transport::CastTransportStatus status) { 170 static void UpdateCastTransportStatus(transport::CastTransportStatus status) {
169 } 171 }
170 172
171 void RunTasks(int during_ms) { 173 void RunTasks(int during_ms) {
172 for (int i = 0; i < during_ms; ++i) { 174 for (int i = 0; i < during_ms; ++i) {
173 // Call process the timers every 1 ms. 175 // Call process the timers every 1 ms.
174 testing_clock_.Advance(base::TimeDelta::FromMilliseconds(1)); 176 testing_clock_->Advance(base::TimeDelta::FromMilliseconds(1));
175 task_runner_->RunTasks(); 177 task_runner_->RunTasks();
176 } 178 }
177 } 179 }
178 180
179 base::SimpleTestTickClock testing_clock_; 181 base::SimpleTestTickClock* testing_clock_; // Owned by CastEnvironment.
180 scoped_refptr<test::FakeTaskRunner> task_runner_; 182 scoped_refptr<test::FakeTaskRunner> task_runner_;
181 scoped_refptr<CastEnvironment> cast_environment_; 183 scoped_refptr<CastEnvironment> cast_environment_;
182 RtcpTestPacketSender sender_to_receiver_; 184 RtcpTestPacketSender sender_to_receiver_;
183 scoped_ptr<transport::CastTransportSenderImpl> transport_sender_; 185 scoped_ptr<transport::CastTransportSenderImpl> transport_sender_;
184 LocalRtcpTransport receiver_to_sender_; 186 LocalRtcpTransport receiver_to_sender_;
185 MockRtcpSenderFeedback mock_sender_feedback_; 187 MockRtcpSenderFeedback mock_sender_feedback_;
186 }; 188 };
187 189
188 TEST_F(RtcpTest, TimeToSend) { 190 TEST_F(RtcpTest, TimeToSend) {
189 base::TimeTicks start_time; 191 base::TimeTicks start_time;
190 start_time += base::TimeDelta::FromMilliseconds(kStartMillisecond); 192 start_time += base::TimeDelta::FromMilliseconds(kStartMillisecond);
191 Rtcp rtcp(cast_environment_, 193 Rtcp rtcp(cast_environment_,
192 &mock_sender_feedback_, 194 &mock_sender_feedback_,
193 transport_sender_.get(), 195 transport_sender_.get(),
194 &receiver_to_sender_, 196 &receiver_to_sender_,
195 NULL, 197 NULL,
196 NULL, 198 NULL,
197 kRtcpCompound, 199 kRtcpCompound,
198 base::TimeDelta::FromMilliseconds(kRtcpIntervalMs), 200 base::TimeDelta::FromMilliseconds(kRtcpIntervalMs),
199 kSenderSsrc, 201 kSenderSsrc,
200 kReceiverSsrc, 202 kReceiverSsrc,
201 kCName); 203 kCName);
202 receiver_to_sender_.set_rtcp_receiver(&rtcp); 204 receiver_to_sender_.set_rtcp_receiver(&rtcp);
203 EXPECT_LE(start_time, rtcp.TimeToSendNextRtcpReport()); 205 EXPECT_LE(start_time, rtcp.TimeToSendNextRtcpReport());
204 EXPECT_GE(start_time + base::TimeDelta::FromMilliseconds( 206 EXPECT_GE(start_time + base::TimeDelta::FromMilliseconds(
205 kRtcpIntervalMs * 3 / 2), 207 kRtcpIntervalMs * 3 / 2),
206 rtcp.TimeToSendNextRtcpReport()); 208 rtcp.TimeToSendNextRtcpReport());
207 base::TimeDelta delta = rtcp.TimeToSendNextRtcpReport() - start_time; 209 base::TimeDelta delta = rtcp.TimeToSendNextRtcpReport() - start_time;
208 testing_clock_.Advance(delta); 210 testing_clock_->Advance(delta);
209 EXPECT_EQ(testing_clock_.NowTicks(), rtcp.TimeToSendNextRtcpReport()); 211 EXPECT_EQ(testing_clock_->NowTicks(), rtcp.TimeToSendNextRtcpReport());
210 } 212 }
211 213
212 TEST_F(RtcpTest, BasicSenderReport) { 214 TEST_F(RtcpTest, BasicSenderReport) {
213 Rtcp rtcp(cast_environment_, 215 Rtcp rtcp(cast_environment_,
214 &mock_sender_feedback_, 216 &mock_sender_feedback_,
215 transport_sender_.get(), 217 transport_sender_.get(),
216 NULL, 218 NULL,
217 NULL, 219 NULL,
218 NULL, 220 NULL,
219 kRtcpCompound, 221 kRtcpCompound,
(...skipping 396 matching lines...) Expand 10 before | Expand all | Expand 10 after
616 rtcp_peer.OnReceivedLipSyncInfo(rtp_timestamp, ntp_seconds, ntp_fractions); 618 rtcp_peer.OnReceivedLipSyncInfo(rtp_timestamp, ntp_seconds, ntp_fractions);
617 rtp_timestamp = 64000; 619 rtp_timestamp = 64000;
618 EXPECT_TRUE(rtcp_peer.RtpTimestampInSenderTime(frequency, rtp_timestamp, 620 EXPECT_TRUE(rtcp_peer.RtpTimestampInSenderTime(frequency, rtp_timestamp,
619 &rtp_timestamp_in_ticks)); 621 &rtp_timestamp_in_ticks));
620 EXPECT_EQ(input_time + base::TimeDelta::FromMilliseconds(4000), 622 EXPECT_EQ(input_time + base::TimeDelta::FromMilliseconds(4000),
621 rtp_timestamp_in_ticks); 623 rtp_timestamp_in_ticks);
622 } 624 }
623 625
624 } // namespace cast 626 } // namespace cast
625 } // namespace media 627 } // namespace media
OLDNEW
« no previous file with comments | « media/cast/rtcp/rtcp_sender_unittest.cc ('k') | media/cast/test/encode_decode_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698