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

Side by Side Diff: webrtc/modules/rtp_rtcp/source/rtcp_packet/transport_feedback_unittest.cc

Issue 1923133002: Replace the remaining scoped_ptr with unique_ptr in webrtc/modules/ (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Don't remove #include "scoped_ptr.h" from .h files Created 4 years, 8 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 /* 1 /*
2 * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
11 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/transport_feedback.h" 11 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/transport_feedback.h"
12 12
13 #include <limits> 13 #include <limits>
14 #include <memory>
14 15
15 #include "testing/gtest/include/gtest/gtest.h" 16 #include "testing/gtest/include/gtest/gtest.h"
16 17
17 #include "webrtc/modules/rtp_rtcp/source/byte_io.h" 18 #include "webrtc/modules/rtp_rtcp/source/byte_io.h"
18 19
19 using webrtc::rtcp::TransportFeedback; 20 using webrtc::rtcp::TransportFeedback;
20 21
21 namespace webrtc { 22 namespace webrtc {
22 namespace { 23 namespace {
23 24
(...skipping 12 matching lines...) Expand all
36 37
37 void WithExpectedSize(size_t expected_size) { 38 void WithExpectedSize(size_t expected_size) {
38 expected_size_ = expected_size; 39 expected_size_ = expected_size;
39 } 40 }
40 41
41 void WithDefaultDelta(int64_t delta) { default_delta_ = delta; } 42 void WithDefaultDelta(int64_t delta) { default_delta_ = delta; }
42 43
43 void WithInput(const uint16_t received_seq[], 44 void WithInput(const uint16_t received_seq[],
44 const int64_t received_ts[], 45 const int64_t received_ts[],
45 uint16_t length) { 46 uint16_t length) {
46 rtc::scoped_ptr<int64_t[]> temp_deltas; 47 std::unique_ptr<int64_t[]> temp_deltas;
47 if (received_ts == nullptr) { 48 if (received_ts == nullptr) {
48 temp_deltas.reset(new int64_t[length]); 49 temp_deltas.reset(new int64_t[length]);
49 GenerateDeltas(received_seq, length, temp_deltas.get()); 50 GenerateDeltas(received_seq, length, temp_deltas.get());
50 received_ts = temp_deltas.get(); 51 received_ts = temp_deltas.get();
51 } 52 }
52 53
53 expected_seq_.clear(); 54 expected_seq_.clear();
54 expected_deltas_.clear(); 55 expected_deltas_.clear();
55 feedback_.reset(new TransportFeedback()); 56 feedback_.reset(new TransportFeedback());
56 57
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 last_seq = seq[i]; 130 last_seq = seq[i];
130 131
131 deltas[i] = offset + (last_seq * default_delta_); 132 deltas[i] = offset + (last_seq * default_delta_);
132 } 133 }
133 } 134 }
134 135
135 std::vector<uint16_t> expected_seq_; 136 std::vector<uint16_t> expected_seq_;
136 std::vector<int64_t> expected_deltas_; 137 std::vector<int64_t> expected_deltas_;
137 size_t expected_size_; 138 size_t expected_size_;
138 int64_t default_delta_; 139 int64_t default_delta_;
139 rtc::scoped_ptr<TransportFeedback> feedback_; 140 std::unique_ptr<TransportFeedback> feedback_;
140 rtc::Buffer serialized_; 141 rtc::Buffer serialized_;
141 }; 142 };
142 143
143 TEST(RtcpPacketTest, TransportFeedback_OneBitVector) { 144 TEST(RtcpPacketTest, TransportFeedback_OneBitVector) {
144 const uint16_t kReceived[] = {1, 2, 7, 8, 9, 10, 13}; 145 const uint16_t kReceived[] = {1, 2, 7, 8, 9, 10, 13};
145 const size_t kLength = sizeof(kReceived) / sizeof(uint16_t); 146 const size_t kLength = sizeof(kReceived) / sizeof(uint16_t);
146 const size_t kExpectedSizeBytes = 147 const size_t kExpectedSizeBytes =
147 kHeaderSize + kStatusChunkSize + (kLength * kSmallDeltaSize); 148 kHeaderSize + kStatusChunkSize + (kLength * kSmallDeltaSize);
148 149
149 FeedbackTester test; 150 FeedbackTester test;
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
349 int64_t expected_time = num_samples * kTooSmallDelta; 350 int64_t expected_time = num_samples * kTooSmallDelta;
350 ++num_samples; 351 ++num_samples;
351 352
352 EXPECT_NEAR(expected_time, accumulated_delta, 353 EXPECT_NEAR(expected_time, accumulated_delta,
353 TransportFeedback::kDeltaScaleFactor / 2); 354 TransportFeedback::kDeltaScaleFactor / 2);
354 } 355 }
355 } 356 }
356 357
357 TEST(RtcpPacketTest, TransportFeedback_Limits) { 358 TEST(RtcpPacketTest, TransportFeedback_Limits) {
358 // Sequence number wrap above 0x8000. 359 // Sequence number wrap above 0x8000.
359 rtc::scoped_ptr<TransportFeedback> packet(new TransportFeedback()); 360 std::unique_ptr<TransportFeedback> packet(new TransportFeedback());
360 packet->WithBase(0, 0); 361 packet->WithBase(0, 0);
361 EXPECT_TRUE(packet->WithReceivedPacket(0x8000, 1000)); 362 EXPECT_TRUE(packet->WithReceivedPacket(0x8000, 1000));
362 363
363 packet.reset(new TransportFeedback()); 364 packet.reset(new TransportFeedback());
364 packet->WithBase(0, 0); 365 packet->WithBase(0, 0);
365 EXPECT_FALSE(packet->WithReceivedPacket(0x8000 + 1, 1000)); 366 EXPECT_FALSE(packet->WithReceivedPacket(0x8000 + 1, 1000));
366 367
367 // Packet status count max 0xFFFF. 368 // Packet status count max 0xFFFF.
368 packet.reset(new TransportFeedback()); 369 packet.reset(new TransportFeedback());
369 packet->WithBase(0, 0); 370 packet->WithBase(0, 0);
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
439 uint8_t mod_buffer[kExpectedSizeWithPadding]; 440 uint8_t mod_buffer[kExpectedSizeWithPadding];
440 memcpy(mod_buffer, packet.data(), kExpectedSizeWords * 4); 441 memcpy(mod_buffer, packet.data(), kExpectedSizeWords * 4);
441 memset(&mod_buffer[kExpectedSizeWords * 4], 0, kPaddingBytes - 1); 442 memset(&mod_buffer[kExpectedSizeWords * 4], 0, kPaddingBytes - 1);
442 mod_buffer[kExpectedSizeWithPadding - 1] = kPaddingBytes; 443 mod_buffer[kExpectedSizeWithPadding - 1] = kPaddingBytes;
443 const uint8_t padding_flag = 1 << 5; 444 const uint8_t padding_flag = 1 << 5;
444 mod_buffer[0] |= padding_flag; 445 mod_buffer[0] |= padding_flag;
445 ByteWriter<uint16_t>::WriteBigEndian( 446 ByteWriter<uint16_t>::WriteBigEndian(
446 &mod_buffer[2], ByteReader<uint16_t>::ReadBigEndian(&mod_buffer[2]) + 447 &mod_buffer[2], ByteReader<uint16_t>::ReadBigEndian(&mod_buffer[2]) +
447 ((kPaddingBytes + 3) / 4)); 448 ((kPaddingBytes + 3) / 4));
448 449
449 rtc::scoped_ptr<TransportFeedback> parsed_packet( 450 std::unique_ptr<TransportFeedback> parsed_packet(
450 TransportFeedback::ParseFrom(mod_buffer, kExpectedSizeWithPadding)); 451 TransportFeedback::ParseFrom(mod_buffer, kExpectedSizeWithPadding));
451 ASSERT_TRUE(parsed_packet.get() != nullptr); 452 ASSERT_TRUE(parsed_packet.get() != nullptr);
452 EXPECT_EQ(kExpectedSizeWords * 4, packet.size()); // Padding not included. 453 EXPECT_EQ(kExpectedSizeWords * 4, packet.size()); // Padding not included.
453 } 454 }
454 455
455 TEST(RtcpPacketTest, TransportFeedback_CorrectlySplitsVectorChunks) { 456 TEST(RtcpPacketTest, TransportFeedback_CorrectlySplitsVectorChunks) {
456 const int kOneBitVectorCapacity = 14; 457 const int kOneBitVectorCapacity = 14;
457 const int64_t kLargeTimeDelta = 458 const int64_t kLargeTimeDelta =
458 TransportFeedback::kDeltaScaleFactor * (1 << 8); 459 TransportFeedback::kDeltaScaleFactor * (1 << 8);
459 460
460 // Test that a number of small deltas followed by a large delta results in a 461 // Test that a number of small deltas followed by a large delta results in a
461 // correct split into multiple chunks, as needed. 462 // correct split into multiple chunks, as needed.
462 463
463 for (int deltas = 0; deltas <= kOneBitVectorCapacity + 1; ++deltas) { 464 for (int deltas = 0; deltas <= kOneBitVectorCapacity + 1; ++deltas) {
464 TransportFeedback feedback; 465 TransportFeedback feedback;
465 feedback.WithBase(0, 0); 466 feedback.WithBase(0, 0);
466 for (int i = 0; i < deltas; ++i) 467 for (int i = 0; i < deltas; ++i)
467 feedback.WithReceivedPacket(i, i * 1000); 468 feedback.WithReceivedPacket(i, i * 1000);
468 feedback.WithReceivedPacket(deltas, deltas * 1000 + kLargeTimeDelta); 469 feedback.WithReceivedPacket(deltas, deltas * 1000 + kLargeTimeDelta);
469 470
470 rtc::Buffer serialized_packet = feedback.Build(); 471 rtc::Buffer serialized_packet = feedback.Build();
471 rtc::scoped_ptr<TransportFeedback> deserialized_packet = 472 std::unique_ptr<TransportFeedback> deserialized_packet =
472 TransportFeedback::ParseFrom(serialized_packet.data(), 473 TransportFeedback::ParseFrom(serialized_packet.data(),
473 serialized_packet.size()); 474 serialized_packet.size());
474 EXPECT_TRUE(deserialized_packet.get() != nullptr); 475 EXPECT_TRUE(deserialized_packet.get() != nullptr);
475 } 476 }
476 } 477 }
477 478
478 } // namespace 479 } // namespace
479 } // namespace webrtc 480 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/modules/rtp_rtcp/source/rtcp_packet/transport_feedback.cc ('k') | webrtc/modules/rtp_rtcp/source/rtcp_receiver_help.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698