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

Unified Diff: mojo/edk/system/waiter_unittest.cc

Issue 2076263003: Plumb the handle signals state to Awakable::Awake(). (Closed) Base URL: https://github.com/domokit/mojo.git@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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « mojo/edk/system/waiter.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/edk/system/waiter_unittest.cc
diff --git a/mojo/edk/system/waiter_unittest.cc b/mojo/edk/system/waiter_unittest.cc
index 97f25d50a8f3c41e68037fa1f92c1031b512750a..cfb0c31b306a02bbf7dd45e62db55e4ef25f514d 100644
--- a/mojo/edk/system/waiter_unittest.cc
+++ b/mojo/edk/system/waiter_unittest.cc
@@ -105,7 +105,8 @@ TEST(WaiterTest, Basic) {
{
WaitingThread thread(10 * test::EpsilonTimeout());
thread.Start();
- thread.waiter()->Awake(MOJO_RESULT_OK, 1);
+ thread.waiter()->Awake(1, Awakable::AwakeReason::SATISFIED,
+ HandleSignalsState());
thread.WaitUntilDone(&result, &context, &elapsed);
EXPECT_EQ(MOJO_RESULT_OK, result);
EXPECT_EQ(1u, context);
@@ -115,7 +116,8 @@ TEST(WaiterTest, Basic) {
// Awake before after thread start.
{
WaitingThread thread(10 * test::EpsilonTimeout());
- thread.waiter()->Awake(MOJO_RESULT_CANCELLED, 2);
+ thread.waiter()->Awake(2, Awakable::AwakeReason::CANCELLED,
+ HandleSignalsState());
thread.Start();
thread.WaitUntilDone(&result, &context, &elapsed);
EXPECT_EQ(MOJO_RESULT_CANCELLED, result);
@@ -128,9 +130,10 @@ TEST(WaiterTest, Basic) {
WaitingThread thread(10 * test::EpsilonTimeout());
thread.Start();
ThreadSleep(2 * test::EpsilonTimeout());
- thread.waiter()->Awake(1, 3);
+ thread.waiter()->Awake(3, Awakable::AwakeReason::SATISFIED,
+ HandleSignalsState());
thread.WaitUntilDone(&result, &context, &elapsed);
- EXPECT_EQ(1u, result);
+ EXPECT_EQ(MOJO_RESULT_OK, result);
EXPECT_EQ(3u, context);
EXPECT_GT(elapsed, (2 - 1) * test::EpsilonTimeout());
EXPECT_LT(elapsed, (2 + 1) * test::EpsilonTimeout());
@@ -141,9 +144,10 @@ TEST(WaiterTest, Basic) {
WaitingThread thread(10 * test::EpsilonTimeout());
thread.Start();
ThreadSleep(5 * test::EpsilonTimeout());
- thread.waiter()->Awake(2, 4);
+ thread.waiter()->Awake(4, Awakable::AwakeReason::UNSATISFIABLE,
+ HandleSignalsState());
thread.WaitUntilDone(&result, &context, &elapsed);
- EXPECT_EQ(2u, result);
+ EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION, result);
EXPECT_EQ(4u, context);
EXPECT_GT(elapsed, (5 - 1) * test::EpsilonTimeout());
EXPECT_LT(elapsed, (5 + 1) * test::EpsilonTimeout());
@@ -166,7 +170,8 @@ TEST(WaiterTest, Basic) {
{
WaitingThread thread(MOJO_DEADLINE_INDEFINITE);
thread.Start();
- thread.waiter()->Awake(MOJO_RESULT_OK, 5);
+ thread.waiter()->Awake(5, Awakable::AwakeReason::SATISFIED,
+ HandleSignalsState());
thread.WaitUntilDone(&result, &context, &elapsed);
EXPECT_EQ(MOJO_RESULT_OK, result);
EXPECT_EQ(5u, context);
@@ -176,7 +181,8 @@ TEST(WaiterTest, Basic) {
// Awake before after thread start.
{
WaitingThread thread(MOJO_DEADLINE_INDEFINITE);
- thread.waiter()->Awake(MOJO_RESULT_CANCELLED, 6);
+ thread.waiter()->Awake(6, Awakable::AwakeReason::CANCELLED,
+ HandleSignalsState());
thread.Start();
thread.WaitUntilDone(&result, &context, &elapsed);
EXPECT_EQ(MOJO_RESULT_CANCELLED, result);
@@ -189,9 +195,10 @@ TEST(WaiterTest, Basic) {
WaitingThread thread(MOJO_DEADLINE_INDEFINITE);
thread.Start();
ThreadSleep(2 * test::EpsilonTimeout());
- thread.waiter()->Awake(1, 7);
+ thread.waiter()->Awake(7, Awakable::AwakeReason::UNSATISFIABLE,
+ HandleSignalsState());
thread.WaitUntilDone(&result, &context, &elapsed);
- EXPECT_EQ(1u, result);
+ EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION, result);
EXPECT_EQ(7u, context);
EXPECT_GT(elapsed, (2 - 1) * test::EpsilonTimeout());
EXPECT_LT(elapsed, (2 + 1) * test::EpsilonTimeout());
@@ -202,9 +209,10 @@ TEST(WaiterTest, Basic) {
WaitingThread thread(MOJO_DEADLINE_INDEFINITE);
thread.Start();
ThreadSleep(5 * test::EpsilonTimeout());
- thread.waiter()->Awake(2, 8);
+ thread.waiter()->Awake(8, Awakable::AwakeReason::CANCELLED,
+ HandleSignalsState());
thread.WaitUntilDone(&result, &context, &elapsed);
- EXPECT_EQ(2u, result);
+ EXPECT_EQ(MOJO_RESULT_CANCELLED, result);
EXPECT_EQ(8u, context);
EXPECT_GT(elapsed, (5 - 1) * test::EpsilonTimeout());
EXPECT_LT(elapsed, (5 + 1) * test::EpsilonTimeout());
@@ -253,8 +261,10 @@ TEST(WaiterTest, MultipleAwakes) {
{
WaitingThread thread(MOJO_DEADLINE_INDEFINITE);
thread.Start();
- thread.waiter()->Awake(MOJO_RESULT_OK, 1);
- thread.waiter()->Awake(1, 2);
+ thread.waiter()->Awake(1, Awakable::AwakeReason::SATISFIED,
+ HandleSignalsState());
+ thread.waiter()->Awake(2, Awakable::AwakeReason::UNSATISFIABLE,
+ HandleSignalsState());
thread.WaitUntilDone(&result, &context, &elapsed);
EXPECT_EQ(MOJO_RESULT_OK, result);
EXPECT_EQ(1u, context);
@@ -263,11 +273,13 @@ TEST(WaiterTest, MultipleAwakes) {
{
WaitingThread thread(MOJO_DEADLINE_INDEFINITE);
- thread.waiter()->Awake(1, 3);
+ thread.waiter()->Awake(3, Awakable::AwakeReason::UNSATISFIABLE,
+ HandleSignalsState());
thread.Start();
- thread.waiter()->Awake(MOJO_RESULT_OK, 4);
+ thread.waiter()->Awake(4, Awakable::AwakeReason::SATISFIED,
+ HandleSignalsState());
thread.WaitUntilDone(&result, &context, &elapsed);
- EXPECT_EQ(1u, result);
+ EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION, result);
EXPECT_EQ(3u, context);
EXPECT_LT(elapsed, test::EpsilonTimeout());
}
@@ -275,11 +287,13 @@ TEST(WaiterTest, MultipleAwakes) {
{
WaitingThread thread(MOJO_DEADLINE_INDEFINITE);
thread.Start();
- thread.waiter()->Awake(10, 5);
+ thread.waiter()->Awake(5, Awakable::AwakeReason::CANCELLED,
+ HandleSignalsState());
ThreadSleep(2 * test::EpsilonTimeout());
- thread.waiter()->Awake(20, 6);
+ thread.waiter()->Awake(6, Awakable::AwakeReason::UNSATISFIABLE,
+ HandleSignalsState());
thread.WaitUntilDone(&result, &context, &elapsed);
- EXPECT_EQ(10u, result);
+ EXPECT_EQ(MOJO_RESULT_CANCELLED, result);
EXPECT_EQ(5u, context);
EXPECT_LT(elapsed, test::EpsilonTimeout());
}
@@ -288,9 +302,11 @@ TEST(WaiterTest, MultipleAwakes) {
WaitingThread thread(10 * test::EpsilonTimeout());
thread.Start();
ThreadSleep(1 * test::EpsilonTimeout());
- thread.waiter()->Awake(MOJO_RESULT_FAILED_PRECONDITION, 7);
+ thread.waiter()->Awake(7, Awakable::AwakeReason::UNSATISFIABLE,
+ HandleSignalsState());
ThreadSleep(2 * test::EpsilonTimeout());
- thread.waiter()->Awake(MOJO_RESULT_OK, 8);
+ thread.waiter()->Awake(8, Awakable::AwakeReason::SATISFIED,
+ HandleSignalsState());
thread.WaitUntilDone(&result, &context, &elapsed);
EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION, result);
EXPECT_EQ(7u, context);
« no previous file with comments | « mojo/edk/system/waiter.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698