| 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/edk/system/message_pipe.h" | 5 #include "mojo/edk/system/message_pipe.h" |
| 6 | 6 |
| 7 #include "mojo/edk/system/waiter.h" | 7 #include "mojo/edk/system/waiter.h" |
| 8 #include "mojo/edk/system/waiter_test_utils.h" | 8 #include "mojo/edk/system/waiter_test_utils.h" |
| 9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
| 10 | 10 |
| (...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 345 MOJO_HANDLE_SIGNAL_WRITABLE, | 345 MOJO_HANDLE_SIGNAL_WRITABLE, |
| 346 false, 0, &hss)); | 346 false, 0, &hss)); |
| 347 EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, hss.satisfied_signals); | 347 EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, hss.satisfied_signals); |
| 348 EXPECT_EQ(kAllSignals, hss.satisfiable_signals); | 348 EXPECT_EQ(kAllSignals, hss.satisfiable_signals); |
| 349 | 349 |
| 350 // Not yet readable. | 350 // Not yet readable. |
| 351 waiter.Init(); | 351 waiter.Init(); |
| 352 ASSERT_EQ(MOJO_RESULT_OK, | 352 ASSERT_EQ(MOJO_RESULT_OK, |
| 353 mp->AddAwakable(0, &waiter, MOJO_HANDLE_SIGNAL_READABLE, false, 1, | 353 mp->AddAwakable(0, &waiter, MOJO_HANDLE_SIGNAL_READABLE, false, 1, |
| 354 nullptr)); | 354 nullptr)); |
| 355 EXPECT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED, waiter.Wait(0, nullptr)); | 355 EXPECT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED, waiter.Wait(0, nullptr, nullptr)); |
| 356 hss = HandleSignalsState(); | 356 hss = HandleSignalsState(); |
| 357 mp->RemoveAwakable(0, &waiter, &hss); | 357 mp->RemoveAwakable(0, &waiter, &hss); |
| 358 EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, hss.satisfied_signals); | 358 EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, hss.satisfied_signals); |
| 359 EXPECT_EQ(kAllSignals, hss.satisfiable_signals); | 359 EXPECT_EQ(kAllSignals, hss.satisfiable_signals); |
| 360 | 360 |
| 361 // The peer is not closed. | 361 // The peer is not closed. |
| 362 waiter.Init(); | 362 waiter.Init(); |
| 363 ASSERT_EQ(MOJO_RESULT_OK, | 363 ASSERT_EQ(MOJO_RESULT_OK, |
| 364 mp->AddAwakable(0, &waiter, MOJO_HANDLE_SIGNAL_PEER_CLOSED, false, | 364 mp->AddAwakable(0, &waiter, MOJO_HANDLE_SIGNAL_PEER_CLOSED, false, |
| 365 2, nullptr)); | 365 2, nullptr)); |
| 366 EXPECT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED, waiter.Wait(0, nullptr)); | 366 EXPECT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED, waiter.Wait(0, nullptr, nullptr)); |
| 367 hss = HandleSignalsState(); | 367 hss = HandleSignalsState(); |
| 368 mp->RemoveAwakable(0, &waiter, &hss); | 368 mp->RemoveAwakable(0, &waiter, &hss); |
| 369 EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, hss.satisfied_signals); | 369 EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, hss.satisfied_signals); |
| 370 EXPECT_EQ(kAllSignals, hss.satisfiable_signals); | 370 EXPECT_EQ(kAllSignals, hss.satisfiable_signals); |
| 371 | 371 |
| 372 // Write from port 0 (to port 1), to make port 1 readable. | 372 // Write from port 0 (to port 1), to make port 1 readable. |
| 373 buffer[0] = 123456789; | 373 buffer[0] = 123456789; |
| 374 EXPECT_EQ(MOJO_RESULT_OK, | 374 EXPECT_EQ(MOJO_RESULT_OK, |
| 375 mp->WriteMessage(0, UserPointer<const void>(buffer), kBufferSize, | 375 mp->WriteMessage(0, UserPointer<const void>(buffer), kBufferSize, |
| 376 nullptr, MOJO_WRITE_MESSAGE_FLAG_NONE)); | 376 nullptr, MOJO_WRITE_MESSAGE_FLAG_NONE)); |
| (...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 567 mp->CancelAllState(1); | 567 mp->CancelAllState(1); |
| 568 mp->Close(1); | 568 mp->Close(1); |
| 569 } // Joins |thread|. | 569 } // Joins |thread|. |
| 570 EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION, result); | 570 EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION, result); |
| 571 EXPECT_EQ(4u, context); | 571 EXPECT_EQ(4u, context); |
| 572 } | 572 } |
| 573 | 573 |
| 574 } // namespace | 574 } // namespace |
| 575 } // namespace system | 575 } // namespace system |
| 576 } // namespace mojo | 576 } // namespace mojo |
| OLD | NEW |