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

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

Issue 1585493002: [mojo] Ports EDK (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 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 <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <vector> 10 #include <vector>
(...skipping 13 matching lines...) Expand all
24 24
25 // MockDispatcher -------------------------------------------------------------- 25 // MockDispatcher --------------------------------------------------------------
26 26
27 class MockDispatcher : public Dispatcher { 27 class MockDispatcher : public Dispatcher {
28 public: 28 public:
29 static scoped_refptr<MockDispatcher> Create( 29 static scoped_refptr<MockDispatcher> Create(
30 CoreTestBase::MockHandleInfo* info) { 30 CoreTestBase::MockHandleInfo* info) {
31 return make_scoped_refptr(new MockDispatcher(info)); 31 return make_scoped_refptr(new MockDispatcher(info));
32 } 32 }
33 33
34 // |Dispatcher| private methods: 34 // Dispatcher:
35 Type GetType() const override { return Type::UNKNOWN; } 35 Type GetType() const override { return Type::UNKNOWN; }
36 36
37 private: 37 MojoResult Close() override {
38 explicit MockDispatcher(CoreTestBase::MockHandleInfo* info) : info_(info) { 38 info_->IncrementCloseCallCount();
39 CHECK(info_); 39 return MOJO_RESULT_OK;
40 info_->IncrementCtorCallCount();
41 } 40 }
42 41
43 ~MockDispatcher() override { info_->IncrementDtorCallCount(); } 42 MojoResult WriteMessage(
44
45 // |Dispatcher| protected methods:
46 void CloseImplNoLock() override {
47 info_->IncrementCloseCallCount();
48 lock().AssertAcquired();
49 }
50
51 MojoResult WriteMessageImplNoLock(
52 const void* bytes, 43 const void* bytes,
53 uint32_t num_bytes, 44 uint32_t num_bytes,
54 std::vector<DispatcherTransport>* transports, 45 const DispatcherInTransit* dispatchers,
46 uint32_t num_dispatchers,
55 MojoWriteMessageFlags /*flags*/) override { 47 MojoWriteMessageFlags /*flags*/) override {
56 info_->IncrementWriteMessageCallCount(); 48 info_->IncrementWriteMessageCallCount();
57 lock().AssertAcquired();
58 49
59 if (num_bytes > GetConfiguration().max_message_num_bytes) 50 if (num_bytes > GetConfiguration().max_message_num_bytes)
60 return MOJO_RESULT_RESOURCE_EXHAUSTED; 51 return MOJO_RESULT_RESOURCE_EXHAUSTED;
61 52
62 if (transports) 53 if (dispatchers)
63 return MOJO_RESULT_UNIMPLEMENTED; 54 return MOJO_RESULT_UNIMPLEMENTED;
64 55
65 return MOJO_RESULT_OK; 56 return MOJO_RESULT_OK;
66 } 57 }
67 58
68 MojoResult ReadMessageImplNoLock(void* bytes, 59 MojoResult ReadMessage(void* bytes,
69 uint32_t* num_bytes, 60 uint32_t* num_bytes,
70 DispatcherVector* dispatchers, 61 MojoHandle* handle,
71 uint32_t* num_dispatchers, 62 uint32_t* num_handles,
72 MojoReadMessageFlags /*flags*/) override { 63 MojoReadMessageFlags /*flags*/) override {
73 info_->IncrementReadMessageCallCount(); 64 info_->IncrementReadMessageCallCount();
74 lock().AssertAcquired();
75 65
76 if (num_dispatchers) { 66 if (num_handles)
77 *num_dispatchers = 1; 67 *num_handles = 1;
78 if (dispatchers) {
79 // Okay to leave an invalid dispatcher.
80 dispatchers->resize(1);
81 }
82 }
83 68
84 return MOJO_RESULT_OK; 69 return MOJO_RESULT_OK;
85 } 70 }
86 71
87 MojoResult WriteDataImplNoLock(const void* /*elements*/, 72 MojoResult WriteData(const void* elements,
88 uint32_t* /*num_bytes*/, 73 uint32_t* num_bytes,
89 MojoWriteDataFlags /*flags*/) override { 74 MojoWriteDataFlags flags) override {
90 info_->IncrementWriteDataCallCount(); 75 info_->IncrementWriteDataCallCount();
91 lock().AssertAcquired();
92 return MOJO_RESULT_UNIMPLEMENTED; 76 return MOJO_RESULT_UNIMPLEMENTED;
93 } 77 }
94 78
95 MojoResult BeginWriteDataImplNoLock( 79 MojoResult BeginWriteData(void** buffer,
96 void** /*buffer*/, 80 uint32_t* buffer_num_bytes,
97 uint32_t* /*buffer_num_bytes*/, 81 MojoWriteDataFlags flags) override {
98 MojoWriteDataFlags /*flags*/) override {
99 info_->IncrementBeginWriteDataCallCount(); 82 info_->IncrementBeginWriteDataCallCount();
100 lock().AssertAcquired();
101 return MOJO_RESULT_UNIMPLEMENTED; 83 return MOJO_RESULT_UNIMPLEMENTED;
102 } 84 }
103 85
104 MojoResult EndWriteDataImplNoLock(uint32_t /*num_bytes_written*/) override { 86 MojoResult EndWriteData(uint32_t num_bytes_written) override {
105 info_->IncrementEndWriteDataCallCount(); 87 info_->IncrementEndWriteDataCallCount();
106 lock().AssertAcquired();
107 return MOJO_RESULT_UNIMPLEMENTED; 88 return MOJO_RESULT_UNIMPLEMENTED;
108 } 89 }
109 90
110 MojoResult ReadDataImplNoLock(void* /*elements*/, 91 MojoResult ReadData(void* elements,
111 uint32_t* /*num_bytes*/, 92 uint32_t* num_bytes,
112 MojoReadDataFlags /*flags*/) override { 93 MojoReadDataFlags flags) override {
113 info_->IncrementReadDataCallCount(); 94 info_->IncrementReadDataCallCount();
114 lock().AssertAcquired();
115 return MOJO_RESULT_UNIMPLEMENTED; 95 return MOJO_RESULT_UNIMPLEMENTED;
116 } 96 }
117 97
118 MojoResult BeginReadDataImplNoLock(const void** /*buffer*/, 98 MojoResult BeginReadData(const void** buffer,
119 uint32_t* /*buffer_num_bytes*/, 99 uint32_t* buffer_num_bytes,
120 MojoReadDataFlags /*flags*/) override { 100 MojoReadDataFlags flags) override {
121 info_->IncrementBeginReadDataCallCount(); 101 info_->IncrementBeginReadDataCallCount();
122 lock().AssertAcquired();
123 return MOJO_RESULT_UNIMPLEMENTED; 102 return MOJO_RESULT_UNIMPLEMENTED;
124 } 103 }
125 104
126 MojoResult EndReadDataImplNoLock(uint32_t /*num_bytes_read*/) override { 105 MojoResult EndReadData(uint32_t num_bytes_read) override {
127 info_->IncrementEndReadDataCallCount(); 106 info_->IncrementEndReadDataCallCount();
128 lock().AssertAcquired();
129 return MOJO_RESULT_UNIMPLEMENTED; 107 return MOJO_RESULT_UNIMPLEMENTED;
130 } 108 }
131 109
132 MojoResult AddAwakableImplNoLock(Awakable* awakable, 110 MojoResult AddAwakable(Awakable* awakable,
133 MojoHandleSignals /*signals*/, 111 MojoHandleSignals /*signals*/,
134 uintptr_t /*context*/, 112 uintptr_t /*context*/,
135 HandleSignalsState* signals_state) override { 113 HandleSignalsState* signals_state) override {
136 info_->IncrementAddAwakableCallCount(); 114 info_->IncrementAddAwakableCallCount();
137 lock().AssertAcquired();
138 if (signals_state) 115 if (signals_state)
139 *signals_state = HandleSignalsState(); 116 *signals_state = HandleSignalsState();
140 if (info_->IsAddAwakableAllowed()) { 117 if (info_->IsAddAwakableAllowed()) {
141 info_->AwakableWasAdded(awakable); 118 info_->AwakableWasAdded(awakable);
142 return MOJO_RESULT_OK; 119 return MOJO_RESULT_OK;
143 } 120 }
144 121
145 return MOJO_RESULT_FAILED_PRECONDITION; 122 return MOJO_RESULT_FAILED_PRECONDITION;
146 } 123 }
147 124
148 void RemoveAwakableImplNoLock(Awakable* /*awakable*/, 125 void RemoveAwakable(Awakable* /*awakable*/,
149 HandleSignalsState* signals_state) override { 126 HandleSignalsState* signals_state) override {
150 info_->IncrementRemoveAwakableCallCount(); 127 info_->IncrementRemoveAwakableCallCount();
151 lock().AssertAcquired();
152 if (signals_state) 128 if (signals_state)
153 *signals_state = HandleSignalsState(); 129 *signals_state = HandleSignalsState();
154 } 130 }
155 131
156 void CancelAllAwakablesNoLock() override { 132 private:
157 info_->IncrementCancelAllAwakablesCallCount(); 133 explicit MockDispatcher(CoreTestBase::MockHandleInfo* info) : info_(info) {
158 lock().AssertAcquired(); 134 CHECK(info_);
135 info_->IncrementCtorCallCount();
159 } 136 }
160 137
161 scoped_refptr<Dispatcher> CreateEquivalentDispatcherAndCloseImplNoLock() 138 ~MockDispatcher() override { info_->IncrementDtorCallCount(); }
162 override {
163 return Create(info_);
164 }
165 139
166 CoreTestBase::MockHandleInfo* const info_; 140 CoreTestBase::MockHandleInfo* const info_;
167 141
168 MOJO_DISALLOW_COPY_AND_ASSIGN(MockDispatcher); 142 MOJO_DISALLOW_COPY_AND_ASSIGN(MockDispatcher);
169 }; 143 };
170 144
171 } // namespace 145 } // namespace
172 146
173 // CoreTestBase ---------------------------------------------------------------- 147 // CoreTestBase ----------------------------------------------------------------
174 148
(...skipping 21 matching lines...) Expand all
196 write_message_call_count_(0), 170 write_message_call_count_(0),
197 read_message_call_count_(0), 171 read_message_call_count_(0),
198 write_data_call_count_(0), 172 write_data_call_count_(0),
199 begin_write_data_call_count_(0), 173 begin_write_data_call_count_(0),
200 end_write_data_call_count_(0), 174 end_write_data_call_count_(0),
201 read_data_call_count_(0), 175 read_data_call_count_(0),
202 begin_read_data_call_count_(0), 176 begin_read_data_call_count_(0),
203 end_read_data_call_count_(0), 177 end_read_data_call_count_(0),
204 add_awakable_call_count_(0), 178 add_awakable_call_count_(0),
205 remove_awakable_call_count_(0), 179 remove_awakable_call_count_(0),
206 cancel_all_awakables_call_count_(0),
207 add_awakable_allowed_(false) { 180 add_awakable_allowed_(false) {
208 } 181 }
209 182
210 CoreTestBase_MockHandleInfo::~CoreTestBase_MockHandleInfo() { 183 CoreTestBase_MockHandleInfo::~CoreTestBase_MockHandleInfo() {
211 } 184 }
212 185
213 unsigned CoreTestBase_MockHandleInfo::GetCtorCallCount() const { 186 unsigned CoreTestBase_MockHandleInfo::GetCtorCallCount() const {
214 base::AutoLock locker(lock_); 187 base::AutoLock locker(lock_);
215 return ctor_call_count_; 188 return ctor_call_count_;
216 } 189 }
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
268 unsigned CoreTestBase_MockHandleInfo::GetAddAwakableCallCount() const { 241 unsigned CoreTestBase_MockHandleInfo::GetAddAwakableCallCount() const {
269 base::AutoLock locker(lock_); 242 base::AutoLock locker(lock_);
270 return add_awakable_call_count_; 243 return add_awakable_call_count_;
271 } 244 }
272 245
273 unsigned CoreTestBase_MockHandleInfo::GetRemoveAwakableCallCount() const { 246 unsigned CoreTestBase_MockHandleInfo::GetRemoveAwakableCallCount() const {
274 base::AutoLock locker(lock_); 247 base::AutoLock locker(lock_);
275 return remove_awakable_call_count_; 248 return remove_awakable_call_count_;
276 } 249 }
277 250
278 unsigned CoreTestBase_MockHandleInfo::GetCancelAllAwakablesCallCount() const {
279 base::AutoLock locker(lock_);
280 return cancel_all_awakables_call_count_;
281 }
282
283 size_t CoreTestBase_MockHandleInfo::GetAddedAwakableSize() const { 251 size_t CoreTestBase_MockHandleInfo::GetAddedAwakableSize() const {
284 base::AutoLock locker(lock_); 252 base::AutoLock locker(lock_);
285 return added_awakables_.size(); 253 return added_awakables_.size();
286 } 254 }
287 255
288 Awakable* CoreTestBase_MockHandleInfo::GetAddedAwakableAt(unsigned i) const { 256 Awakable* CoreTestBase_MockHandleInfo::GetAddedAwakableAt(unsigned i) const {
289 base::AutoLock locker(lock_); 257 base::AutoLock locker(lock_);
290 return added_awakables_[i]; 258 return added_awakables_[i];
291 } 259 }
292 260
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
348 void CoreTestBase_MockHandleInfo::IncrementAddAwakableCallCount() { 316 void CoreTestBase_MockHandleInfo::IncrementAddAwakableCallCount() {
349 base::AutoLock locker(lock_); 317 base::AutoLock locker(lock_);
350 add_awakable_call_count_++; 318 add_awakable_call_count_++;
351 } 319 }
352 320
353 void CoreTestBase_MockHandleInfo::IncrementRemoveAwakableCallCount() { 321 void CoreTestBase_MockHandleInfo::IncrementRemoveAwakableCallCount() {
354 base::AutoLock locker(lock_); 322 base::AutoLock locker(lock_);
355 remove_awakable_call_count_++; 323 remove_awakable_call_count_++;
356 } 324 }
357 325
358 void CoreTestBase_MockHandleInfo::IncrementCancelAllAwakablesCallCount() {
359 base::AutoLock locker(lock_);
360 cancel_all_awakables_call_count_++;
361 }
362
363 void CoreTestBase_MockHandleInfo::AllowAddAwakable(bool alllow) { 326 void CoreTestBase_MockHandleInfo::AllowAddAwakable(bool alllow) {
364 base::AutoLock locker(lock_); 327 base::AutoLock locker(lock_);
365 add_awakable_allowed_ = alllow; 328 add_awakable_allowed_ = alllow;
366 } 329 }
367 330
368 bool CoreTestBase_MockHandleInfo::IsAddAwakableAllowed() const { 331 bool CoreTestBase_MockHandleInfo::IsAddAwakableAllowed() const {
369 base::AutoLock locker(lock_); 332 base::AutoLock locker(lock_);
370 return add_awakable_allowed_; 333 return add_awakable_allowed_;
371 } 334 }
372 335
373 void CoreTestBase_MockHandleInfo::AwakableWasAdded(Awakable* awakable) { 336 void CoreTestBase_MockHandleInfo::AwakableWasAdded(Awakable* awakable) {
374 base::AutoLock locker(lock_); 337 base::AutoLock locker(lock_);
375 added_awakables_.push_back(awakable); 338 added_awakables_.push_back(awakable);
376 } 339 }
377 340
378 } // namespace test 341 } // namespace test
379 } // namespace edk 342 } // namespace edk
380 } // namespace mojo 343 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698