| OLD | NEW |
| 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" |
| 11 #include "mojo/edk/system/configuration.h" | 11 #include "mojo/edk/system/configuration.h" |
| 12 #include "mojo/edk/system/core.h" | 12 #include "mojo/edk/system/core.h" |
| 13 #include "mojo/edk/system/dispatcher.h" | 13 #include "mojo/edk/system/dispatcher.h" |
| 14 #include "mojo/edk/system/memory.h" | 14 #include "mojo/edk/system/memory.h" |
| 15 #include "mojo/public/cpp/system/macros.h" | 15 #include "mojo/public/cpp/system/macros.h" |
| 16 | 16 |
| 17 namespace mojo { | 17 namespace mojo { |
| 18 namespace system { | 18 namespace edk { |
| 19 namespace test { | 19 namespace test { |
| 20 | 20 |
| 21 namespace { | 21 namespace { |
| 22 | 22 |
| 23 // MockDispatcher -------------------------------------------------------------- | 23 // MockDispatcher -------------------------------------------------------------- |
| 24 | 24 |
| 25 class MockDispatcher : public Dispatcher { | 25 class MockDispatcher : public Dispatcher { |
| 26 public: | 26 public: |
| 27 static scoped_refptr<MockDispatcher> Create( | 27 static scoped_refptr<MockDispatcher> Create( |
| 28 CoreTestBase::MockHandleInfo* info) { | 28 CoreTestBase::MockHandleInfo* info) { |
| 29 return make_scoped_refptr(new MockDispatcher(info)); | 29 return make_scoped_refptr(new MockDispatcher(info)); |
| 30 } | 30 } |
| 31 | 31 |
| 32 // |Dispatcher| private methods: | 32 // |Dispatcher| private methods: |
| 33 Type GetType() const override { return Type::UNKNOWN; } | 33 Type GetType() const override { return Type::UNKNOWN; } |
| 34 | 34 |
| 35 private: | 35 private: |
| 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); |
| 167 }; | 167 }; |
| 168 | 168 |
| 169 } // namespace | 169 } // namespace |
| 170 | 170 |
| 171 // CoreTestBase ---------------------------------------------------------------- | 171 // CoreTestBase ---------------------------------------------------------------- |
| 172 | 172 |
| 173 CoreTestBase::CoreTestBase() { | 173 CoreTestBase::CoreTestBase() { |
| 174 } | 174 } |
| 175 | 175 |
| 176 CoreTestBase::~CoreTestBase() { | 176 CoreTestBase::~CoreTestBase() { |
| 177 } | 177 } |
| 178 | 178 |
| 179 void CoreTestBase::SetUp() { | |
| 180 core_ = new Core(&platform_support_); | |
| 181 } | |
| 182 | |
| 183 void CoreTestBase::TearDown() { | |
| 184 delete core_; | |
| 185 core_ = nullptr; | |
| 186 } | |
| 187 | |
| 188 MojoHandle CoreTestBase::CreateMockHandle(CoreTestBase::MockHandleInfo* info) { | 179 MojoHandle CoreTestBase::CreateMockHandle(CoreTestBase::MockHandleInfo* info) { |
| 189 CHECK(core_); | |
| 190 scoped_refptr<MockDispatcher> dispatcher = MockDispatcher::Create(info); | 180 scoped_refptr<MockDispatcher> dispatcher = MockDispatcher::Create(info); |
| 191 return core_->AddDispatcher(dispatcher); | 181 return core()->AddDispatcher(dispatcher); |
| 192 } | 182 } |
| 193 | 183 |
| 194 // CoreTestBase_MockHandleInfo ------------------------------------------------- | 184 // CoreTestBase_MockHandleInfo ------------------------------------------------- |
| 195 | 185 |
| 196 CoreTestBase_MockHandleInfo::CoreTestBase_MockHandleInfo() | 186 CoreTestBase_MockHandleInfo::CoreTestBase_MockHandleInfo() |
| 197 : ctor_call_count_(0), | 187 : ctor_call_count_(0), |
| 198 dtor_call_count_(0), | 188 dtor_call_count_(0), |
| 199 close_call_count_(0), | 189 close_call_count_(0), |
| 200 write_message_call_count_(0), | 190 write_message_call_count_(0), |
| 201 read_message_call_count_(0), | 191 read_message_call_count_(0), |
| 202 write_data_call_count_(0), | 192 write_data_call_count_(0), |
| 203 begin_write_data_call_count_(0), | 193 begin_write_data_call_count_(0), |
| 204 end_write_data_call_count_(0), | 194 end_write_data_call_count_(0), |
| 205 read_data_call_count_(0), | 195 read_data_call_count_(0), |
| 206 begin_read_data_call_count_(0), | 196 begin_read_data_call_count_(0), |
| 207 end_read_data_call_count_(0), | 197 end_read_data_call_count_(0), |
| 208 add_awakable_call_count_(0), | 198 add_awakable_call_count_(0), |
| 209 remove_awakable_call_count_(0), | 199 remove_awakable_call_count_(0), |
| 210 cancel_all_awakables_call_count_(0), | 200 cancel_all_awakables_call_count_(0), |
| 211 add_awakable_allowed_(false) { | 201 add_awakable_allowed_(false) { |
| 212 } | 202 } |
| 213 | 203 |
| 214 CoreTestBase_MockHandleInfo::~CoreTestBase_MockHandleInfo() { | 204 CoreTestBase_MockHandleInfo::~CoreTestBase_MockHandleInfo() { |
| 215 } | 205 } |
| 216 | 206 |
| 217 unsigned CoreTestBase_MockHandleInfo::GetCtorCallCount() const { | 207 unsigned CoreTestBase_MockHandleInfo::GetCtorCallCount() const { |
| 218 MutexLocker locker(&mutex_); | 208 base::AutoLock locker(lock_); |
| 219 return ctor_call_count_; | 209 return ctor_call_count_; |
| 220 } | 210 } |
| 221 | 211 |
| 222 unsigned CoreTestBase_MockHandleInfo::GetDtorCallCount() const { | 212 unsigned CoreTestBase_MockHandleInfo::GetDtorCallCount() const { |
| 223 MutexLocker locker(&mutex_); | 213 base::AutoLock locker(lock_); |
| 224 return dtor_call_count_; | 214 return dtor_call_count_; |
| 225 } | 215 } |
| 226 | 216 |
| 227 unsigned CoreTestBase_MockHandleInfo::GetCloseCallCount() const { | 217 unsigned CoreTestBase_MockHandleInfo::GetCloseCallCount() const { |
| 228 MutexLocker locker(&mutex_); | 218 base::AutoLock locker(lock_); |
| 229 return close_call_count_; | 219 return close_call_count_; |
| 230 } | 220 } |
| 231 | 221 |
| 232 unsigned CoreTestBase_MockHandleInfo::GetWriteMessageCallCount() const { | 222 unsigned CoreTestBase_MockHandleInfo::GetWriteMessageCallCount() const { |
| 233 MutexLocker locker(&mutex_); | 223 base::AutoLock locker(lock_); |
| 234 return write_message_call_count_; | 224 return write_message_call_count_; |
| 235 } | 225 } |
| 236 | 226 |
| 237 unsigned CoreTestBase_MockHandleInfo::GetReadMessageCallCount() const { | 227 unsigned CoreTestBase_MockHandleInfo::GetReadMessageCallCount() const { |
| 238 MutexLocker locker(&mutex_); | 228 base::AutoLock locker(lock_); |
| 239 return read_message_call_count_; | 229 return read_message_call_count_; |
| 240 } | 230 } |
| 241 | 231 |
| 242 unsigned CoreTestBase_MockHandleInfo::GetWriteDataCallCount() const { | 232 unsigned CoreTestBase_MockHandleInfo::GetWriteDataCallCount() const { |
| 243 MutexLocker locker(&mutex_); | 233 base::AutoLock locker(lock_); |
| 244 return write_data_call_count_; | 234 return write_data_call_count_; |
| 245 } | 235 } |
| 246 | 236 |
| 247 unsigned CoreTestBase_MockHandleInfo::GetBeginWriteDataCallCount() const { | 237 unsigned CoreTestBase_MockHandleInfo::GetBeginWriteDataCallCount() const { |
| 248 MutexLocker locker(&mutex_); | 238 base::AutoLock locker(lock_); |
| 249 return begin_write_data_call_count_; | 239 return begin_write_data_call_count_; |
| 250 } | 240 } |
| 251 | 241 |
| 252 unsigned CoreTestBase_MockHandleInfo::GetEndWriteDataCallCount() const { | 242 unsigned CoreTestBase_MockHandleInfo::GetEndWriteDataCallCount() const { |
| 253 MutexLocker locker(&mutex_); | 243 base::AutoLock locker(lock_); |
| 254 return end_write_data_call_count_; | 244 return end_write_data_call_count_; |
| 255 } | 245 } |
| 256 | 246 |
| 257 unsigned CoreTestBase_MockHandleInfo::GetReadDataCallCount() const { | 247 unsigned CoreTestBase_MockHandleInfo::GetReadDataCallCount() const { |
| 258 MutexLocker locker(&mutex_); | 248 base::AutoLock locker(lock_); |
| 259 return read_data_call_count_; | 249 return read_data_call_count_; |
| 260 } | 250 } |
| 261 | 251 |
| 262 unsigned CoreTestBase_MockHandleInfo::GetBeginReadDataCallCount() const { | 252 unsigned CoreTestBase_MockHandleInfo::GetBeginReadDataCallCount() const { |
| 263 MutexLocker locker(&mutex_); | 253 base::AutoLock locker(lock_); |
| 264 return begin_read_data_call_count_; | 254 return begin_read_data_call_count_; |
| 265 } | 255 } |
| 266 | 256 |
| 267 unsigned CoreTestBase_MockHandleInfo::GetEndReadDataCallCount() const { | 257 unsigned CoreTestBase_MockHandleInfo::GetEndReadDataCallCount() const { |
| 268 MutexLocker locker(&mutex_); | 258 base::AutoLock locker(lock_); |
| 269 return end_read_data_call_count_; | 259 return end_read_data_call_count_; |
| 270 } | 260 } |
| 271 | 261 |
| 272 unsigned CoreTestBase_MockHandleInfo::GetAddAwakableCallCount() const { | 262 unsigned CoreTestBase_MockHandleInfo::GetAddAwakableCallCount() const { |
| 273 MutexLocker locker(&mutex_); | 263 base::AutoLock locker(lock_); |
| 274 return add_awakable_call_count_; | 264 return add_awakable_call_count_; |
| 275 } | 265 } |
| 276 | 266 |
| 277 unsigned CoreTestBase_MockHandleInfo::GetRemoveAwakableCallCount() const { | 267 unsigned CoreTestBase_MockHandleInfo::GetRemoveAwakableCallCount() const { |
| 278 MutexLocker locker(&mutex_); | 268 base::AutoLock locker(lock_); |
| 279 return remove_awakable_call_count_; | 269 return remove_awakable_call_count_; |
| 280 } | 270 } |
| 281 | 271 |
| 282 unsigned CoreTestBase_MockHandleInfo::GetCancelAllAwakablesCallCount() const { | 272 unsigned CoreTestBase_MockHandleInfo::GetCancelAllAwakablesCallCount() const { |
| 283 MutexLocker locker(&mutex_); | 273 base::AutoLock locker(lock_); |
| 284 return cancel_all_awakables_call_count_; | 274 return cancel_all_awakables_call_count_; |
| 285 } | 275 } |
| 286 | 276 |
| 287 size_t CoreTestBase_MockHandleInfo::GetAddedAwakableSize() const { | 277 size_t CoreTestBase_MockHandleInfo::GetAddedAwakableSize() const { |
| 288 MutexLocker locker(&mutex_); | 278 base::AutoLock locker(lock_); |
| 289 return added_awakables_.size(); | 279 return added_awakables_.size(); |
| 290 } | 280 } |
| 291 | 281 |
| 292 Awakable* CoreTestBase_MockHandleInfo::GetAddedAwakableAt(unsigned i) const { | 282 Awakable* CoreTestBase_MockHandleInfo::GetAddedAwakableAt(unsigned i) const { |
| 293 MutexLocker locker(&mutex_); | 283 base::AutoLock locker(lock_); |
| 294 return added_awakables_[i]; | 284 return added_awakables_[i]; |
| 295 } | 285 } |
| 296 | 286 |
| 297 void CoreTestBase_MockHandleInfo::IncrementCtorCallCount() { | 287 void CoreTestBase_MockHandleInfo::IncrementCtorCallCount() { |
| 298 MutexLocker locker(&mutex_); | 288 base::AutoLock locker(lock_); |
| 299 ctor_call_count_++; | 289 ctor_call_count_++; |
| 300 } | 290 } |
| 301 | 291 |
| 302 void CoreTestBase_MockHandleInfo::IncrementDtorCallCount() { | 292 void CoreTestBase_MockHandleInfo::IncrementDtorCallCount() { |
| 303 MutexLocker locker(&mutex_); | 293 base::AutoLock locker(lock_); |
| 304 dtor_call_count_++; | 294 dtor_call_count_++; |
| 305 } | 295 } |
| 306 | 296 |
| 307 void CoreTestBase_MockHandleInfo::IncrementCloseCallCount() { | 297 void CoreTestBase_MockHandleInfo::IncrementCloseCallCount() { |
| 308 MutexLocker locker(&mutex_); | 298 base::AutoLock locker(lock_); |
| 309 close_call_count_++; | 299 close_call_count_++; |
| 310 } | 300 } |
| 311 | 301 |
| 312 void CoreTestBase_MockHandleInfo::IncrementWriteMessageCallCount() { | 302 void CoreTestBase_MockHandleInfo::IncrementWriteMessageCallCount() { |
| 313 MutexLocker locker(&mutex_); | 303 base::AutoLock locker(lock_); |
| 314 write_message_call_count_++; | 304 write_message_call_count_++; |
| 315 } | 305 } |
| 316 | 306 |
| 317 void CoreTestBase_MockHandleInfo::IncrementReadMessageCallCount() { | 307 void CoreTestBase_MockHandleInfo::IncrementReadMessageCallCount() { |
| 318 MutexLocker locker(&mutex_); | 308 base::AutoLock locker(lock_); |
| 319 read_message_call_count_++; | 309 read_message_call_count_++; |
| 320 } | 310 } |
| 321 | 311 |
| 322 void CoreTestBase_MockHandleInfo::IncrementWriteDataCallCount() { | 312 void CoreTestBase_MockHandleInfo::IncrementWriteDataCallCount() { |
| 323 MutexLocker locker(&mutex_); | 313 base::AutoLock locker(lock_); |
| 324 write_data_call_count_++; | 314 write_data_call_count_++; |
| 325 } | 315 } |
| 326 | 316 |
| 327 void CoreTestBase_MockHandleInfo::IncrementBeginWriteDataCallCount() { | 317 void CoreTestBase_MockHandleInfo::IncrementBeginWriteDataCallCount() { |
| 328 MutexLocker locker(&mutex_); | 318 base::AutoLock locker(lock_); |
| 329 begin_write_data_call_count_++; | 319 begin_write_data_call_count_++; |
| 330 } | 320 } |
| 331 | 321 |
| 332 void CoreTestBase_MockHandleInfo::IncrementEndWriteDataCallCount() { | 322 void CoreTestBase_MockHandleInfo::IncrementEndWriteDataCallCount() { |
| 333 MutexLocker locker(&mutex_); | 323 base::AutoLock locker(lock_); |
| 334 end_write_data_call_count_++; | 324 end_write_data_call_count_++; |
| 335 } | 325 } |
| 336 | 326 |
| 337 void CoreTestBase_MockHandleInfo::IncrementReadDataCallCount() { | 327 void CoreTestBase_MockHandleInfo::IncrementReadDataCallCount() { |
| 338 MutexLocker locker(&mutex_); | 328 base::AutoLock locker(lock_); |
| 339 read_data_call_count_++; | 329 read_data_call_count_++; |
| 340 } | 330 } |
| 341 | 331 |
| 342 void CoreTestBase_MockHandleInfo::IncrementBeginReadDataCallCount() { | 332 void CoreTestBase_MockHandleInfo::IncrementBeginReadDataCallCount() { |
| 343 MutexLocker locker(&mutex_); | 333 base::AutoLock locker(lock_); |
| 344 begin_read_data_call_count_++; | 334 begin_read_data_call_count_++; |
| 345 } | 335 } |
| 346 | 336 |
| 347 void CoreTestBase_MockHandleInfo::IncrementEndReadDataCallCount() { | 337 void CoreTestBase_MockHandleInfo::IncrementEndReadDataCallCount() { |
| 348 MutexLocker locker(&mutex_); | 338 base::AutoLock locker(lock_); |
| 349 end_read_data_call_count_++; | 339 end_read_data_call_count_++; |
| 350 } | 340 } |
| 351 | 341 |
| 352 void CoreTestBase_MockHandleInfo::IncrementAddAwakableCallCount() { | 342 void CoreTestBase_MockHandleInfo::IncrementAddAwakableCallCount() { |
| 353 MutexLocker locker(&mutex_); | 343 base::AutoLock locker(lock_); |
| 354 add_awakable_call_count_++; | 344 add_awakable_call_count_++; |
| 355 } | 345 } |
| 356 | 346 |
| 357 void CoreTestBase_MockHandleInfo::IncrementRemoveAwakableCallCount() { | 347 void CoreTestBase_MockHandleInfo::IncrementRemoveAwakableCallCount() { |
| 358 MutexLocker locker(&mutex_); | 348 base::AutoLock locker(lock_); |
| 359 remove_awakable_call_count_++; | 349 remove_awakable_call_count_++; |
| 360 } | 350 } |
| 361 | 351 |
| 362 void CoreTestBase_MockHandleInfo::IncrementCancelAllAwakablesCallCount() { | 352 void CoreTestBase_MockHandleInfo::IncrementCancelAllAwakablesCallCount() { |
| 363 MutexLocker locker(&mutex_); | 353 base::AutoLock locker(lock_); |
| 364 cancel_all_awakables_call_count_++; | 354 cancel_all_awakables_call_count_++; |
| 365 } | 355 } |
| 366 | 356 |
| 367 void CoreTestBase_MockHandleInfo::AllowAddAwakable(bool alllow) { | 357 void CoreTestBase_MockHandleInfo::AllowAddAwakable(bool alllow) { |
| 368 MutexLocker locker(&mutex_); | 358 base::AutoLock locker(lock_); |
| 369 add_awakable_allowed_ = alllow; | 359 add_awakable_allowed_ = alllow; |
| 370 } | 360 } |
| 371 | 361 |
| 372 bool CoreTestBase_MockHandleInfo::IsAddAwakableAllowed() const { | 362 bool CoreTestBase_MockHandleInfo::IsAddAwakableAllowed() const { |
| 373 MutexLocker locker(&mutex_); | 363 base::AutoLock locker(lock_); |
| 374 return add_awakable_allowed_; | 364 return add_awakable_allowed_; |
| 375 } | 365 } |
| 376 | 366 |
| 377 void CoreTestBase_MockHandleInfo::AwakableWasAdded(Awakable* awakable) { | 367 void CoreTestBase_MockHandleInfo::AwakableWasAdded(Awakable* awakable) { |
| 378 MutexLocker locker(&mutex_); | 368 base::AutoLock locker(lock_); |
| 379 added_awakables_.push_back(awakable); | 369 added_awakables_.push_back(awakable); |
| 380 } | 370 } |
| 381 | 371 |
| 382 } // namespace test | 372 } // namespace test |
| 383 } // namespace system | 373 } // namespace edk |
| 384 } // namespace mojo | 374 } // namespace mojo |
| OLD | NEW |