OLD | NEW |
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 #include "mojo/system/message_pipe.h" | 5 #include "mojo/system/message_pipe.h" |
6 | 6 |
7 #include "base/memory/ref_counted.h" | 7 #include "base/memory/ref_counted.h" |
8 #include "base/threading/platform_thread.h" // For |Sleep()|. | 8 #include "base/threading/platform_thread.h" // For |Sleep()|. |
9 #include "base/time/time.h" | 9 #include "base/time/time.h" |
10 #include "mojo/system/waiter.h" | 10 #include "mojo/system/waiter.h" |
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
188 buffer_size = kBufferSize; | 188 buffer_size = kBufferSize; |
189 EXPECT_EQ(MOJO_RESULT_OK, | 189 EXPECT_EQ(MOJO_RESULT_OK, |
190 mp->ReadMessage(1, | 190 mp->ReadMessage(1, |
191 buffer, &buffer_size, | 191 buffer, &buffer_size, |
192 NULL, NULL, | 192 NULL, NULL, |
193 MOJO_READ_MESSAGE_FLAG_NONE)); | 193 MOJO_READ_MESSAGE_FLAG_NONE)); |
194 EXPECT_EQ(static_cast<uint32_t>(sizeof(buffer[0])), buffer_size); | 194 EXPECT_EQ(static_cast<uint32_t>(sizeof(buffer[0])), buffer_size); |
195 EXPECT_EQ(345678901, buffer[0]); | 195 EXPECT_EQ(345678901, buffer[0]); |
196 EXPECT_EQ(456, buffer[1]); | 196 EXPECT_EQ(456, buffer[1]); |
197 | 197 |
198 // Read again from port 1 -- it should be empty. | 198 // Read again from port 1 -- it should be empty (and port 0 is closed). |
199 buffer_size = kBufferSize; | 199 buffer_size = kBufferSize; |
200 EXPECT_EQ(MOJO_RESULT_NOT_FOUND, | 200 EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION, |
201 mp->ReadMessage(1, | 201 mp->ReadMessage(1, |
202 buffer, &buffer_size, | 202 buffer, &buffer_size, |
203 NULL, NULL, | 203 NULL, NULL, |
204 MOJO_READ_MESSAGE_FLAG_NONE)); | 204 MOJO_READ_MESSAGE_FLAG_NONE)); |
205 | 205 |
206 mp->Close(1); | 206 mp->Close(1); |
207 } | 207 } |
208 | 208 |
209 TEST(MessagePipeTest, CloseWithQueuedIncomingMessages) { | 209 TEST(MessagePipeTest, CloseWithQueuedIncomingMessages) { |
210 scoped_refptr<MessagePipe> mp(new MessagePipe()); | 210 scoped_refptr<MessagePipe> mp(new MessagePipe()); |
(...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
507 | 507 |
508 mp->CancelAllWaiters(1); | 508 mp->CancelAllWaiters(1); |
509 mp->Close(1); | 509 mp->Close(1); |
510 } // Joins |thread|. | 510 } // Joins |thread|. |
511 EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION, result); | 511 EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION, result); |
512 } | 512 } |
513 | 513 |
514 } // namespace | 514 } // namespace |
515 } // namespace system | 515 } // namespace system |
516 } // namespace mojo | 516 } // namespace mojo |
OLD | NEW |