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

Side by Side Diff: mojo/system/raw_channel_posix_unittest.cc

Issue 172953003: Mojo: Make MessageInTransit more opaque. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review comments Created 6 years, 10 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 | Annotate | Revision Log
« no previous file with comments | « mojo/system/raw_channel_posix.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 // TODO(vtl): Factor out the remaining POSIX-specific bits of this test (once we 5 // TODO(vtl): Factor out the remaining POSIX-specific bits of this test (once we
6 // have a non-POSIX implementation). 6 // have a non-POSIX implementation).
7 7
8 #include "mojo/system/raw_channel.h" 8 #include "mojo/system/raw_channel.h"
9 9
10 #include <fcntl.h> 10 #include <fcntl.h>
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 60
61 void InitOnIOThread(RawChannel* raw_channel) { 61 void InitOnIOThread(RawChannel* raw_channel) {
62 CHECK(raw_channel->Init()); 62 CHECK(raw_channel->Init());
63 } 63 }
64 64
65 bool WriteTestMessageToHandle(const embedder::PlatformHandle& handle, 65 bool WriteTestMessageToHandle(const embedder::PlatformHandle& handle,
66 uint32_t num_bytes) { 66 uint32_t num_bytes) {
67 MessageInTransit* message = MakeTestMessage(num_bytes); 67 MessageInTransit* message = MakeTestMessage(num_bytes);
68 68
69 ssize_t write_size = HANDLE_EINTR( 69 ssize_t write_size = HANDLE_EINTR(
70 write(handle.fd, message, message->size_with_header_and_padding())); 70 write(handle.fd, message->main_buffer(), message->main_buffer_size()));
71 bool result = write_size == 71 bool result = write_size == static_cast<ssize_t>(message->main_buffer_size());
72 static_cast<ssize_t>(message->size_with_header_and_padding());
73 message->Destroy(); 72 message->Destroy();
74 return result; 73 return result;
75 } 74 }
76 75
77 // ----------------------------------------------------------------------------- 76 // -----------------------------------------------------------------------------
78 77
79 class RawChannelPosixTest : public test::TestWithIOThreadBase { 78 class RawChannelPosixTest : public test::TestWithIOThreadBase {
80 public: 79 public:
81 RawChannelPosixTest() {} 80 RawChannelPosixTest() {}
82 virtual ~RawChannelPosixTest() {} 81 virtual ~RawChannelPosixTest() {}
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 CHECK_EQ(reinterpret_cast<size_t>(message) % 151 CHECK_EQ(reinterpret_cast<size_t>(message) %
153 MessageInTransit::kMessageAlignment, 0u); 152 MessageInTransit::kMessageAlignment, 0u);
154 153
155 if (message->data_size() != expected_size) { 154 if (message->data_size() != expected_size) {
156 LOG(ERROR) << "Wrong size: " << message->data_size() << " instead of " 155 LOG(ERROR) << "Wrong size: " << message->data_size() << " instead of "
157 << expected_size << " bytes."; 156 << expected_size << " bytes.";
158 return false; 157 return false;
159 } 158 }
160 159
161 // If we've read the whole message.... 160 // If we've read the whole message....
162 if (bytes_.size() >= message->size_with_header_and_padding()) { 161 if (bytes_.size() >= message->main_buffer_size()) {
163 if (!CheckMessageData(message->data(), message->data_size())) { 162 if (!CheckMessageData(message->data(), message->data_size())) {
164 LOG(ERROR) << "Incorrect message data."; 163 LOG(ERROR) << "Incorrect message data.";
165 return false; 164 return false;
166 } 165 }
167 166
168 // Erase message data. 167 // Erase message data.
169 bytes_.erase(bytes_.begin(), 168 bytes_.erase(bytes_.begin(),
170 bytes_.begin() + 169 bytes_.begin() +
171 message->size_with_header_and_padding()); 170 message->main_buffer_size());
172 return true; 171 return true;
173 } 172 }
174 } 173 }
175 174
176 if (static_cast<size_t>(read_size) < sizeof(buffer)) { 175 if (static_cast<size_t>(read_size) < sizeof(buffer)) {
177 i++; 176 i++;
178 base::PlatformThread::Sleep( 177 base::PlatformThread::Sleep(
179 base::TimeDelta::FromMilliseconds(kMessageReaderSleepMs)); 178 base::TimeDelta::FromMilliseconds(kMessageReaderSleepMs));
180 } 179 }
181 } 180 }
(...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after
547 FROM_HERE, 546 FROM_HERE,
548 base::Bind(&RawChannel::Shutdown, 547 base::Bind(&RawChannel::Shutdown,
549 base::Unretained(rc.get()))); 548 base::Unretained(rc.get())));
550 549
551 EXPECT_FALSE(rc->WriteMessage(MakeTestMessage(1))); 550 EXPECT_FALSE(rc->WriteMessage(MakeTestMessage(1)));
552 } 551 }
553 552
554 } // namespace 553 } // namespace
555 } // namespace system 554 } // namespace system
556 } // namespace mojo 555 } // namespace mojo
OLDNEW
« no previous file with comments | « mojo/system/raw_channel_posix.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698