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

Side by Side Diff: chromecast/media/cma/ipc/media_message_unittest.cc

Issue 1875623002: Convert //chromecast from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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 // 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 "chromecast/media/cma/ipc/media_message.h"
6
5 #include <stddef.h> 7 #include <stddef.h>
6 #include <stdint.h> 8 #include <stdint.h>
7 9
10 #include <memory>
11
8 #include "base/bind.h" 12 #include "base/bind.h"
9 #include "base/memory/scoped_ptr.h"
10 #include "chromecast/media/cma/ipc/media_memory_chunk.h" 13 #include "chromecast/media/cma/ipc/media_memory_chunk.h"
11 #include "chromecast/media/cma/ipc/media_message.h"
12 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
13 15
14 namespace chromecast { 16 namespace chromecast {
15 namespace media { 17 namespace media {
16 18
17 namespace { 19 namespace {
18 20
19 class ExternalMemoryBlock 21 class ExternalMemoryBlock
20 : public MediaMemoryChunk { 22 : public MediaMemoryChunk {
21 public: 23 public:
22 ExternalMemoryBlock(void* data, size_t size) 24 ExternalMemoryBlock(void* data, size_t size)
23 : data_(data), size_(size) {} 25 : data_(data), size_(size) {}
24 ~ExternalMemoryBlock() override {} 26 ~ExternalMemoryBlock() override {}
25 27
26 // MediaMemoryChunk implementation. 28 // MediaMemoryChunk implementation.
27 void* data() const override { return data_; } 29 void* data() const override { return data_; }
28 size_t size() const override { return size_; } 30 size_t size() const override { return size_; }
29 bool valid() const override { return true; } 31 bool valid() const override { return true; }
30 32
31 private: 33 private:
32 void* const data_; 34 void* const data_;
33 const size_t size_; 35 const size_t size_;
34 }; 36 };
35 37
36 scoped_ptr<MediaMemoryChunk> DummyAllocator( 38 std::unique_ptr<MediaMemoryChunk> DummyAllocator(void* data,
37 void* data, size_t size, size_t alloc_size) { 39 size_t size,
40 size_t alloc_size) {
38 CHECK_LE(alloc_size, size); 41 CHECK_LE(alloc_size, size);
39 return scoped_ptr<MediaMemoryChunk>( 42 return std::unique_ptr<MediaMemoryChunk>(
40 new ExternalMemoryBlock(data, alloc_size)); 43 new ExternalMemoryBlock(data, alloc_size));
41 } 44 }
42 45
43 } 46 }
44 47
45 TEST(MediaMessageTest, WriteRead) { 48 TEST(MediaMessageTest, WriteRead) {
46 int buffer_size = 1024; 49 int buffer_size = 1024;
47 scoped_ptr<uint8_t[]> buffer(new uint8_t[buffer_size]); 50 std::unique_ptr<uint8_t[]> buffer(new uint8_t[buffer_size]);
48 MediaMessage::MemoryAllocatorCB mem_alloc_cb( 51 MediaMessage::MemoryAllocatorCB mem_alloc_cb(
49 base::Bind(&DummyAllocator, buffer.get(), buffer_size)); 52 base::Bind(&DummyAllocator, buffer.get(), buffer_size));
50 uint32_t type = 0x1; 53 uint32_t type = 0x1;
51 int msg_content_capacity = 512; 54 int msg_content_capacity = 512;
52 55
53 // Write a message. 56 // Write a message.
54 int count = 64; 57 int count = 64;
55 scoped_ptr<MediaMessage> msg1( 58 std::unique_ptr<MediaMessage> msg1(
56 MediaMessage::CreateMessage(type, mem_alloc_cb, msg_content_capacity)); 59 MediaMessage::CreateMessage(type, mem_alloc_cb, msg_content_capacity));
57 for (int k = 0; k < count; k++) { 60 for (int k = 0; k < count; k++) {
58 int v1 = 2 * k + 1; 61 int v1 = 2 * k + 1;
59 EXPECT_TRUE(msg1->WritePod(v1)); 62 EXPECT_TRUE(msg1->WritePod(v1));
60 uint8_t v2 = k; 63 uint8_t v2 = k;
61 EXPECT_TRUE(msg1->WritePod(v2)); 64 EXPECT_TRUE(msg1->WritePod(v2));
62 } 65 }
63 EXPECT_EQ(msg1->content_size(), count * (sizeof(int) + sizeof(uint8_t))); 66 EXPECT_EQ(msg1->content_size(), count * (sizeof(int) + sizeof(uint8_t)));
64 67
65 // Verify the integrity of the message. 68 // Verify the integrity of the message.
66 scoped_ptr<MediaMessage> msg2( 69 std::unique_ptr<MediaMessage> msg2(
67 MediaMessage::MapMessage(scoped_ptr<MediaMemoryChunk>( 70 MediaMessage::MapMessage(std::unique_ptr<MediaMemoryChunk>(
68 new ExternalMemoryBlock(&buffer[0], buffer_size)))); 71 new ExternalMemoryBlock(&buffer[0], buffer_size))));
69 for (int k = 0; k < count; k++) { 72 for (int k = 0; k < count; k++) {
70 int v1; 73 int v1;
71 int expected_v1 = 2 * k + 1; 74 int expected_v1 = 2 * k + 1;
72 EXPECT_TRUE(msg2->ReadPod(&v1)); 75 EXPECT_TRUE(msg2->ReadPod(&v1));
73 EXPECT_EQ(v1, expected_v1); 76 EXPECT_EQ(v1, expected_v1);
74 uint8_t v2; 77 uint8_t v2;
75 uint8_t expected_v2 = k; 78 uint8_t expected_v2 = k;
76 EXPECT_TRUE(msg2->ReadPod(&v2)); 79 EXPECT_TRUE(msg2->ReadPod(&v2));
77 EXPECT_EQ(v2, expected_v2); 80 EXPECT_EQ(v2, expected_v2);
78 } 81 }
79 } 82 }
80 83
81 TEST(MediaMessageTest, WriteOverflow) { 84 TEST(MediaMessageTest, WriteOverflow) {
82 int buffer_size = 1024; 85 int buffer_size = 1024;
83 scoped_ptr<uint8_t[]> buffer(new uint8_t[buffer_size]); 86 std::unique_ptr<uint8_t[]> buffer(new uint8_t[buffer_size]);
84 MediaMessage::MemoryAllocatorCB mem_alloc_cb( 87 MediaMessage::MemoryAllocatorCB mem_alloc_cb(
85 base::Bind(&DummyAllocator, buffer.get(), buffer_size)); 88 base::Bind(&DummyAllocator, buffer.get(), buffer_size));
86 uint32_t type = 0x1; 89 uint32_t type = 0x1;
87 int msg_content_capacity = 8; 90 int msg_content_capacity = 8;
88 91
89 scoped_ptr<MediaMessage> msg1( 92 std::unique_ptr<MediaMessage> msg1(
90 MediaMessage::CreateMessage(type, mem_alloc_cb, msg_content_capacity)); 93 MediaMessage::CreateMessage(type, mem_alloc_cb, msg_content_capacity));
91 uint32_t v1 = 0; 94 uint32_t v1 = 0;
92 uint8_t v2 = 0; 95 uint8_t v2 = 0;
93 EXPECT_TRUE(msg1->WritePod(v1)); 96 EXPECT_TRUE(msg1->WritePod(v1));
94 EXPECT_TRUE(msg1->WritePod(v1)); 97 EXPECT_TRUE(msg1->WritePod(v1));
95 98
96 EXPECT_FALSE(msg1->WritePod(v1)); 99 EXPECT_FALSE(msg1->WritePod(v1));
97 EXPECT_FALSE(msg1->WritePod(v2)); 100 EXPECT_FALSE(msg1->WritePod(v2));
98 } 101 }
99 102
100 TEST(MediaMessageTest, ReadOverflow) { 103 TEST(MediaMessageTest, ReadOverflow) {
101 int buffer_size = 1024; 104 int buffer_size = 1024;
102 scoped_ptr<uint8_t[]> buffer(new uint8_t[buffer_size]); 105 std::unique_ptr<uint8_t[]> buffer(new uint8_t[buffer_size]);
103 MediaMessage::MemoryAllocatorCB mem_alloc_cb( 106 MediaMessage::MemoryAllocatorCB mem_alloc_cb(
104 base::Bind(&DummyAllocator, buffer.get(), buffer_size)); 107 base::Bind(&DummyAllocator, buffer.get(), buffer_size));
105 uint32_t type = 0x1; 108 uint32_t type = 0x1;
106 int msg_content_capacity = 8; 109 int msg_content_capacity = 8;
107 110
108 scoped_ptr<MediaMessage> msg1( 111 std::unique_ptr<MediaMessage> msg1(
109 MediaMessage::CreateMessage(type, mem_alloc_cb, msg_content_capacity)); 112 MediaMessage::CreateMessage(type, mem_alloc_cb, msg_content_capacity));
110 uint32_t v1 = 0xcd; 113 uint32_t v1 = 0xcd;
111 EXPECT_TRUE(msg1->WritePod(v1)); 114 EXPECT_TRUE(msg1->WritePod(v1));
112 EXPECT_TRUE(msg1->WritePod(v1)); 115 EXPECT_TRUE(msg1->WritePod(v1));
113 116
114 scoped_ptr<MediaMessage> msg2( 117 std::unique_ptr<MediaMessage> msg2(
115 MediaMessage::MapMessage(scoped_ptr<MediaMemoryChunk>( 118 MediaMessage::MapMessage(std::unique_ptr<MediaMemoryChunk>(
116 new ExternalMemoryBlock(&buffer[0], buffer_size)))); 119 new ExternalMemoryBlock(&buffer[0], buffer_size))));
117 uint32_t v2; 120 uint32_t v2;
118 EXPECT_TRUE(msg2->ReadPod(&v2)); 121 EXPECT_TRUE(msg2->ReadPod(&v2));
119 EXPECT_EQ(v2, v1); 122 EXPECT_EQ(v2, v1);
120 EXPECT_TRUE(msg2->ReadPod(&v2)); 123 EXPECT_TRUE(msg2->ReadPod(&v2));
121 EXPECT_EQ(v2, v1); 124 EXPECT_EQ(v2, v1);
122 EXPECT_FALSE(msg2->ReadPod(&v2)); 125 EXPECT_FALSE(msg2->ReadPod(&v2));
123 } 126 }
124 127
125 TEST(MediaMessageTest, DummyMessage) { 128 TEST(MediaMessageTest, DummyMessage) {
126 int buffer_size = 1024; 129 int buffer_size = 1024;
127 scoped_ptr<uint8_t[]> buffer(new uint8_t[buffer_size]); 130 std::unique_ptr<uint8_t[]> buffer(new uint8_t[buffer_size]);
128 MediaMessage::MemoryAllocatorCB mem_alloc_cb( 131 MediaMessage::MemoryAllocatorCB mem_alloc_cb(
129 base::Bind(&DummyAllocator, buffer.get(), buffer_size)); 132 base::Bind(&DummyAllocator, buffer.get(), buffer_size));
130 uint32_t type = 0x1; 133 uint32_t type = 0x1;
131 134
132 // Create first a dummy message to estimate the content size. 135 // Create first a dummy message to estimate the content size.
133 scoped_ptr<MediaMessage> msg1( 136 std::unique_ptr<MediaMessage> msg1(MediaMessage::CreateDummyMessage(type));
134 MediaMessage::CreateDummyMessage(type));
135 uint32_t v1 = 0xcd; 137 uint32_t v1 = 0xcd;
136 EXPECT_TRUE(msg1->WritePod(v1)); 138 EXPECT_TRUE(msg1->WritePod(v1));
137 EXPECT_TRUE(msg1->WritePod(v1)); 139 EXPECT_TRUE(msg1->WritePod(v1));
138 140
139 // Create the real message and write the actual content. 141 // Create the real message and write the actual content.
140 scoped_ptr<MediaMessage> msg2( 142 std::unique_ptr<MediaMessage> msg2(
141 MediaMessage::CreateMessage(type, mem_alloc_cb, msg1->content_size())); 143 MediaMessage::CreateMessage(type, mem_alloc_cb, msg1->content_size()));
142 EXPECT_TRUE(msg2->WritePod(v1)); 144 EXPECT_TRUE(msg2->WritePod(v1));
143 EXPECT_TRUE(msg2->WritePod(v1)); 145 EXPECT_TRUE(msg2->WritePod(v1));
144 EXPECT_FALSE(msg2->WritePod(v1)); 146 EXPECT_FALSE(msg2->WritePod(v1));
145 } 147 }
146 148
147 } // namespace media 149 } // namespace media
148 } // namespace chromecast 150 } // namespace chromecast
OLDNEW
« no previous file with comments | « chromecast/media/cma/ipc/media_message_fifo_unittest.cc ('k') | chromecast/media/cma/ipc_streamer/av_streamer_proxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698