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

Side by Side Diff: mojo/edk/system/message_pipe_unittest.cc

Issue 2075353002: Plumb the handle signals state out of Waiter::Wait(). (Closed) Base URL: https://github.com/domokit/mojo.git@work795_wait_set_4.3-x-work794_wait_set_4.2
Patch Set: Created 4 years, 6 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
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 #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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698