| Index: mojo/system/raw_channel_unittest.cc
|
| diff --git a/mojo/system/raw_channel_unittest.cc b/mojo/system/raw_channel_unittest.cc
|
| index 1973689e9bc487128e51a45cf1496f1e6828c007..70aba1c6305a5cdd449544bfa54628257b4d9109 100644
|
| --- a/mojo/system/raw_channel_unittest.cc
|
| +++ b/mojo/system/raw_channel_unittest.cc
|
| @@ -9,7 +9,6 @@
|
| #include <vector>
|
|
|
| #include "base/bind.h"
|
| -#include "base/compiler_specific.h"
|
| #include "base/location.h"
|
| #include "base/logging.h"
|
| #include "base/macros.h"
|
| @@ -53,8 +52,8 @@ bool CheckMessageData(const void* bytes, uint32_t num_bytes) {
|
| return true;
|
| }
|
|
|
| -void InitOnIOThread(RawChannel* raw_channel) {
|
| - CHECK(raw_channel->Init());
|
| +void InitOnIOThread(RawChannel* raw_channel, RawChannel::Delegate* delegate) {
|
| + CHECK(raw_channel->Init(delegate));
|
| }
|
|
|
| bool WriteTestMessageToHandle(const embedder::PlatformHandle& handle,
|
| @@ -192,14 +191,11 @@ class TestMessageReaderAndChecker {
|
| // Tests writing (and verifies reading using our own custom reader).
|
| TEST_F(RawChannelTest, WriteMessage) {
|
| WriteOnlyRawChannelDelegate delegate;
|
| - scoped_ptr<RawChannel> rc(RawChannel::Create(handles[0].Pass(),
|
| - &delegate,
|
| - io_thread()->message_loop()));
|
| -
|
| + scoped_ptr<RawChannel> rc(RawChannel::Create(handles[0].Pass()));
|
| TestMessageReaderAndChecker checker(handles[1].get());
|
| -
|
| io_thread()->PostTaskAndWait(FROM_HERE,
|
| - base::Bind(&InitOnIOThread, rc.get()));
|
| + base::Bind(&InitOnIOThread, rc.get(),
|
| + base::Unretained(&delegate)));
|
|
|
| // Write and read, for a variety of sizes.
|
| for (uint32_t size = 1; size < 5 * 1000 * 1000; size += size / 2 + 1) {
|
| @@ -282,12 +278,10 @@ class ReadCheckerRawChannelDelegate : public RawChannel::Delegate {
|
| // Tests reading (writing using our own custom writer).
|
| TEST_F(RawChannelTest, OnReadMessage) {
|
| ReadCheckerRawChannelDelegate delegate;
|
| - scoped_ptr<RawChannel> rc(RawChannel::Create(handles[0].Pass(),
|
| - &delegate,
|
| - io_thread()->message_loop()));
|
| -
|
| + scoped_ptr<RawChannel> rc(RawChannel::Create(handles[0].Pass()));
|
| io_thread()->PostTaskAndWait(FROM_HERE,
|
| - base::Bind(&InitOnIOThread, rc.get()));
|
| + base::Bind(&InitOnIOThread, rc.get(),
|
| + base::Unretained(&delegate)));
|
|
|
| // Write and read, for a variety of sizes.
|
| for (uint32_t size = 1; size < 5 * 1000 * 1000; size += size / 2 + 1) {
|
| @@ -386,23 +380,17 @@ TEST_F(RawChannelTest, WriteMessageAndOnReadMessage) {
|
| static const size_t kNumWriteMessagesPerThread = 4000;
|
|
|
| WriteOnlyRawChannelDelegate writer_delegate;
|
| - scoped_ptr<RawChannel> writer_rc(
|
| - RawChannel::Create(handles[0].Pass(),
|
| - &writer_delegate,
|
| - io_thread()->message_loop()));
|
| -
|
| + scoped_ptr<RawChannel> writer_rc(RawChannel::Create(handles[0].Pass()));
|
| io_thread()->PostTaskAndWait(FROM_HERE,
|
| - base::Bind(&InitOnIOThread, writer_rc.get()));
|
| + base::Bind(&InitOnIOThread, writer_rc.get(),
|
| + base::Unretained(&writer_delegate)));
|
|
|
| ReadCountdownRawChannelDelegate reader_delegate(
|
| kNumWriterThreads * kNumWriteMessagesPerThread);
|
| - scoped_ptr<RawChannel> reader_rc(
|
| - RawChannel::Create(handles[1].Pass(),
|
| - &reader_delegate,
|
| - io_thread()->message_loop()));
|
| -
|
| + scoped_ptr<RawChannel> reader_rc(RawChannel::Create(handles[1].Pass()));
|
| io_thread()->PostTaskAndWait(FROM_HERE,
|
| - base::Bind(&InitOnIOThread, reader_rc.get()));
|
| + base::Bind(&InitOnIOThread, reader_rc.get(),
|
| + base::Unretained(&reader_delegate)));
|
|
|
| {
|
| ScopedVector<RawChannelWriterThread> writer_threads;
|
| @@ -477,13 +465,10 @@ class FatalErrorRecordingRawChannelDelegate
|
| // Tests fatal errors.
|
| TEST_F(RawChannelTest, OnFatalError) {
|
| FatalErrorRecordingRawChannelDelegate delegate(0, true, true);
|
| -
|
| - scoped_ptr<RawChannel> rc(RawChannel::Create(handles[0].Pass(),
|
| - &delegate,
|
| - io_thread()->message_loop()));
|
| -
|
| + scoped_ptr<RawChannel> rc(RawChannel::Create(handles[0].Pass()));
|
| io_thread()->PostTaskAndWait(FROM_HERE,
|
| - base::Bind(&InitOnIOThread, rc.get()));
|
| + base::Bind(&InitOnIOThread, rc.get(),
|
| + base::Unretained(&delegate)));
|
|
|
| // Close the handle of the other end, which should make writing fail.
|
| handles[1].reset();
|
| @@ -525,11 +510,10 @@ TEST_F(RawChannelTest, ReadUnaffectedByWriteFatalError) {
|
| // Only start up reading here. The system buffer should still contain the
|
| // messages that were written.
|
| FatalErrorRecordingRawChannelDelegate delegate(kMessageCount, true, true);
|
| - scoped_ptr<RawChannel> rc(RawChannel::Create(handles[0].Pass(),
|
| - &delegate,
|
| - io_thread()->message_loop()));
|
| + scoped_ptr<RawChannel> rc(RawChannel::Create(handles[0].Pass()));
|
| io_thread()->PostTaskAndWait(FROM_HERE,
|
| - base::Bind(&InitOnIOThread, rc.get()));
|
| + base::Bind(&InitOnIOThread, rc.get(),
|
| + base::Unretained(&delegate)));
|
|
|
| EXPECT_FALSE(rc->WriteMessage(MakeTestMessage(1)));
|
|
|
| @@ -553,12 +537,10 @@ TEST_F(RawChannelTest, ReadUnaffectedByWriteFatalError) {
|
| // correctly.
|
| TEST_F(RawChannelTest, WriteMessageAfterShutdown) {
|
| WriteOnlyRawChannelDelegate delegate;
|
| - scoped_ptr<RawChannel> rc(RawChannel::Create(handles[0].Pass(),
|
| - &delegate,
|
| - io_thread()->message_loop()));
|
| -
|
| + scoped_ptr<RawChannel> rc(RawChannel::Create(handles[0].Pass()));
|
| io_thread()->PostTaskAndWait(FROM_HERE,
|
| - base::Bind(&InitOnIOThread, rc.get()));
|
| + base::Bind(&InitOnIOThread, rc.get(),
|
| + base::Unretained(&delegate)));
|
| io_thread()->PostTaskAndWait(FROM_HERE,
|
| base::Bind(&RawChannel::Shutdown,
|
| base::Unretained(rc.get())));
|
|
|