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

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

Issue 2001673003: EDK: Add Core::DuplicateHandleWithReducedRights(). (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 4 years, 7 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
« no previous file with comments | « mojo/edk/system/dispatcher.cc ('k') | mojo/edk/system/mock_simple_dispatcher.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/dispatcher.h" 5 #include "mojo/edk/system/dispatcher.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <thread> 8 #include <thread>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
134 EXPECT_EQ(0u, hss.satisfied_signals); 134 EXPECT_EQ(0u, hss.satisfied_signals);
135 EXPECT_EQ(0u, hss.satisfiable_signals); 135 EXPECT_EQ(0u, hss.satisfiable_signals);
136 hss = HandleSignalsState(); 136 hss = HandleSignalsState();
137 d->RemoveAwakable(&w, &hss); 137 d->RemoveAwakable(&w, &hss);
138 EXPECT_EQ(0u, hss.satisfied_signals); 138 EXPECT_EQ(0u, hss.satisfied_signals);
139 EXPECT_EQ(0u, hss.satisfiable_signals); 139 EXPECT_EQ(0u, hss.satisfiable_signals);
140 } 140 }
141 141
142 enum class DispatcherOp { 142 enum class DispatcherOp {
143 CLOSE = 0, 143 CLOSE = 0,
144 DUPLICATE_DISPATCHER,
144 WRITE_MESSAGE, 145 WRITE_MESSAGE,
145 READ_MESSAGE, 146 READ_MESSAGE,
146 SET_DATA_PIPE_PRODUCER_OPTIONS, 147 SET_DATA_PIPE_PRODUCER_OPTIONS,
147 GET_DATA_PIPE_PRODUCER_OPTIONS, 148 GET_DATA_PIPE_PRODUCER_OPTIONS,
148 WRITE_DATA, 149 WRITE_DATA,
149 BEGIN_WRITE_DATA, 150 BEGIN_WRITE_DATA,
150 END_WRITE_DATA, 151 END_WRITE_DATA,
151 SET_DATA_PIPE_CONSUMER_OPTIONS, 152 SET_DATA_PIPE_CONSUMER_OPTIONS,
152 GET_DATA_PIPE_CONSUMER_OPTIONS, 153 GET_DATA_PIPE_CONSUMER_OPTIONS,
153 READ_DATA, 154 READ_DATA,
(...skipping 17 matching lines...) Expand all
171 172
172 Waiter waiter; 173 Waiter waiter;
173 waiter.Init(); 174 waiter.Init();
174 switch (op) { 175 switch (op) {
175 case DispatcherOp::CLOSE: { 176 case DispatcherOp::CLOSE: {
176 MojoResult r = dispatcher->Close(); 177 MojoResult r = dispatcher->Close();
177 EXPECT_TRUE(r == MOJO_RESULT_OK || r == MOJO_RESULT_INVALID_ARGUMENT) 178 EXPECT_TRUE(r == MOJO_RESULT_OK || r == MOJO_RESULT_INVALID_ARGUMENT)
178 << "Result: " << r; 179 << "Result: " << r;
179 break; 180 break;
180 } 181 }
182 case DispatcherOp::DUPLICATE_DISPATCHER: {
183 RefPtr<Dispatcher> new_dispatcher;
184 MojoResult r = dispatcher->DuplicateDispatcher(&new_dispatcher);
185 if (r == MOJO_RESULT_OK) {
186 EXPECT_TRUE(new_dispatcher);
187 EXPECT_EQ(MOJO_RESULT_OK, new_dispatcher->Close());
188 } else {
189 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, r);
190 EXPECT_FALSE(new_dispatcher);
191 }
192 break;
193 }
181 case DispatcherOp::WRITE_MESSAGE: 194 case DispatcherOp::WRITE_MESSAGE:
182 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, 195 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT,
183 dispatcher->WriteMessage(NullUserPointer(), 0, nullptr, 196 dispatcher->WriteMessage(NullUserPointer(), 0, nullptr,
184 MOJO_WRITE_MESSAGE_FLAG_NONE)); 197 MOJO_WRITE_MESSAGE_FLAG_NONE));
185 break; 198 break;
186 case DispatcherOp::READ_MESSAGE: 199 case DispatcherOp::READ_MESSAGE:
187 EXPECT_EQ( 200 EXPECT_EQ(
188 MOJO_RESULT_INVALID_ARGUMENT, 201 MOJO_RESULT_INVALID_ARGUMENT,
189 dispatcher->ReadMessage(NullUserPointer(), NullUserPointer(), nullptr, 202 dispatcher->ReadMessage(NullUserPointer(), NullUserPointer(), nullptr,
190 nullptr, MOJO_WRITE_MESSAGE_FLAG_NONE)); 203 nullptr, MOJO_WRITE_MESSAGE_FLAG_NONE));
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
333 for (auto& thread : threads) 346 for (auto& thread : threads)
334 thread.join(); 347 thread.join();
335 348
336 EXPECT_EQ(MOJO_RESULT_OK, d->Close()); 349 EXPECT_EQ(MOJO_RESULT_OK, d->Close());
337 } 350 }
338 } 351 }
339 352
340 } // namespace 353 } // namespace
341 } // namespace system 354 } // namespace system
342 } // namespace mojo 355 } // namespace mojo
OLDNEW
« no previous file with comments | « mojo/edk/system/dispatcher.cc ('k') | mojo/edk/system/mock_simple_dispatcher.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698