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

Unified Diff: mojo/system/waiter_list_unittest.cc

Issue 325213004: Mojo: Wrap the satisfied/unsatisfied wait flags state in a single object. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 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/system/waiter_list.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/system/waiter_list_unittest.cc
diff --git a/mojo/system/waiter_list_unittest.cc b/mojo/system/waiter_list_unittest.cc
index 9eeb4e71a5811ae30fa93f42be620c5eec5a63b7..eb776811976670294751f6e860ba1c2f45004af0 100644
--- a/mojo/system/waiter_list_unittest.cc
+++ b/mojo/system/waiter_list_unittest.cc
@@ -12,6 +12,7 @@
#include "base/threading/platform_thread.h" // For |Sleep()|.
#include "base/time/time.h"
#include "mojo/system/test_utils.h"
+#include "mojo/system/wait_flags_state.h"
#include "mojo/system/waiter.h"
#include "mojo/system/waiter_test_utils.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -65,9 +66,9 @@ TEST(WaiterListTest, BasicAwakeSatisfied) {
test::SimpleWaiterThread thread(&result);
waiter_list.AddWaiter(thread.waiter(), MOJO_WAIT_FLAG_READABLE, 0);
thread.Start();
- waiter_list.AwakeWaitersForStateChange(MOJO_WAIT_FLAG_READABLE,
- MOJO_WAIT_FLAG_READABLE |
- MOJO_WAIT_FLAG_WRITABLE);
+ waiter_list.AwakeWaitersForStateChange(
+ WaitFlagsState(MOJO_WAIT_FLAG_READABLE,
+ MOJO_WAIT_FLAG_READABLE | MOJO_WAIT_FLAG_WRITABLE));
waiter_list.RemoveWaiter(thread.waiter());
} // Join |thread|.
EXPECT_EQ(0, result);
@@ -77,9 +78,9 @@ TEST(WaiterListTest, BasicAwakeSatisfied) {
WaiterList waiter_list;
test::SimpleWaiterThread thread(&result);
waiter_list.AddWaiter(thread.waiter(), MOJO_WAIT_FLAG_WRITABLE, 1);
- waiter_list.AwakeWaitersForStateChange(MOJO_WAIT_FLAG_WRITABLE,
- MOJO_WAIT_FLAG_READABLE |
- MOJO_WAIT_FLAG_WRITABLE);
+ waiter_list.AwakeWaitersForStateChange(
+ WaitFlagsState(MOJO_WAIT_FLAG_WRITABLE,
+ MOJO_WAIT_FLAG_READABLE | MOJO_WAIT_FLAG_WRITABLE));
waiter_list.RemoveWaiter(thread.waiter());
waiter_list.RemoveWaiter(thread.waiter()); // Double-remove okay.
thread.Start();
@@ -93,9 +94,9 @@ TEST(WaiterListTest, BasicAwakeSatisfied) {
waiter_list.AddWaiter(thread.waiter(), MOJO_WAIT_FLAG_READABLE, 2);
thread.Start();
base::PlatformThread::Sleep(2 * test::EpsilonTimeout());
- waiter_list.AwakeWaitersForStateChange(MOJO_WAIT_FLAG_READABLE,
- MOJO_WAIT_FLAG_READABLE |
- MOJO_WAIT_FLAG_WRITABLE);
+ waiter_list.AwakeWaitersForStateChange(
+ WaitFlagsState(MOJO_WAIT_FLAG_READABLE,
+ MOJO_WAIT_FLAG_READABLE | MOJO_WAIT_FLAG_WRITABLE));
waiter_list.RemoveWaiter(thread.waiter());
} // Join |thread|.
EXPECT_EQ(2, result);
@@ -110,7 +111,8 @@ TEST(WaiterListTest, BasicAwakeUnsatisfiable) {
test::SimpleWaiterThread thread(&result);
waiter_list.AddWaiter(thread.waiter(), MOJO_WAIT_FLAG_READABLE, 0);
thread.Start();
- waiter_list.AwakeWaitersForStateChange(0, MOJO_WAIT_FLAG_WRITABLE);
+ waiter_list.AwakeWaitersForStateChange(
+ WaitFlagsState(MOJO_WAIT_FLAG_NONE, MOJO_WAIT_FLAG_WRITABLE));
waiter_list.RemoveWaiter(thread.waiter());
} // Join |thread|.
EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION, result);
@@ -120,8 +122,8 @@ TEST(WaiterListTest, BasicAwakeUnsatisfiable) {
WaiterList waiter_list;
test::SimpleWaiterThread thread(&result);
waiter_list.AddWaiter(thread.waiter(), MOJO_WAIT_FLAG_WRITABLE, 1);
- waiter_list.AwakeWaitersForStateChange(MOJO_WAIT_FLAG_READABLE,
- MOJO_WAIT_FLAG_READABLE);
+ waiter_list.AwakeWaitersForStateChange(
+ WaitFlagsState(MOJO_WAIT_FLAG_READABLE, MOJO_WAIT_FLAG_READABLE));
waiter_list.RemoveWaiter(thread.waiter());
thread.Start();
} // Join |thread|.
@@ -134,7 +136,8 @@ TEST(WaiterListTest, BasicAwakeUnsatisfiable) {
waiter_list.AddWaiter(thread.waiter(), MOJO_WAIT_FLAG_READABLE, 2);
thread.Start();
base::PlatformThread::Sleep(2 * test::EpsilonTimeout());
- waiter_list.AwakeWaitersForStateChange(0, MOJO_WAIT_FLAG_WRITABLE);
+ waiter_list.AwakeWaitersForStateChange(
+ WaitFlagsState(MOJO_WAIT_FLAG_NONE, MOJO_WAIT_FLAG_WRITABLE));
waiter_list.RemoveWaiter(thread.waiter());
waiter_list.RemoveWaiter(thread.waiter()); // Double-remove okay.
} // Join |thread|.
@@ -172,9 +175,9 @@ TEST(WaiterListTest, MultipleWaiters) {
waiter_list.AddWaiter(thread2.waiter(), MOJO_WAIT_FLAG_WRITABLE, 3);
thread2.Start();
base::PlatformThread::Sleep(2 * test::EpsilonTimeout());
- waiter_list.AwakeWaitersForStateChange(MOJO_WAIT_FLAG_READABLE,
- MOJO_WAIT_FLAG_READABLE |
- MOJO_WAIT_FLAG_WRITABLE);
+ waiter_list.AwakeWaitersForStateChange(
+ WaitFlagsState(MOJO_WAIT_FLAG_READABLE,
+ MOJO_WAIT_FLAG_READABLE | MOJO_WAIT_FLAG_WRITABLE));
waiter_list.RemoveWaiter(thread1.waiter());
waiter_list.CancelAllWaiters();
} // Join threads.
@@ -191,7 +194,8 @@ TEST(WaiterListTest, MultipleWaiters) {
waiter_list.AddWaiter(thread2.waiter(), MOJO_WAIT_FLAG_WRITABLE, 5);
thread2.Start();
base::PlatformThread::Sleep(2 * test::EpsilonTimeout());
- waiter_list.AwakeWaitersForStateChange(0, MOJO_WAIT_FLAG_READABLE);
+ waiter_list.AwakeWaitersForStateChange(
+ WaitFlagsState(MOJO_WAIT_FLAG_NONE, MOJO_WAIT_FLAG_READABLE));
waiter_list.RemoveWaiter(thread2.waiter());
waiter_list.CancelAllWaiters();
} // Join threads.
@@ -208,9 +212,9 @@ TEST(WaiterListTest, MultipleWaiters) {
base::PlatformThread::Sleep(1 * test::EpsilonTimeout());
// Should do nothing.
- waiter_list.AwakeWaitersForStateChange(0,
- MOJO_WAIT_FLAG_READABLE |
- MOJO_WAIT_FLAG_WRITABLE);
+ waiter_list.AwakeWaitersForStateChange(
+ WaitFlagsState(MOJO_WAIT_FLAG_NONE,
+ MOJO_WAIT_FLAG_READABLE | MOJO_WAIT_FLAG_WRITABLE));
test::SimpleWaiterThread thread2(&result2);
waiter_list.AddWaiter(thread2.waiter(), MOJO_WAIT_FLAG_WRITABLE, 7);
@@ -219,9 +223,9 @@ TEST(WaiterListTest, MultipleWaiters) {
base::PlatformThread::Sleep(1 * test::EpsilonTimeout());
// Awake #1.
- waiter_list.AwakeWaitersForStateChange(MOJO_WAIT_FLAG_READABLE,
- MOJO_WAIT_FLAG_READABLE |
- MOJO_WAIT_FLAG_WRITABLE);
+ waiter_list.AwakeWaitersForStateChange(
+ WaitFlagsState(MOJO_WAIT_FLAG_READABLE,
+ MOJO_WAIT_FLAG_READABLE | MOJO_WAIT_FLAG_WRITABLE));
waiter_list.RemoveWaiter(thread1.waiter());
base::PlatformThread::Sleep(1 * test::EpsilonTimeout());
@@ -237,7 +241,8 @@ TEST(WaiterListTest, MultipleWaiters) {
base::PlatformThread::Sleep(1 * test::EpsilonTimeout());
// Awake #2 and #3 for unsatisfiability.
- waiter_list.AwakeWaitersForStateChange(0, MOJO_WAIT_FLAG_READABLE);
+ waiter_list.AwakeWaitersForStateChange(
+ WaitFlagsState(MOJO_WAIT_FLAG_NONE, MOJO_WAIT_FLAG_READABLE));
waiter_list.RemoveWaiter(thread2.waiter());
waiter_list.RemoveWaiter(thread3.waiter());
« no previous file with comments | « mojo/system/waiter_list.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698