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

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

Issue 1534273002: Switch to standard integer types in media/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: more 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 <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/net/pacing/paced_sender.h" 9 #include "media/cast/net/pacing/paced_sender.h"
10 #include "media/cast/test/fake_single_thread_task_runner.h" 10 #include "media/cast/test/fake_single_thread_task_runner.h"
11 #include "testing/gmock/include/gmock/gmock.h" 11 #include "testing/gmock/include/gmock/gmock.h"
12 12
13 using testing::_; 13 using testing::_;
14 14
15 namespace media { 15 namespace media {
16 namespace cast { 16 namespace cast {
17 namespace { 17 namespace {
18 18
19 static const uint8 kValue = 123; 19 static const uint8_t kValue = 123;
20 static const size_t kSize1 = 101; 20 static const size_t kSize1 = 101;
21 static const size_t kSize2 = 102; 21 static const size_t kSize2 = 102;
22 static const size_t kSize3 = 103; 22 static const size_t kSize3 = 103;
23 static const size_t kSize4 = 104; 23 static const size_t kSize4 = 104;
24 static const size_t kNackSize = 105; 24 static const size_t kNackSize = 105;
25 static const int64 kStartMillisecond = INT64_C(12345678900000); 25 static const int64_t kStartMillisecond = INT64_C(12345678900000);
26 static const uint32 kVideoSsrc = 0x1234; 26 static const uint32_t kVideoSsrc = 0x1234;
27 static const uint32 kAudioSsrc = 0x5678; 27 static const uint32_t kAudioSsrc = 0x5678;
28 static const uint32 kFrameRtpTimestamp = 12345; 28 static const uint32_t kFrameRtpTimestamp = 12345;
29 29
30 class TestPacketSender : public PacketSender { 30 class TestPacketSender : public PacketSender {
31 public: 31 public:
32 TestPacketSender() : bytes_sent_(0) {} 32 TestPacketSender() : bytes_sent_(0) {}
33 33
34 bool SendPacket(PacketRef packet, const base::Closure& cb) final { 34 bool SendPacket(PacketRef packet, const base::Closure& cb) final {
35 EXPECT_FALSE(expected_packet_size_.empty()); 35 EXPECT_FALSE(expected_packet_size_.empty());
36 size_t expected_packet_size = expected_packet_size_.front(); 36 size_t expected_packet_size = expected_packet_size_.front();
37 expected_packet_size_.pop_front(); 37 expected_packet_size_.pop_front();
38 EXPECT_EQ(expected_packet_size, packet->data.size()); 38 EXPECT_EQ(expected_packet_size, packet->data.size());
39 bytes_sent_ += packet->data.size(); 39 bytes_sent_ += packet->data.size();
40 return true; 40 return true;
41 } 41 }
42 42
43 int64 GetBytesSent() final { return bytes_sent_; } 43 int64_t GetBytesSent() final { return bytes_sent_; }
44 44
45 void AddExpectedSize(int expected_packet_size, int repeat_count) { 45 void AddExpectedSize(int expected_packet_size, int repeat_count) {
46 for (int i = 0; i < repeat_count; ++i) { 46 for (int i = 0; i < repeat_count; ++i) {
47 expected_packet_size_.push_back(expected_packet_size); 47 expected_packet_size_.push_back(expected_packet_size);
48 } 48 }
49 } 49 }
50 50
51 public: 51 public:
52 std::list<int> expected_packet_size_; 52 std::list<int> expected_packet_size_;
53 int64 bytes_sent_; 53 int64_t bytes_sent_;
54 54
55 DISALLOW_COPY_AND_ASSIGN(TestPacketSender); 55 DISALLOW_COPY_AND_ASSIGN(TestPacketSender);
56 }; 56 };
57 57
58 class PacedSenderTest : public ::testing::Test { 58 class PacedSenderTest : public ::testing::Test {
59 protected: 59 protected:
60 PacedSenderTest() : frame_id_(0) { 60 PacedSenderTest() : frame_id_(0) {
61 testing_clock_.Advance( 61 testing_clock_.Advance(
62 base::TimeDelta::FromMilliseconds(kStartMillisecond)); 62 base::TimeDelta::FromMilliseconds(kStartMillisecond));
63 task_runner_ = new test::FakeSingleThreadTaskRunner(&testing_clock_); 63 task_runner_ = new test::FakeSingleThreadTaskRunner(&testing_clock_);
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 } 116 }
117 117
118 return mock_transport_.expected_packet_size_.empty(); 118 return mock_transport_.expected_packet_size_.empty();
119 } 119 }
120 120
121 std::vector<PacketEvent> packet_events_; 121 std::vector<PacketEvent> packet_events_;
122 base::SimpleTestTickClock testing_clock_; 122 base::SimpleTestTickClock testing_clock_;
123 TestPacketSender mock_transport_; 123 TestPacketSender mock_transport_;
124 scoped_refptr<test::FakeSingleThreadTaskRunner> task_runner_; 124 scoped_refptr<test::FakeSingleThreadTaskRunner> task_runner_;
125 scoped_ptr<PacedSender> paced_sender_; 125 scoped_ptr<PacedSender> paced_sender_;
126 uint32 frame_id_; 126 uint32_t frame_id_;
127 127
128 DISALLOW_COPY_AND_ASSIGN(PacedSenderTest); 128 DISALLOW_COPY_AND_ASSIGN(PacedSenderTest);
129 }; 129 };
130 130
131 } // namespace 131 } // namespace
132 132
133 TEST_F(PacedSenderTest, PassThroughRtcp) { 133 TEST_F(PacedSenderTest, PassThroughRtcp) {
134 mock_transport_.AddExpectedSize(kSize1, 2); 134 mock_transport_.AddExpectedSize(kSize1, 2);
135 SendPacketVector packets = CreateSendPacketVector(kSize1, 1, true); 135 SendPacketVector packets = CreateSendPacketVector(kSize1, 1, true);
136 136
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
170 mock_transport_.AddExpectedSize(kSize1, 7); 170 mock_transport_.AddExpectedSize(kSize1, 7);
171 testing_clock_.Advance(timeout); 171 testing_clock_.Advance(timeout);
172 task_runner_->RunTasks(); 172 task_runner_->RunTasks();
173 173
174 // Check that we don't get any more packets. 174 // Check that we don't get any more packets.
175 EXPECT_TRUE(RunUntilEmpty(3)); 175 EXPECT_TRUE(RunUntilEmpty(3));
176 const base::TimeTicks latest_event_timestamp = testing_clock_.NowTicks(); 176 const base::TimeTicks latest_event_timestamp = testing_clock_.NowTicks();
177 177
178 // Check that packet logging events match expected values. 178 // Check that packet logging events match expected values.
179 EXPECT_EQ(num_of_packets, static_cast<int>(packet_events_.size())); 179 EXPECT_EQ(num_of_packets, static_cast<int>(packet_events_.size()));
180 uint16 expected_packet_id = 0; 180 uint16_t expected_packet_id = 0;
181 for (const PacketEvent& e : packet_events_) { 181 for (const PacketEvent& e : packet_events_) {
182 ASSERT_LE(earliest_event_timestamp, e.timestamp); 182 ASSERT_LE(earliest_event_timestamp, e.timestamp);
183 ASSERT_GE(latest_event_timestamp, e.timestamp); 183 ASSERT_GE(latest_event_timestamp, e.timestamp);
184 ASSERT_EQ(PACKET_SENT_TO_NETWORK, e.type); 184 ASSERT_EQ(PACKET_SENT_TO_NETWORK, e.type);
185 ASSERT_EQ(VIDEO_EVENT, e.media_type); 185 ASSERT_EQ(VIDEO_EVENT, e.media_type);
186 ASSERT_EQ(kFrameRtpTimestamp, e.rtp_timestamp); 186 ASSERT_EQ(kFrameRtpTimestamp, e.rtp_timestamp);
187 ASSERT_EQ(num_of_packets - 1, e.max_packet_id); 187 ASSERT_EQ(num_of_packets - 1, e.max_packet_id);
188 ASSERT_EQ(expected_packet_id++, e.packet_id); 188 ASSERT_EQ(expected_packet_id++, e.packet_id);
189 ASSERT_EQ(kSize1, e.size); 189 ASSERT_EQ(kSize1, e.size);
190 } 190 }
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
400 EXPECT_TRUE(RunUntilEmpty(4)); 400 EXPECT_TRUE(RunUntilEmpty(4));
401 } 401 }
402 402
403 TEST_F(PacedSenderTest, GetLastByteSent) { 403 TEST_F(PacedSenderTest, GetLastByteSent) {
404 mock_transport_.AddExpectedSize(kSize1, 4); 404 mock_transport_.AddExpectedSize(kSize1, 4);
405 405
406 SendPacketVector packets1 = CreateSendPacketVector(kSize1, 1, true); 406 SendPacketVector packets1 = CreateSendPacketVector(kSize1, 1, true);
407 SendPacketVector packets2 = CreateSendPacketVector(kSize1, 1, false); 407 SendPacketVector packets2 = CreateSendPacketVector(kSize1, 1, false);
408 408
409 EXPECT_TRUE(paced_sender_->SendPackets(packets1)); 409 EXPECT_TRUE(paced_sender_->SendPackets(packets1));
410 EXPECT_EQ(static_cast<int64>(kSize1), 410 EXPECT_EQ(static_cast<int64_t>(kSize1),
411 paced_sender_->GetLastByteSentForPacket(packets1[0].first)); 411 paced_sender_->GetLastByteSentForPacket(packets1[0].first));
412 EXPECT_EQ(static_cast<int64>(kSize1), 412 EXPECT_EQ(static_cast<int64_t>(kSize1),
413 paced_sender_->GetLastByteSentForSsrc(kAudioSsrc)); 413 paced_sender_->GetLastByteSentForSsrc(kAudioSsrc));
414 EXPECT_EQ(0, paced_sender_->GetLastByteSentForSsrc(kVideoSsrc)); 414 EXPECT_EQ(0, paced_sender_->GetLastByteSentForSsrc(kVideoSsrc));
415 415
416 EXPECT_TRUE(paced_sender_->SendPackets(packets2)); 416 EXPECT_TRUE(paced_sender_->SendPackets(packets2));
417 EXPECT_EQ(static_cast<int64>(2 * kSize1), 417 EXPECT_EQ(static_cast<int64_t>(2 * kSize1),
418 paced_sender_->GetLastByteSentForPacket(packets2[0].first)); 418 paced_sender_->GetLastByteSentForPacket(packets2[0].first));
419 EXPECT_EQ(static_cast<int64>(kSize1), 419 EXPECT_EQ(static_cast<int64_t>(kSize1),
420 paced_sender_->GetLastByteSentForSsrc(kAudioSsrc)); 420 paced_sender_->GetLastByteSentForSsrc(kAudioSsrc));
421 EXPECT_EQ(static_cast<int64>(2 * kSize1), 421 EXPECT_EQ(static_cast<int64_t>(2 * kSize1),
422 paced_sender_->GetLastByteSentForSsrc(kVideoSsrc)); 422 paced_sender_->GetLastByteSentForSsrc(kVideoSsrc));
423 423
424 EXPECT_TRUE(paced_sender_->ResendPackets(packets1, DedupInfo())); 424 EXPECT_TRUE(paced_sender_->ResendPackets(packets1, DedupInfo()));
425 EXPECT_EQ(static_cast<int64>(3 * kSize1), 425 EXPECT_EQ(static_cast<int64_t>(3 * kSize1),
426 paced_sender_->GetLastByteSentForPacket(packets1[0].first)); 426 paced_sender_->GetLastByteSentForPacket(packets1[0].first));
427 EXPECT_EQ(static_cast<int64>(3 * kSize1), 427 EXPECT_EQ(static_cast<int64_t>(3 * kSize1),
428 paced_sender_->GetLastByteSentForSsrc(kAudioSsrc)); 428 paced_sender_->GetLastByteSentForSsrc(kAudioSsrc));
429 EXPECT_EQ(static_cast<int64>(2 * kSize1), 429 EXPECT_EQ(static_cast<int64_t>(2 * kSize1),
430 paced_sender_->GetLastByteSentForSsrc(kVideoSsrc)); 430 paced_sender_->GetLastByteSentForSsrc(kVideoSsrc));
431 431
432 EXPECT_TRUE(paced_sender_->ResendPackets(packets2, DedupInfo())); 432 EXPECT_TRUE(paced_sender_->ResendPackets(packets2, DedupInfo()));
433 EXPECT_EQ(static_cast<int64>(4 * kSize1), 433 EXPECT_EQ(static_cast<int64_t>(4 * kSize1),
434 paced_sender_->GetLastByteSentForPacket(packets2[0].first)); 434 paced_sender_->GetLastByteSentForPacket(packets2[0].first));
435 EXPECT_EQ(static_cast<int64>(3 * kSize1), 435 EXPECT_EQ(static_cast<int64_t>(3 * kSize1),
436 paced_sender_->GetLastByteSentForSsrc(kAudioSsrc)); 436 paced_sender_->GetLastByteSentForSsrc(kAudioSsrc));
437 EXPECT_EQ(static_cast<int64>(4 * kSize1), 437 EXPECT_EQ(static_cast<int64_t>(4 * kSize1),
438 paced_sender_->GetLastByteSentForSsrc(kVideoSsrc)); 438 paced_sender_->GetLastByteSentForSsrc(kVideoSsrc));
439 } 439 }
440 440
441 TEST_F(PacedSenderTest, DedupWithResendInterval) { 441 TEST_F(PacedSenderTest, DedupWithResendInterval) {
442 mock_transport_.AddExpectedSize(kSize1, 2); 442 mock_transport_.AddExpectedSize(kSize1, 2);
443 443
444 SendPacketVector packets = CreateSendPacketVector(kSize1, 1, true); 444 SendPacketVector packets = CreateSendPacketVector(kSize1, 1, true);
445 EXPECT_TRUE(paced_sender_->SendPackets(packets)); 445 EXPECT_TRUE(paced_sender_->SendPackets(packets));
446 testing_clock_.Advance(base::TimeDelta::FromMilliseconds(10)); 446 testing_clock_.Advance(base::TimeDelta::FromMilliseconds(10));
447 447
448 DedupInfo dedup_info; 448 DedupInfo dedup_info;
449 dedup_info.resend_interval = base::TimeDelta::FromMilliseconds(20); 449 dedup_info.resend_interval = base::TimeDelta::FromMilliseconds(20);
450 450
451 // This packet will not be sent. 451 // This packet will not be sent.
452 EXPECT_TRUE(paced_sender_->ResendPackets(packets, dedup_info)); 452 EXPECT_TRUE(paced_sender_->ResendPackets(packets, dedup_info));
453 EXPECT_EQ(static_cast<int64>(kSize1), mock_transport_.GetBytesSent()); 453 EXPECT_EQ(static_cast<int64_t>(kSize1), mock_transport_.GetBytesSent());
454 454
455 dedup_info.resend_interval = base::TimeDelta::FromMilliseconds(5); 455 dedup_info.resend_interval = base::TimeDelta::FromMilliseconds(5);
456 EXPECT_TRUE(paced_sender_->ResendPackets(packets, dedup_info)); 456 EXPECT_TRUE(paced_sender_->ResendPackets(packets, dedup_info));
457 EXPECT_EQ(static_cast<int64>(2 * kSize1), mock_transport_.GetBytesSent()); 457 EXPECT_EQ(static_cast<int64_t>(2 * kSize1), mock_transport_.GetBytesSent());
458 } 458 }
459 459
460 } // namespace cast 460 } // namespace cast
461 } // namespace media 461 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698