Index: mojo/system/raw_channel_posix_unittest.cc |
diff --git a/mojo/system/raw_channel_posix_unittest.cc b/mojo/system/raw_channel_posix_unittest.cc |
index 75470213f138a76beec3d240c6aab4fa567d0016..ab80487ccbc81bf90c3e3afeb0ee37c6e5019d7f 100644 |
--- a/mojo/system/raw_channel_posix_unittest.cc |
+++ b/mojo/system/raw_channel_posix_unittest.cc |
@@ -145,20 +145,21 @@ class TestMessageReaderAndChecker { |
bytes_.insert(bytes_.end(), buffer, buffer + read_size); |
// If we have the header.... |
- if (bytes_.size() >= sizeof(MessageInTransit)) { |
- const MessageInTransit* message = |
- reinterpret_cast<const MessageInTransit*>(bytes_.data()); |
- CHECK_EQ(reinterpret_cast<size_t>(message) % |
- MessageInTransit::kMessageAlignment, 0u); |
- |
- if (message->data_size() != expected_size) { |
- LOG(ERROR) << "Wrong size: " << message->data_size() << " instead of " |
- << expected_size << " bytes."; |
- return false; |
- } |
- |
+ size_t message_size; |
+ if (MessageInTransit::GetNextMessageSize(bytes_.data(), bytes_.size(), |
+ &message_size)) { |
// If we've read the whole message.... |
- if (bytes_.size() >= message->main_buffer_size()) { |
+ if (bytes_.size() >= message_size) { |
+ const MessageInTransit* message = |
+ MessageInTransit::CreateReadOnlyFromBuffer(bytes_.data()); |
+ CHECK_EQ(message->main_buffer_size(), message_size); |
+ |
+ if (message->data_size() != expected_size) { |
+ LOG(ERROR) << "Wrong size: " << message_size << " instead of " |
+ << expected_size << " bytes."; |
+ return false; |
+ } |
+ |
if (!CheckMessageData(message->data(), message->data_size())) { |
LOG(ERROR) << "Incorrect message data."; |
return false; |