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/system/dispatcher.h" | 5 #include "mojo/system/dispatcher.h" |
6 | 6 |
7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
8 #include "base/memory/ref_counted.h" | 8 #include "base/memory/ref_counted.h" |
9 #include "base/memory/scoped_vector.h" | 9 #include "base/memory/scoped_vector.h" |
10 #include "base/synchronization/waitable_event.h" | 10 #include "base/synchronization/waitable_event.h" |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
97 enum DispatcherOp { | 97 enum DispatcherOp { |
98 CLOSE = 0, | 98 CLOSE = 0, |
99 WRITE_MESSAGE, | 99 WRITE_MESSAGE, |
100 READ_MESSAGE, | 100 READ_MESSAGE, |
101 WRITE_DATA, | 101 WRITE_DATA, |
102 BEGIN_WRITE_DATA, | 102 BEGIN_WRITE_DATA, |
103 END_WRITE_DATA, | 103 END_WRITE_DATA, |
104 READ_DATA, | 104 READ_DATA, |
105 BEGIN_READ_DATA, | 105 BEGIN_READ_DATA, |
106 END_READ_DATA, | 106 END_READ_DATA, |
| 107 DUPLICATE_BUFFER_HANDLE, |
| 108 MAP_BUFFER, |
107 ADD_WAITER, | 109 ADD_WAITER, |
108 REMOVE_WAITER, | 110 REMOVE_WAITER, |
109 | 111 |
110 DISPATCHER_OP_COUNT | 112 DISPATCHER_OP_COUNT |
111 }; | 113 }; |
112 | 114 |
113 ThreadSafetyStressThread(base::WaitableEvent* event, | 115 ThreadSafetyStressThread(base::WaitableEvent* event, |
114 scoped_refptr<Dispatcher> dispatcher, | 116 scoped_refptr<Dispatcher> dispatcher, |
115 DispatcherOp op) | 117 DispatcherOp op) |
116 : base::SimpleThread("thread_safety_stress_thread"), | 118 : base::SimpleThread("thread_safety_stress_thread"), |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
167 break; | 169 break; |
168 case BEGIN_READ_DATA: | 170 case BEGIN_READ_DATA: |
169 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 171 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
170 dispatcher_->BeginReadData(NULL, NULL, | 172 dispatcher_->BeginReadData(NULL, NULL, |
171 MOJO_READ_DATA_FLAG_NONE)); | 173 MOJO_READ_DATA_FLAG_NONE)); |
172 break; | 174 break; |
173 case END_READ_DATA: | 175 case END_READ_DATA: |
174 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 176 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
175 dispatcher_->EndReadData(0)); | 177 dispatcher_->EndReadData(0)); |
176 break; | 178 break; |
| 179 case DUPLICATE_BUFFER_HANDLE: { |
| 180 scoped_refptr<Dispatcher> unused; |
| 181 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
| 182 dispatcher_->DuplicateBufferHandle(NULL, &unused)); |
| 183 break; |
| 184 } |
| 185 case MAP_BUFFER: |
| 186 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
| 187 dispatcher_->MapBuffer(0u, 0u, NULL, |
| 188 MOJO_MAP_BUFFER_FLAG_NONE)); |
| 189 break; |
177 case ADD_WAITER: { | 190 case ADD_WAITER: { |
178 MojoResult r = dispatcher_->AddWaiter(&waiter_, | 191 MojoResult r = dispatcher_->AddWaiter(&waiter_, |
179 MOJO_WAIT_FLAG_EVERYTHING, 0); | 192 MOJO_WAIT_FLAG_EVERYTHING, 0); |
180 EXPECT_TRUE(r == MOJO_RESULT_FAILED_PRECONDITION || | 193 EXPECT_TRUE(r == MOJO_RESULT_FAILED_PRECONDITION || |
181 r == MOJO_RESULT_INVALID_ARGUMENT); | 194 r == MOJO_RESULT_INVALID_ARGUMENT); |
182 break; | 195 break; |
183 } | 196 } |
184 case REMOVE_WAITER: | 197 case REMOVE_WAITER: |
185 dispatcher_->RemoveWaiter(&waiter_); | 198 dispatcher_->RemoveWaiter(&waiter_); |
186 break; | 199 break; |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
249 event.Signal(); // Kicks off real work on the threads. | 262 event.Signal(); // Kicks off real work on the threads. |
250 } // Joins all the threads. | 263 } // Joins all the threads. |
251 | 264 |
252 EXPECT_EQ(MOJO_RESULT_OK, d->Close()); | 265 EXPECT_EQ(MOJO_RESULT_OK, d->Close()); |
253 } | 266 } |
254 } | 267 } |
255 | 268 |
256 } // namespace | 269 } // namespace |
257 } // namespace system | 270 } // namespace system |
258 } // namespace mojo | 271 } // namespace mojo |
OLD | NEW |