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

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

Issue 1350023003: Add a Mojo EDK for Chrome that uses one OS pipe per message pipe. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: convert remaining MP tests and simplify RawChannel destruction Created 5 years, 3 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/core_test_base.h" 5 #include "mojo/edk/system/core_test_base.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/memory/ref_counted.h" 10 #include "base/memory/ref_counted.h"
(...skipping 25 matching lines...) Expand all
36 explicit MockDispatcher(CoreTestBase::MockHandleInfo* info) : info_(info) { 36 explicit MockDispatcher(CoreTestBase::MockHandleInfo* info) : info_(info) {
37 CHECK(info_); 37 CHECK(info_);
38 info_->IncrementCtorCallCount(); 38 info_->IncrementCtorCallCount();
39 } 39 }
40 40
41 ~MockDispatcher() override { info_->IncrementDtorCallCount(); } 41 ~MockDispatcher() override { info_->IncrementDtorCallCount(); }
42 42
43 // |Dispatcher| protected methods: 43 // |Dispatcher| protected methods:
44 void CloseImplNoLock() override { 44 void CloseImplNoLock() override {
45 info_->IncrementCloseCallCount(); 45 info_->IncrementCloseCallCount();
46 mutex().AssertHeld(); 46 lock().AssertAcquired();
47 } 47 }
48 48
49 MojoResult WriteMessageImplNoLock( 49 MojoResult WriteMessageImplNoLock(
50 UserPointer<const void> bytes, 50 UserPointer<const void> bytes,
51 uint32_t num_bytes, 51 uint32_t num_bytes,
52 std::vector<DispatcherTransport>* transports, 52 std::vector<DispatcherTransport>* transports,
53 MojoWriteMessageFlags /*flags*/) override { 53 MojoWriteMessageFlags /*flags*/) override {
54 info_->IncrementWriteMessageCallCount(); 54 info_->IncrementWriteMessageCallCount();
55 mutex().AssertHeld(); 55 lock().AssertAcquired();
56 56
57 if (num_bytes > GetConfiguration().max_message_num_bytes) 57 if (num_bytes > GetConfiguration().max_message_num_bytes)
58 return MOJO_RESULT_RESOURCE_EXHAUSTED; 58 return MOJO_RESULT_RESOURCE_EXHAUSTED;
59 59
60 if (transports) 60 if (transports)
61 return MOJO_RESULT_UNIMPLEMENTED; 61 return MOJO_RESULT_UNIMPLEMENTED;
62 62
63 return MOJO_RESULT_OK; 63 return MOJO_RESULT_OK;
64 } 64 }
65 65
66 MojoResult ReadMessageImplNoLock(UserPointer<void> bytes, 66 MojoResult ReadMessageImplNoLock(UserPointer<void> bytes,
67 UserPointer<uint32_t> num_bytes, 67 UserPointer<uint32_t> num_bytes,
68 DispatcherVector* dispatchers, 68 DispatcherVector* dispatchers,
69 uint32_t* num_dispatchers, 69 uint32_t* num_dispatchers,
70 MojoReadMessageFlags /*flags*/) override { 70 MojoReadMessageFlags /*flags*/) override {
71 info_->IncrementReadMessageCallCount(); 71 info_->IncrementReadMessageCallCount();
72 mutex().AssertHeld(); 72 lock().AssertAcquired();
73 73
74 if (num_dispatchers) { 74 if (num_dispatchers) {
75 *num_dispatchers = 1; 75 *num_dispatchers = 1;
76 if (dispatchers) { 76 if (dispatchers) {
77 // Okay to leave an invalid dispatcher. 77 // Okay to leave an invalid dispatcher.
78 dispatchers->resize(1); 78 dispatchers->resize(1);
79 } 79 }
80 } 80 }
81 81
82 return MOJO_RESULT_OK; 82 return MOJO_RESULT_OK;
83 } 83 }
84 84
85 MojoResult WriteDataImplNoLock(UserPointer<const void> /*elements*/, 85 MojoResult WriteDataImplNoLock(UserPointer<const void> /*elements*/,
86 UserPointer<uint32_t> /*num_bytes*/, 86 UserPointer<uint32_t> /*num_bytes*/,
87 MojoWriteDataFlags /*flags*/) override { 87 MojoWriteDataFlags /*flags*/) override {
88 info_->IncrementWriteDataCallCount(); 88 info_->IncrementWriteDataCallCount();
89 mutex().AssertHeld(); 89 lock().AssertAcquired();
90 return MOJO_RESULT_UNIMPLEMENTED; 90 return MOJO_RESULT_UNIMPLEMENTED;
91 } 91 }
92 92
93 MojoResult BeginWriteDataImplNoLock( 93 MojoResult BeginWriteDataImplNoLock(
94 UserPointer<void*> /*buffer*/, 94 UserPointer<void*> /*buffer*/,
95 UserPointer<uint32_t> /*buffer_num_bytes*/, 95 UserPointer<uint32_t> /*buffer_num_bytes*/,
96 MojoWriteDataFlags /*flags*/) override { 96 MojoWriteDataFlags /*flags*/) override {
97 info_->IncrementBeginWriteDataCallCount(); 97 info_->IncrementBeginWriteDataCallCount();
98 mutex().AssertHeld(); 98 lock().AssertAcquired();
99 return MOJO_RESULT_UNIMPLEMENTED; 99 return MOJO_RESULT_UNIMPLEMENTED;
100 } 100 }
101 101
102 MojoResult EndWriteDataImplNoLock(uint32_t /*num_bytes_written*/) override { 102 MojoResult EndWriteDataImplNoLock(uint32_t /*num_bytes_written*/) override {
103 info_->IncrementEndWriteDataCallCount(); 103 info_->IncrementEndWriteDataCallCount();
104 mutex().AssertHeld(); 104 lock().AssertAcquired();
105 return MOJO_RESULT_UNIMPLEMENTED; 105 return MOJO_RESULT_UNIMPLEMENTED;
106 } 106 }
107 107
108 MojoResult ReadDataImplNoLock(UserPointer<void> /*elements*/, 108 MojoResult ReadDataImplNoLock(UserPointer<void> /*elements*/,
109 UserPointer<uint32_t> /*num_bytes*/, 109 UserPointer<uint32_t> /*num_bytes*/,
110 MojoReadDataFlags /*flags*/) override { 110 MojoReadDataFlags /*flags*/) override {
111 info_->IncrementReadDataCallCount(); 111 info_->IncrementReadDataCallCount();
112 mutex().AssertHeld(); 112 lock().AssertAcquired();
113 return MOJO_RESULT_UNIMPLEMENTED; 113 return MOJO_RESULT_UNIMPLEMENTED;
114 } 114 }
115 115
116 MojoResult BeginReadDataImplNoLock(UserPointer<const void*> /*buffer*/, 116 MojoResult BeginReadDataImplNoLock(UserPointer<const void*> /*buffer*/,
117 UserPointer<uint32_t> /*buffer_num_bytes*/, 117 UserPointer<uint32_t> /*buffer_num_bytes*/,
118 MojoReadDataFlags /*flags*/) override { 118 MojoReadDataFlags /*flags*/) override {
119 info_->IncrementBeginReadDataCallCount(); 119 info_->IncrementBeginReadDataCallCount();
120 mutex().AssertHeld(); 120 lock().AssertAcquired();
121 return MOJO_RESULT_UNIMPLEMENTED; 121 return MOJO_RESULT_UNIMPLEMENTED;
122 } 122 }
123 123
124 MojoResult EndReadDataImplNoLock(uint32_t /*num_bytes_read*/) override { 124 MojoResult EndReadDataImplNoLock(uint32_t /*num_bytes_read*/) override {
125 info_->IncrementEndReadDataCallCount(); 125 info_->IncrementEndReadDataCallCount();
126 mutex().AssertHeld(); 126 lock().AssertAcquired();
127 return MOJO_RESULT_UNIMPLEMENTED; 127 return MOJO_RESULT_UNIMPLEMENTED;
128 } 128 }
129 129
130 MojoResult AddAwakableImplNoLock(Awakable* awakable, 130 MojoResult AddAwakableImplNoLock(Awakable* awakable,
131 MojoHandleSignals /*signals*/, 131 MojoHandleSignals /*signals*/,
132 uint32_t /*context*/, 132 uint32_t /*context*/,
133 HandleSignalsState* signals_state) override { 133 HandleSignalsState* signals_state) override {
134 info_->IncrementAddAwakableCallCount(); 134 info_->IncrementAddAwakableCallCount();
135 mutex().AssertHeld(); 135 lock().AssertAcquired();
136 if (signals_state) 136 if (signals_state)
137 *signals_state = HandleSignalsState(); 137 *signals_state = HandleSignalsState();
138 if (info_->IsAddAwakableAllowed()) { 138 if (info_->IsAddAwakableAllowed()) {
139 info_->AwakableWasAdded(awakable); 139 info_->AwakableWasAdded(awakable);
140 return MOJO_RESULT_OK; 140 return MOJO_RESULT_OK;
141 } 141 }
142 142
143 return MOJO_RESULT_FAILED_PRECONDITION; 143 return MOJO_RESULT_FAILED_PRECONDITION;
144 } 144 }
145 145
146 void RemoveAwakableImplNoLock(Awakable* /*awakable*/, 146 void RemoveAwakableImplNoLock(Awakable* /*awakable*/,
147 HandleSignalsState* signals_state) override { 147 HandleSignalsState* signals_state) override {
148 info_->IncrementRemoveAwakableCallCount(); 148 info_->IncrementRemoveAwakableCallCount();
149 mutex().AssertHeld(); 149 lock().AssertAcquired();
150 if (signals_state) 150 if (signals_state)
151 *signals_state = HandleSignalsState(); 151 *signals_state = HandleSignalsState();
152 } 152 }
153 153
154 void CancelAllAwakablesNoLock() override { 154 void CancelAllAwakablesNoLock() override {
155 info_->IncrementCancelAllAwakablesCallCount(); 155 info_->IncrementCancelAllAwakablesCallCount();
156 mutex().AssertHeld(); 156 lock().AssertAcquired();
157 } 157 }
158 158
159 scoped_refptr<Dispatcher> CreateEquivalentDispatcherAndCloseImplNoLock() 159 scoped_refptr<Dispatcher> CreateEquivalentDispatcherAndCloseImplNoLock()
160 override { 160 override {
161 return Create(info_); 161 return Create(info_);
162 } 162 }
163 163
164 CoreTestBase::MockHandleInfo* const info_; 164 CoreTestBase::MockHandleInfo* const info_;
165 165
166 MOJO_DISALLOW_COPY_AND_ASSIGN(MockDispatcher); 166 MOJO_DISALLOW_COPY_AND_ASSIGN(MockDispatcher);
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
208 add_awakable_call_count_(0), 208 add_awakable_call_count_(0),
209 remove_awakable_call_count_(0), 209 remove_awakable_call_count_(0),
210 cancel_all_awakables_call_count_(0), 210 cancel_all_awakables_call_count_(0),
211 add_awakable_allowed_(false) { 211 add_awakable_allowed_(false) {
212 } 212 }
213 213
214 CoreTestBase_MockHandleInfo::~CoreTestBase_MockHandleInfo() { 214 CoreTestBase_MockHandleInfo::~CoreTestBase_MockHandleInfo() {
215 } 215 }
216 216
217 unsigned CoreTestBase_MockHandleInfo::GetCtorCallCount() const { 217 unsigned CoreTestBase_MockHandleInfo::GetCtorCallCount() const {
218 MutexLocker locker(&mutex_); 218 base::AutoLock locker(lock_);
219 return ctor_call_count_; 219 return ctor_call_count_;
220 } 220 }
221 221
222 unsigned CoreTestBase_MockHandleInfo::GetDtorCallCount() const { 222 unsigned CoreTestBase_MockHandleInfo::GetDtorCallCount() const {
223 MutexLocker locker(&mutex_); 223 base::AutoLock locker(lock_);
224 return dtor_call_count_; 224 return dtor_call_count_;
225 } 225 }
226 226
227 unsigned CoreTestBase_MockHandleInfo::GetCloseCallCount() const { 227 unsigned CoreTestBase_MockHandleInfo::GetCloseCallCount() const {
228 MutexLocker locker(&mutex_); 228 base::AutoLock locker(lock_);
229 return close_call_count_; 229 return close_call_count_;
230 } 230 }
231 231
232 unsigned CoreTestBase_MockHandleInfo::GetWriteMessageCallCount() const { 232 unsigned CoreTestBase_MockHandleInfo::GetWriteMessageCallCount() const {
233 MutexLocker locker(&mutex_); 233 base::AutoLock locker(lock_);
234 return write_message_call_count_; 234 return write_message_call_count_;
235 } 235 }
236 236
237 unsigned CoreTestBase_MockHandleInfo::GetReadMessageCallCount() const { 237 unsigned CoreTestBase_MockHandleInfo::GetReadMessageCallCount() const {
238 MutexLocker locker(&mutex_); 238 base::AutoLock locker(lock_);
239 return read_message_call_count_; 239 return read_message_call_count_;
240 } 240 }
241 241
242 unsigned CoreTestBase_MockHandleInfo::GetWriteDataCallCount() const { 242 unsigned CoreTestBase_MockHandleInfo::GetWriteDataCallCount() const {
243 MutexLocker locker(&mutex_); 243 base::AutoLock locker(lock_);
244 return write_data_call_count_; 244 return write_data_call_count_;
245 } 245 }
246 246
247 unsigned CoreTestBase_MockHandleInfo::GetBeginWriteDataCallCount() const { 247 unsigned CoreTestBase_MockHandleInfo::GetBeginWriteDataCallCount() const {
248 MutexLocker locker(&mutex_); 248 base::AutoLock locker(lock_);
249 return begin_write_data_call_count_; 249 return begin_write_data_call_count_;
250 } 250 }
251 251
252 unsigned CoreTestBase_MockHandleInfo::GetEndWriteDataCallCount() const { 252 unsigned CoreTestBase_MockHandleInfo::GetEndWriteDataCallCount() const {
253 MutexLocker locker(&mutex_); 253 base::AutoLock locker(lock_);
254 return end_write_data_call_count_; 254 return end_write_data_call_count_;
255 } 255 }
256 256
257 unsigned CoreTestBase_MockHandleInfo::GetReadDataCallCount() const { 257 unsigned CoreTestBase_MockHandleInfo::GetReadDataCallCount() const {
258 MutexLocker locker(&mutex_); 258 base::AutoLock locker(lock_);
259 return read_data_call_count_; 259 return read_data_call_count_;
260 } 260 }
261 261
262 unsigned CoreTestBase_MockHandleInfo::GetBeginReadDataCallCount() const { 262 unsigned CoreTestBase_MockHandleInfo::GetBeginReadDataCallCount() const {
263 MutexLocker locker(&mutex_); 263 base::AutoLock locker(lock_);
264 return begin_read_data_call_count_; 264 return begin_read_data_call_count_;
265 } 265 }
266 266
267 unsigned CoreTestBase_MockHandleInfo::GetEndReadDataCallCount() const { 267 unsigned CoreTestBase_MockHandleInfo::GetEndReadDataCallCount() const {
268 MutexLocker locker(&mutex_); 268 base::AutoLock locker(lock_);
269 return end_read_data_call_count_; 269 return end_read_data_call_count_;
270 } 270 }
271 271
272 unsigned CoreTestBase_MockHandleInfo::GetAddAwakableCallCount() const { 272 unsigned CoreTestBase_MockHandleInfo::GetAddAwakableCallCount() const {
273 MutexLocker locker(&mutex_); 273 base::AutoLock locker(lock_);
274 return add_awakable_call_count_; 274 return add_awakable_call_count_;
275 } 275 }
276 276
277 unsigned CoreTestBase_MockHandleInfo::GetRemoveAwakableCallCount() const { 277 unsigned CoreTestBase_MockHandleInfo::GetRemoveAwakableCallCount() const {
278 MutexLocker locker(&mutex_); 278 base::AutoLock locker(lock_);
279 return remove_awakable_call_count_; 279 return remove_awakable_call_count_;
280 } 280 }
281 281
282 unsigned CoreTestBase_MockHandleInfo::GetCancelAllAwakablesCallCount() const { 282 unsigned CoreTestBase_MockHandleInfo::GetCancelAllAwakablesCallCount() const {
283 MutexLocker locker(&mutex_); 283 base::AutoLock locker(lock_);
284 return cancel_all_awakables_call_count_; 284 return cancel_all_awakables_call_count_;
285 } 285 }
286 286
287 size_t CoreTestBase_MockHandleInfo::GetAddedAwakableSize() const { 287 size_t CoreTestBase_MockHandleInfo::GetAddedAwakableSize() const {
288 MutexLocker locker(&mutex_); 288 base::AutoLock locker(lock_);
289 return added_awakables_.size(); 289 return added_awakables_.size();
290 } 290 }
291 291
292 Awakable* CoreTestBase_MockHandleInfo::GetAddedAwakableAt(unsigned i) const { 292 Awakable* CoreTestBase_MockHandleInfo::GetAddedAwakableAt(unsigned i) const {
293 MutexLocker locker(&mutex_); 293 base::AutoLock locker(lock_);
294 return added_awakables_[i]; 294 return added_awakables_[i];
295 } 295 }
296 296
297 void CoreTestBase_MockHandleInfo::IncrementCtorCallCount() { 297 void CoreTestBase_MockHandleInfo::IncrementCtorCallCount() {
298 MutexLocker locker(&mutex_); 298 base::AutoLock locker(lock_);
299 ctor_call_count_++; 299 ctor_call_count_++;
300 } 300 }
301 301
302 void CoreTestBase_MockHandleInfo::IncrementDtorCallCount() { 302 void CoreTestBase_MockHandleInfo::IncrementDtorCallCount() {
303 MutexLocker locker(&mutex_); 303 base::AutoLock locker(lock_);
304 dtor_call_count_++; 304 dtor_call_count_++;
305 } 305 }
306 306
307 void CoreTestBase_MockHandleInfo::IncrementCloseCallCount() { 307 void CoreTestBase_MockHandleInfo::IncrementCloseCallCount() {
308 MutexLocker locker(&mutex_); 308 base::AutoLock locker(lock_);
309 close_call_count_++; 309 close_call_count_++;
310 } 310 }
311 311
312 void CoreTestBase_MockHandleInfo::IncrementWriteMessageCallCount() { 312 void CoreTestBase_MockHandleInfo::IncrementWriteMessageCallCount() {
313 MutexLocker locker(&mutex_); 313 base::AutoLock locker(lock_);
314 write_message_call_count_++; 314 write_message_call_count_++;
315 } 315 }
316 316
317 void CoreTestBase_MockHandleInfo::IncrementReadMessageCallCount() { 317 void CoreTestBase_MockHandleInfo::IncrementReadMessageCallCount() {
318 MutexLocker locker(&mutex_); 318 base::AutoLock locker(lock_);
319 read_message_call_count_++; 319 read_message_call_count_++;
320 } 320 }
321 321
322 void CoreTestBase_MockHandleInfo::IncrementWriteDataCallCount() { 322 void CoreTestBase_MockHandleInfo::IncrementWriteDataCallCount() {
323 MutexLocker locker(&mutex_); 323 base::AutoLock locker(lock_);
324 write_data_call_count_++; 324 write_data_call_count_++;
325 } 325 }
326 326
327 void CoreTestBase_MockHandleInfo::IncrementBeginWriteDataCallCount() { 327 void CoreTestBase_MockHandleInfo::IncrementBeginWriteDataCallCount() {
328 MutexLocker locker(&mutex_); 328 base::AutoLock locker(lock_);
329 begin_write_data_call_count_++; 329 begin_write_data_call_count_++;
330 } 330 }
331 331
332 void CoreTestBase_MockHandleInfo::IncrementEndWriteDataCallCount() { 332 void CoreTestBase_MockHandleInfo::IncrementEndWriteDataCallCount() {
333 MutexLocker locker(&mutex_); 333 base::AutoLock locker(lock_);
334 end_write_data_call_count_++; 334 end_write_data_call_count_++;
335 } 335 }
336 336
337 void CoreTestBase_MockHandleInfo::IncrementReadDataCallCount() { 337 void CoreTestBase_MockHandleInfo::IncrementReadDataCallCount() {
338 MutexLocker locker(&mutex_); 338 base::AutoLock locker(lock_);
339 read_data_call_count_++; 339 read_data_call_count_++;
340 } 340 }
341 341
342 void CoreTestBase_MockHandleInfo::IncrementBeginReadDataCallCount() { 342 void CoreTestBase_MockHandleInfo::IncrementBeginReadDataCallCount() {
343 MutexLocker locker(&mutex_); 343 base::AutoLock locker(lock_);
344 begin_read_data_call_count_++; 344 begin_read_data_call_count_++;
345 } 345 }
346 346
347 void CoreTestBase_MockHandleInfo::IncrementEndReadDataCallCount() { 347 void CoreTestBase_MockHandleInfo::IncrementEndReadDataCallCount() {
348 MutexLocker locker(&mutex_); 348 base::AutoLock locker(lock_);
349 end_read_data_call_count_++; 349 end_read_data_call_count_++;
350 } 350 }
351 351
352 void CoreTestBase_MockHandleInfo::IncrementAddAwakableCallCount() { 352 void CoreTestBase_MockHandleInfo::IncrementAddAwakableCallCount() {
353 MutexLocker locker(&mutex_); 353 base::AutoLock locker(lock_);
354 add_awakable_call_count_++; 354 add_awakable_call_count_++;
355 } 355 }
356 356
357 void CoreTestBase_MockHandleInfo::IncrementRemoveAwakableCallCount() { 357 void CoreTestBase_MockHandleInfo::IncrementRemoveAwakableCallCount() {
358 MutexLocker locker(&mutex_); 358 base::AutoLock locker(lock_);
359 remove_awakable_call_count_++; 359 remove_awakable_call_count_++;
360 } 360 }
361 361
362 void CoreTestBase_MockHandleInfo::IncrementCancelAllAwakablesCallCount() { 362 void CoreTestBase_MockHandleInfo::IncrementCancelAllAwakablesCallCount() {
363 MutexLocker locker(&mutex_); 363 base::AutoLock locker(lock_);
364 cancel_all_awakables_call_count_++; 364 cancel_all_awakables_call_count_++;
365 } 365 }
366 366
367 void CoreTestBase_MockHandleInfo::AllowAddAwakable(bool alllow) { 367 void CoreTestBase_MockHandleInfo::AllowAddAwakable(bool alllow) {
368 MutexLocker locker(&mutex_); 368 base::AutoLock locker(lock_);
369 add_awakable_allowed_ = alllow; 369 add_awakable_allowed_ = alllow;
370 } 370 }
371 371
372 bool CoreTestBase_MockHandleInfo::IsAddAwakableAllowed() const { 372 bool CoreTestBase_MockHandleInfo::IsAddAwakableAllowed() const {
373 MutexLocker locker(&mutex_); 373 base::AutoLock locker(lock_);
374 return add_awakable_allowed_; 374 return add_awakable_allowed_;
375 } 375 }
376 376
377 void CoreTestBase_MockHandleInfo::AwakableWasAdded(Awakable* awakable) { 377 void CoreTestBase_MockHandleInfo::AwakableWasAdded(Awakable* awakable) {
378 MutexLocker locker(&mutex_); 378 base::AutoLock locker(lock_);
379 added_awakables_.push_back(awakable); 379 added_awakables_.push_back(awakable);
380 } 380 }
381 381
382 } // namespace test 382 } // namespace test
383 } // namespace system 383 } // namespace system
384 } // namespace mojo 384 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698