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/compiler_specific.h" | 9 #include "base/compiler_specific.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 13 matching lines...) Expand all Loading... |
24 // MockDispatcher -------------------------------------------------------------- | 24 // MockDispatcher -------------------------------------------------------------- |
25 | 25 |
26 class MockDispatcher : public Dispatcher { | 26 class MockDispatcher : public Dispatcher { |
27 public: | 27 public: |
28 explicit MockDispatcher(CoreTestBase::MockHandleInfo* info) : info_(info) { | 28 explicit MockDispatcher(CoreTestBase::MockHandleInfo* info) : info_(info) { |
29 CHECK(info_); | 29 CHECK(info_); |
30 info_->IncrementCtorCallCount(); | 30 info_->IncrementCtorCallCount(); |
31 } | 31 } |
32 | 32 |
33 // |Dispatcher| private methods: | 33 // |Dispatcher| private methods: |
34 virtual Type GetType() const override { return kTypeUnknown; } | 34 Type GetType() const override { return kTypeUnknown; } |
35 | 35 |
36 private: | 36 private: |
37 virtual ~MockDispatcher() { info_->IncrementDtorCallCount(); } | 37 ~MockDispatcher() override { info_->IncrementDtorCallCount(); } |
38 | 38 |
39 // |Dispatcher| protected methods: | 39 // |Dispatcher| protected methods: |
40 virtual void CloseImplNoLock() override { | 40 void CloseImplNoLock() override { |
41 info_->IncrementCloseCallCount(); | 41 info_->IncrementCloseCallCount(); |
42 lock().AssertAcquired(); | 42 lock().AssertAcquired(); |
43 } | 43 } |
44 | 44 |
45 virtual MojoResult WriteMessageImplNoLock( | 45 MojoResult WriteMessageImplNoLock( |
46 UserPointer<const void> bytes, | 46 UserPointer<const void> bytes, |
47 uint32_t num_bytes, | 47 uint32_t num_bytes, |
48 std::vector<DispatcherTransport>* transports, | 48 std::vector<DispatcherTransport>* transports, |
49 MojoWriteMessageFlags /*flags*/) override { | 49 MojoWriteMessageFlags /*flags*/) override { |
50 info_->IncrementWriteMessageCallCount(); | 50 info_->IncrementWriteMessageCallCount(); |
51 lock().AssertAcquired(); | 51 lock().AssertAcquired(); |
52 | 52 |
53 if (num_bytes > kMaxMessageNumBytes) | 53 if (num_bytes > kMaxMessageNumBytes) |
54 return MOJO_RESULT_RESOURCE_EXHAUSTED; | 54 return MOJO_RESULT_RESOURCE_EXHAUSTED; |
55 | 55 |
56 if (transports) | 56 if (transports) |
57 return MOJO_RESULT_UNIMPLEMENTED; | 57 return MOJO_RESULT_UNIMPLEMENTED; |
58 | 58 |
59 return MOJO_RESULT_OK; | 59 return MOJO_RESULT_OK; |
60 } | 60 } |
61 | 61 |
62 virtual MojoResult ReadMessageImplNoLock( | 62 MojoResult ReadMessageImplNoLock(UserPointer<void> bytes, |
63 UserPointer<void> bytes, | 63 UserPointer<uint32_t> num_bytes, |
64 UserPointer<uint32_t> num_bytes, | 64 DispatcherVector* dispatchers, |
65 DispatcherVector* dispatchers, | 65 uint32_t* num_dispatchers, |
66 uint32_t* num_dispatchers, | 66 MojoReadMessageFlags /*flags*/) override { |
67 MojoReadMessageFlags /*flags*/) override { | |
68 info_->IncrementReadMessageCallCount(); | 67 info_->IncrementReadMessageCallCount(); |
69 lock().AssertAcquired(); | 68 lock().AssertAcquired(); |
70 | 69 |
71 if (num_dispatchers) { | 70 if (num_dispatchers) { |
72 *num_dispatchers = 1; | 71 *num_dispatchers = 1; |
73 if (dispatchers) { | 72 if (dispatchers) { |
74 // Okay to leave an invalid dispatcher. | 73 // Okay to leave an invalid dispatcher. |
75 dispatchers->resize(1); | 74 dispatchers->resize(1); |
76 } | 75 } |
77 } | 76 } |
78 | 77 |
79 return MOJO_RESULT_OK; | 78 return MOJO_RESULT_OK; |
80 } | 79 } |
81 | 80 |
82 virtual MojoResult WriteDataImplNoLock( | 81 MojoResult WriteDataImplNoLock(UserPointer<const void> /*elements*/, |
83 UserPointer<const void> /*elements*/, | 82 UserPointer<uint32_t> /*num_bytes*/, |
84 UserPointer<uint32_t> /*num_bytes*/, | 83 MojoWriteDataFlags /*flags*/) override { |
85 MojoWriteDataFlags /*flags*/) override { | |
86 info_->IncrementWriteDataCallCount(); | 84 info_->IncrementWriteDataCallCount(); |
87 lock().AssertAcquired(); | 85 lock().AssertAcquired(); |
88 return MOJO_RESULT_UNIMPLEMENTED; | 86 return MOJO_RESULT_UNIMPLEMENTED; |
89 } | 87 } |
90 | 88 |
91 virtual MojoResult BeginWriteDataImplNoLock( | 89 MojoResult BeginWriteDataImplNoLock( |
92 UserPointer<void*> /*buffer*/, | 90 UserPointer<void*> /*buffer*/, |
93 UserPointer<uint32_t> /*buffer_num_bytes*/, | 91 UserPointer<uint32_t> /*buffer_num_bytes*/, |
94 MojoWriteDataFlags /*flags*/) override { | 92 MojoWriteDataFlags /*flags*/) override { |
95 info_->IncrementBeginWriteDataCallCount(); | 93 info_->IncrementBeginWriteDataCallCount(); |
96 lock().AssertAcquired(); | 94 lock().AssertAcquired(); |
97 return MOJO_RESULT_UNIMPLEMENTED; | 95 return MOJO_RESULT_UNIMPLEMENTED; |
98 } | 96 } |
99 | 97 |
100 virtual MojoResult EndWriteDataImplNoLock( | 98 MojoResult EndWriteDataImplNoLock(uint32_t /*num_bytes_written*/) override { |
101 uint32_t /*num_bytes_written*/) override { | |
102 info_->IncrementEndWriteDataCallCount(); | 99 info_->IncrementEndWriteDataCallCount(); |
103 lock().AssertAcquired(); | 100 lock().AssertAcquired(); |
104 return MOJO_RESULT_UNIMPLEMENTED; | 101 return MOJO_RESULT_UNIMPLEMENTED; |
105 } | 102 } |
106 | 103 |
107 virtual MojoResult ReadDataImplNoLock(UserPointer<void> /*elements*/, | 104 MojoResult ReadDataImplNoLock(UserPointer<void> /*elements*/, |
108 UserPointer<uint32_t> /*num_bytes*/, | 105 UserPointer<uint32_t> /*num_bytes*/, |
109 MojoReadDataFlags /*flags*/) override { | 106 MojoReadDataFlags /*flags*/) override { |
110 info_->IncrementReadDataCallCount(); | 107 info_->IncrementReadDataCallCount(); |
111 lock().AssertAcquired(); | 108 lock().AssertAcquired(); |
112 return MOJO_RESULT_UNIMPLEMENTED; | 109 return MOJO_RESULT_UNIMPLEMENTED; |
113 } | 110 } |
114 | 111 |
115 virtual MojoResult BeginReadDataImplNoLock( | 112 MojoResult BeginReadDataImplNoLock(UserPointer<const void*> /*buffer*/, |
116 UserPointer<const void*> /*buffer*/, | 113 UserPointer<uint32_t> /*buffer_num_bytes*/, |
117 UserPointer<uint32_t> /*buffer_num_bytes*/, | 114 MojoReadDataFlags /*flags*/) override { |
118 MojoReadDataFlags /*flags*/) override { | |
119 info_->IncrementBeginReadDataCallCount(); | 115 info_->IncrementBeginReadDataCallCount(); |
120 lock().AssertAcquired(); | 116 lock().AssertAcquired(); |
121 return MOJO_RESULT_UNIMPLEMENTED; | 117 return MOJO_RESULT_UNIMPLEMENTED; |
122 } | 118 } |
123 | 119 |
124 virtual MojoResult EndReadDataImplNoLock( | 120 MojoResult EndReadDataImplNoLock(uint32_t /*num_bytes_read*/) override { |
125 uint32_t /*num_bytes_read*/) override { | |
126 info_->IncrementEndReadDataCallCount(); | 121 info_->IncrementEndReadDataCallCount(); |
127 lock().AssertAcquired(); | 122 lock().AssertAcquired(); |
128 return MOJO_RESULT_UNIMPLEMENTED; | 123 return MOJO_RESULT_UNIMPLEMENTED; |
129 } | 124 } |
130 | 125 |
131 virtual MojoResult AddWaiterImplNoLock( | 126 MojoResult AddWaiterImplNoLock(Waiter* /*waiter*/, |
132 Waiter* /*waiter*/, | 127 MojoHandleSignals /*signals*/, |
133 MojoHandleSignals /*signals*/, | 128 uint32_t /*context*/, |
134 uint32_t /*context*/, | 129 HandleSignalsState* signals_state) override { |
135 HandleSignalsState* signals_state) override { | |
136 info_->IncrementAddWaiterCallCount(); | 130 info_->IncrementAddWaiterCallCount(); |
137 lock().AssertAcquired(); | 131 lock().AssertAcquired(); |
138 if (signals_state) | 132 if (signals_state) |
139 *signals_state = HandleSignalsState(); | 133 *signals_state = HandleSignalsState(); |
140 return MOJO_RESULT_FAILED_PRECONDITION; | 134 return MOJO_RESULT_FAILED_PRECONDITION; |
141 } | 135 } |
142 | 136 |
143 virtual void RemoveWaiterImplNoLock( | 137 void RemoveWaiterImplNoLock(Waiter* /*waiter*/, |
144 Waiter* /*waiter*/, | 138 HandleSignalsState* signals_state) override { |
145 HandleSignalsState* signals_state) override { | |
146 info_->IncrementRemoveWaiterCallCount(); | 139 info_->IncrementRemoveWaiterCallCount(); |
147 lock().AssertAcquired(); | 140 lock().AssertAcquired(); |
148 if (signals_state) | 141 if (signals_state) |
149 *signals_state = HandleSignalsState(); | 142 *signals_state = HandleSignalsState(); |
150 } | 143 } |
151 | 144 |
152 virtual void CancelAllWaitersNoLock() override { | 145 void CancelAllWaitersNoLock() override { |
153 info_->IncrementCancelAllWaitersCallCount(); | 146 info_->IncrementCancelAllWaitersCallCount(); |
154 lock().AssertAcquired(); | 147 lock().AssertAcquired(); |
155 } | 148 } |
156 | 149 |
157 virtual scoped_refptr<Dispatcher> | 150 scoped_refptr<Dispatcher> CreateEquivalentDispatcherAndCloseImplNoLock() |
158 CreateEquivalentDispatcherAndCloseImplNoLock() override { | 151 override { |
159 return scoped_refptr<Dispatcher>(new MockDispatcher(info_)); | 152 return scoped_refptr<Dispatcher>(new MockDispatcher(info_)); |
160 } | 153 } |
161 | 154 |
162 CoreTestBase::MockHandleInfo* const info_; | 155 CoreTestBase::MockHandleInfo* const info_; |
163 | 156 |
164 DISALLOW_COPY_AND_ASSIGN(MockDispatcher); | 157 DISALLOW_COPY_AND_ASSIGN(MockDispatcher); |
165 }; | 158 }; |
166 | 159 |
167 } // namespace | 160 } // namespace |
168 | 161 |
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
347 } | 340 } |
348 | 341 |
349 void CoreTestBase_MockHandleInfo::IncrementCancelAllWaitersCallCount() { | 342 void CoreTestBase_MockHandleInfo::IncrementCancelAllWaitersCallCount() { |
350 base::AutoLock locker(lock_); | 343 base::AutoLock locker(lock_); |
351 cancel_all_waiters_call_count_++; | 344 cancel_all_waiters_call_count_++; |
352 } | 345 } |
353 | 346 |
354 } // namespace test | 347 } // namespace test |
355 } // namespace system | 348 } // namespace system |
356 } // namespace mojo | 349 } // namespace mojo |
OLD | NEW |