| Index: chromecast/media/cma/ipc/media_message_fifo_unittest.cc
|
| diff --git a/chromecast/media/cma/ipc/media_message_fifo_unittest.cc b/chromecast/media/cma/ipc/media_message_fifo_unittest.cc
|
| index 9a03b66576a58f42f61566b2994f92a238daa51f..764e4b4b8b79e5a66368f5b96719b2d95b5a9980 100644
|
| --- a/chromecast/media/cma/ipc/media_message_fifo_unittest.cc
|
| +++ b/chromecast/media/cma/ipc/media_message_fifo_unittest.cc
|
| @@ -2,17 +2,19 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| +#include "chromecast/media/cma/ipc/media_message_fifo.h"
|
| +
|
| #include <stddef.h>
|
| #include <stdint.h>
|
|
|
| +#include <memory>
|
| +
|
| #include "base/bind.h"
|
| #include "base/macros.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| #include "base/synchronization/waitable_event.h"
|
| #include "base/threading/thread.h"
|
| #include "chromecast/media/cma/ipc/media_memory_chunk.h"
|
| #include "chromecast/media/cma/ipc/media_message.h"
|
| -#include "chromecast/media/cma/ipc/media_message_fifo.h"
|
| #include "chromecast/media/cma/ipc/media_message_type.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| @@ -38,20 +40,17 @@ class FifoMemoryChunk : public MediaMemoryChunk {
|
| DISALLOW_COPY_AND_ASSIGN(FifoMemoryChunk);
|
| };
|
|
|
| -void MsgProducer(scoped_ptr<MediaMessageFifo> fifo,
|
| +void MsgProducer(std::unique_ptr<MediaMessageFifo> fifo,
|
| int msg_count,
|
| base::WaitableEvent* event) {
|
| -
|
| for (int k = 0; k < msg_count; k++) {
|
| uint32_t msg_type = 0x2 + (k % 5);
|
| uint32_t max_msg_content_size = k % 64;
|
| do {
|
| - scoped_ptr<MediaMessage> msg1(
|
| - MediaMessage::CreateMessage(
|
| - msg_type,
|
| - base::Bind(&MediaMessageFifo::ReserveMemory,
|
| - base::Unretained(fifo.get())),
|
| - max_msg_content_size));
|
| + std::unique_ptr<MediaMessage> msg1(MediaMessage::CreateMessage(
|
| + msg_type, base::Bind(&MediaMessageFifo::ReserveMemory,
|
| + base::Unretained(fifo.get())),
|
| + max_msg_content_size));
|
| if (msg1)
|
| break;
|
| base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(10));
|
| @@ -63,15 +62,14 @@ void MsgProducer(scoped_ptr<MediaMessageFifo> fifo,
|
| event->Signal();
|
| }
|
|
|
| -void MsgConsumer(scoped_ptr<MediaMessageFifo> fifo,
|
| +void MsgConsumer(std::unique_ptr<MediaMessageFifo> fifo,
|
| int msg_count,
|
| base::WaitableEvent* event) {
|
| -
|
| int k = 0;
|
| while (k < msg_count) {
|
| uint32_t msg_type = 0x2 + (k % 5);
|
| do {
|
| - scoped_ptr<MediaMessage> msg2(fifo->Pop());
|
| + std::unique_ptr<MediaMessage> msg2(fifo->Pop());
|
| if (msg2) {
|
| if (msg2->type() != PaddingMediaMsg) {
|
| EXPECT_EQ(msg2->type(), msg_type);
|
| @@ -88,27 +86,24 @@ void MsgConsumer(scoped_ptr<MediaMessageFifo> fifo,
|
| event->Signal();
|
| }
|
|
|
| -void MsgProducerConsumer(
|
| - scoped_ptr<MediaMessageFifo> producer_fifo,
|
| - scoped_ptr<MediaMessageFifo> consumer_fifo,
|
| - base::WaitableEvent* event) {
|
| +void MsgProducerConsumer(std::unique_ptr<MediaMessageFifo> producer_fifo,
|
| + std::unique_ptr<MediaMessageFifo> consumer_fifo,
|
| + base::WaitableEvent* event) {
|
| for (int k = 0; k < 2048; k++) {
|
| // Should have enough space to create a message.
|
| uint32_t msg_type = 0x2 + (k % 5);
|
| uint32_t max_msg_content_size = k % 64;
|
| - scoped_ptr<MediaMessage> msg1(
|
| - MediaMessage::CreateMessage(
|
| - msg_type,
|
| - base::Bind(&MediaMessageFifo::ReserveMemory,
|
| - base::Unretained(producer_fifo.get())),
|
| - max_msg_content_size));
|
| + std::unique_ptr<MediaMessage> msg1(MediaMessage::CreateMessage(
|
| + msg_type, base::Bind(&MediaMessageFifo::ReserveMemory,
|
| + base::Unretained(producer_fifo.get())),
|
| + max_msg_content_size));
|
| EXPECT_TRUE(msg1);
|
|
|
| // Make sure the message is commited.
|
| msg1.reset();
|
|
|
| // At this point, we should have a message to read.
|
| - scoped_ptr<MediaMessage> msg2(consumer_fifo->Pop());
|
| + std::unique_ptr<MediaMessage> msg2(consumer_fifo->Pop());
|
| EXPECT_TRUE(msg2);
|
| }
|
|
|
| @@ -122,20 +117,21 @@ void MsgProducerConsumer(
|
|
|
| TEST(MediaMessageFifoTest, AlternateWriteRead) {
|
| size_t buffer_size = 64 * 1024;
|
| - scoped_ptr<uint64_t[]> buffer(new uint64_t[buffer_size / sizeof(uint64_t)]);
|
| + std::unique_ptr<uint64_t[]> buffer(
|
| + new uint64_t[buffer_size / sizeof(uint64_t)]);
|
|
|
| - scoped_ptr<base::Thread> thread(
|
| + std::unique_ptr<base::Thread> thread(
|
| new base::Thread("FeederConsumerThread"));
|
| thread->Start();
|
|
|
| - scoped_ptr<MediaMessageFifo> producer_fifo(new MediaMessageFifo(
|
| - scoped_ptr<MediaMemoryChunk>(
|
| - new FifoMemoryChunk(&buffer[0], buffer_size)),
|
| - true));
|
| - scoped_ptr<MediaMessageFifo> consumer_fifo(new MediaMessageFifo(
|
| - scoped_ptr<MediaMemoryChunk>(
|
| - new FifoMemoryChunk(&buffer[0], buffer_size)),
|
| - false));
|
| + std::unique_ptr<MediaMessageFifo> producer_fifo(
|
| + new MediaMessageFifo(std::unique_ptr<MediaMemoryChunk>(
|
| + new FifoMemoryChunk(&buffer[0], buffer_size)),
|
| + true));
|
| + std::unique_ptr<MediaMessageFifo> consumer_fifo(
|
| + new MediaMessageFifo(std::unique_ptr<MediaMemoryChunk>(
|
| + new FifoMemoryChunk(&buffer[0], buffer_size)),
|
| + false));
|
|
|
| base::WaitableEvent event(false, false);
|
| thread->task_runner()->PostTask(
|
| @@ -148,23 +144,24 @@ TEST(MediaMessageFifoTest, AlternateWriteRead) {
|
|
|
| TEST(MediaMessageFifoTest, MultiThreaded) {
|
| size_t buffer_size = 64 * 1024;
|
| - scoped_ptr<uint64_t[]> buffer(new uint64_t[buffer_size / sizeof(uint64_t)]);
|
| + std::unique_ptr<uint64_t[]> buffer(
|
| + new uint64_t[buffer_size / sizeof(uint64_t)]);
|
|
|
| - scoped_ptr<base::Thread> producer_thread(
|
| + std::unique_ptr<base::Thread> producer_thread(
|
| new base::Thread("FeederThread"));
|
| - scoped_ptr<base::Thread> consumer_thread(
|
| + std::unique_ptr<base::Thread> consumer_thread(
|
| new base::Thread("ConsumerThread"));
|
| producer_thread->Start();
|
| consumer_thread->Start();
|
|
|
| - scoped_ptr<MediaMessageFifo> producer_fifo(new MediaMessageFifo(
|
| - scoped_ptr<MediaMemoryChunk>(
|
| - new FifoMemoryChunk(&buffer[0], buffer_size)),
|
| - true));
|
| - scoped_ptr<MediaMessageFifo> consumer_fifo(new MediaMessageFifo(
|
| - scoped_ptr<MediaMemoryChunk>(
|
| - new FifoMemoryChunk(&buffer[0], buffer_size)),
|
| - false));
|
| + std::unique_ptr<MediaMessageFifo> producer_fifo(
|
| + new MediaMessageFifo(std::unique_ptr<MediaMemoryChunk>(
|
| + new FifoMemoryChunk(&buffer[0], buffer_size)),
|
| + true));
|
| + std::unique_ptr<MediaMessageFifo> consumer_fifo(
|
| + new MediaMessageFifo(std::unique_ptr<MediaMemoryChunk>(
|
| + new FifoMemoryChunk(&buffer[0], buffer_size)),
|
| + false));
|
|
|
| base::WaitableEvent producer_event_done(false, false);
|
| base::WaitableEvent consumer_event_done(false, false);
|
|
|