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

Side by Side Diff: media/cast/transport/pacing/paced_sender_unittest.cc

Issue 343523005: Cast: Avoid retransmit if we sent the same packet recently (less than RTT) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: bugfix Created 6 years, 6 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
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 <stdint.h> 5 #include <stdint.h>
6 6
7 #include "base/big_endian.h" 7 #include "base/big_endian.h"
8 #include "base/test/simple_test_tick_clock.h" 8 #include "base/test/simple_test_tick_clock.h"
9 #include "media/cast/logging/simple_event_subscriber.h" 9 #include "media/cast/logging/simple_event_subscriber.h"
10 #include "media/cast/test/fake_single_thread_task_runner.h" 10 #include "media/cast/test/fake_single_thread_task_runner.h"
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
122 scoped_ptr<PacedSender> paced_sender_; 122 scoped_ptr<PacedSender> paced_sender_;
123 123
124 DISALLOW_COPY_AND_ASSIGN(PacedSenderTest); 124 DISALLOW_COPY_AND_ASSIGN(PacedSenderTest);
125 }; 125 };
126 126
127 TEST_F(PacedSenderTest, PassThroughRtcp) { 127 TEST_F(PacedSenderTest, PassThroughRtcp) {
128 mock_transport_.AddExpectedSize(kSize1, 2); 128 mock_transport_.AddExpectedSize(kSize1, 2);
129 SendPacketVector packets = CreateSendPacketVector(kSize1, 1, true); 129 SendPacketVector packets = CreateSendPacketVector(kSize1, 1, true);
130 130
131 EXPECT_TRUE(paced_sender_->SendPackets(packets)); 131 EXPECT_TRUE(paced_sender_->SendPackets(packets));
132 EXPECT_TRUE(paced_sender_->ResendPackets(packets)); 132 EXPECT_TRUE(paced_sender_->ResendPackets(packets, base::TimeDelta()));
133 133
134 mock_transport_.AddExpectedSize(kSize2, 1); 134 mock_transport_.AddExpectedSize(kSize2, 1);
135 Packet tmp(kSize2, kValue); 135 Packet tmp(kSize2, kValue);
136 EXPECT_TRUE(paced_sender_->SendRtcpPacket( 136 EXPECT_TRUE(paced_sender_->SendRtcpPacket(
137 1, 137 1,
138 new base::RefCountedData<Packet>(tmp))); 138 new base::RefCountedData<Packet>(tmp)));
139 } 139 }
140 140
141 TEST_F(PacedSenderTest, BasicPace) { 141 TEST_F(PacedSenderTest, BasicPace) {
142 int num_of_packets = 27; 142 int num_of_packets = 27;
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
195 CreateSendPacketVector(kSize1, num_of_packets_in_frame, false); 195 CreateSendPacketVector(kSize1, num_of_packets_in_frame, false);
196 196
197 SendPacketVector second_frame_packets = 197 SendPacketVector second_frame_packets =
198 CreateSendPacketVector(kSize2, num_of_packets_in_frame, true); 198 CreateSendPacketVector(kSize2, num_of_packets_in_frame, true);
199 199
200 // Check that the first burst of the frame go out on the wire. 200 // Check that the first burst of the frame go out on the wire.
201 mock_transport_.AddExpectedSize(kSize1, 10); 201 mock_transport_.AddExpectedSize(kSize1, 10);
202 EXPECT_TRUE(paced_sender_->SendPackets(first_frame_packets)); 202 EXPECT_TRUE(paced_sender_->SendPackets(first_frame_packets));
203 203
204 // Add first NACK request. 204 // Add first NACK request.
205 EXPECT_TRUE(paced_sender_->ResendPackets(nack_packets)); 205 EXPECT_TRUE(paced_sender_->ResendPackets(nack_packets, base::TimeDelta()));
206 206
207 // Check that we get the first NACK burst. 207 // Check that we get the first NACK burst.
208 mock_transport_.AddExpectedSize(kNackSize, 10); 208 mock_transport_.AddExpectedSize(kNackSize, 10);
209 base::TimeDelta timeout = base::TimeDelta::FromMilliseconds(10); 209 base::TimeDelta timeout = base::TimeDelta::FromMilliseconds(10);
210 testing_clock_.Advance(timeout); 210 testing_clock_.Advance(timeout);
211 task_runner_->RunTasks(); 211 task_runner_->RunTasks();
212 212
213 // Add second NACK request. 213 // Add second NACK request.
214 EXPECT_TRUE(paced_sender_->ResendPackets(nack_packets)); 214 EXPECT_TRUE(paced_sender_->ResendPackets(nack_packets, base::TimeDelta()));
215 215
216 // Check that we get the next NACK burst. 216 // Check that we get the next NACK burst.
217 mock_transport_.AddExpectedSize(kNackSize, 10); 217 mock_transport_.AddExpectedSize(kNackSize, 10);
218 testing_clock_.Advance(timeout); 218 testing_clock_.Advance(timeout);
219 task_runner_->RunTasks(); 219 task_runner_->RunTasks();
220 220
221 // End of NACK plus two packets from the oldest frame. 221 // End of NACK plus two packets from the oldest frame.
222 // Note that two of the NACKs have been de-duped. 222 // Note that two of the NACKs have been de-duped.
223 mock_transport_.AddExpectedSize(kNackSize, 2); 223 mock_transport_.AddExpectedSize(kNackSize, 2);
224 mock_transport_.AddExpectedSize(kSize1, 2); 224 mock_transport_.AddExpectedSize(kSize1, 2);
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
342 testing_clock_.Advance(timeout_10ms); 342 testing_clock_.Advance(timeout_10ms);
343 task_runner_->RunTasks(); 343 task_runner_->RunTasks();
344 344
345 // No more packets. 345 // No more packets.
346 EXPECT_TRUE(RunUntilEmpty(5)); 346 EXPECT_TRUE(RunUntilEmpty(5));
347 } 347 }
348 348
349 } // namespace transport 349 } // namespace transport
350 } // namespace cast 350 } // namespace cast
351 } // namespace media 351 } // namespace media
OLDNEW
« no previous file with comments | « media/cast/transport/pacing/paced_sender.cc ('k') | media/cast/transport/rtp_sender/rtp_sender.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698