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

Unified Diff: chromecast/media/cma/ipc/media_message_fifo_unittest.cc

Issue 2300993003: CmaRenderer is dead. Long live MojoRenderer. (Closed)
Patch Set: update OWNERS file Created 4 years, 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chromecast/media/cma/ipc/media_message_fifo.cc ('k') | chromecast/media/cma/ipc/media_message_type.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
deleted file mode 100644
index 229e2375632d026b9bc799c2b6adb50d6332fa1e..0000000000000000000000000000000000000000
--- a/chromecast/media/cma/ipc/media_message_fifo_unittest.cc
+++ /dev/null
@@ -1,191 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// 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/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_type.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace chromecast {
-namespace media {
-
-namespace {
-
-class FifoMemoryChunk : public MediaMemoryChunk {
- public:
- FifoMemoryChunk(void* mem, size_t size)
- : mem_(mem), size_(size) {}
- ~FifoMemoryChunk() override {}
-
- void* data() const override { return mem_; }
- size_t size() const override { return size_; }
- bool valid() const override { return true; }
-
- private:
- void* mem_;
- size_t size_;
-
- DISALLOW_COPY_AND_ASSIGN(FifoMemoryChunk);
-};
-
-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 {
- 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));
- } while (true);
- }
-
- fifo.reset();
-
- event->Signal();
-}
-
-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 {
- std::unique_ptr<MediaMessage> msg2(fifo->Pop());
- if (msg2) {
- if (msg2->type() != PaddingMediaMsg) {
- EXPECT_EQ(msg2->type(), msg_type);
- k++;
- }
- break;
- }
- base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(10));
- } while (true);
- }
-
- fifo.reset();
-
- event->Signal();
-}
-
-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;
- 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.
- std::unique_ptr<MediaMessage> msg2(consumer_fifo->Pop());
- EXPECT_TRUE(msg2);
- }
-
- producer_fifo.reset();
- consumer_fifo.reset();
-
- event->Signal();
-}
-
-} // namespace
-
-TEST(MediaMessageFifoTest, AlternateWriteRead) {
- size_t buffer_size = 64 * 1024;
- std::unique_ptr<uint64_t[]> buffer(
- new uint64_t[buffer_size / sizeof(uint64_t)]);
-
- std::unique_ptr<base::Thread> thread(
- new base::Thread("FeederConsumerThread"));
- thread->Start();
-
- 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(base::WaitableEvent::ResetPolicy::AUTOMATIC,
- base::WaitableEvent::InitialState::NOT_SIGNALED);
- thread->task_runner()->PostTask(
- FROM_HERE, base::Bind(&MsgProducerConsumer, base::Passed(&producer_fifo),
- base::Passed(&consumer_fifo), &event));
- event.Wait();
-
- thread.reset();
-}
-
-TEST(MediaMessageFifoTest, MultiThreaded) {
- size_t buffer_size = 64 * 1024;
- std::unique_ptr<uint64_t[]> buffer(
- new uint64_t[buffer_size / sizeof(uint64_t)]);
-
- std::unique_ptr<base::Thread> producer_thread(
- new base::Thread("FeederThread"));
- std::unique_ptr<base::Thread> consumer_thread(
- new base::Thread("ConsumerThread"));
- producer_thread->Start();
- consumer_thread->Start();
-
- 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(
- base::WaitableEvent::ResetPolicy::AUTOMATIC,
- base::WaitableEvent::InitialState::NOT_SIGNALED);
- base::WaitableEvent consumer_event_done(
- base::WaitableEvent::ResetPolicy::AUTOMATIC,
- base::WaitableEvent::InitialState::NOT_SIGNALED);
-
- const int msg_count = 2048;
- producer_thread->task_runner()->PostTask(
- FROM_HERE, base::Bind(&MsgProducer, base::Passed(&producer_fifo),
- msg_count, &producer_event_done));
- consumer_thread->task_runner()->PostTask(
- FROM_HERE, base::Bind(&MsgConsumer, base::Passed(&consumer_fifo),
- msg_count, &consumer_event_done));
-
- producer_event_done.Wait();
- consumer_event_done.Wait();
-
- producer_thread.reset();
- consumer_thread.reset();
-}
-
-} // namespace media
-} // namespace chromecast
-
« no previous file with comments | « chromecast/media/cma/ipc/media_message_fifo.cc ('k') | chromecast/media/cma/ipc/media_message_type.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698