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 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
53 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 53 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
54 d->WriteData(NULL, NULL, MOJO_WRITE_DATA_FLAG_NONE)); | 54 d->WriteData(NULL, NULL, MOJO_WRITE_DATA_FLAG_NONE)); |
55 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 55 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
56 d->BeginWriteData(NullUserPointer(), NullUserPointer(), | 56 d->BeginWriteData(NullUserPointer(), NullUserPointer(), |
57 MOJO_WRITE_DATA_FLAG_NONE)); | 57 MOJO_WRITE_DATA_FLAG_NONE)); |
58 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 58 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
59 d->EndWriteData(0)); | 59 d->EndWriteData(0)); |
60 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 60 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
61 d->ReadData(NULL, NULL, MOJO_READ_DATA_FLAG_NONE)); | 61 d->ReadData(NULL, NULL, MOJO_READ_DATA_FLAG_NONE)); |
62 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 62 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
63 d->BeginReadData(NULL, NULL, MOJO_READ_DATA_FLAG_NONE)); | 63 d->BeginReadData(NullUserPointer(), NullUserPointer(), |
| 64 MOJO_READ_DATA_FLAG_NONE)); |
64 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 65 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
65 d->EndReadData(0)); | 66 d->EndReadData(0)); |
66 Waiter w; | 67 Waiter w; |
67 w.Init(); | 68 w.Init(); |
68 EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION, | 69 EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION, |
69 d->AddWaiter(&w, ~MOJO_HANDLE_SIGNAL_NONE, 0)); | 70 d->AddWaiter(&w, ~MOJO_HANDLE_SIGNAL_NONE, 0)); |
70 // Okay to remove even if it wasn't added (or was already removed). | 71 // Okay to remove even if it wasn't added (or was already removed). |
71 d->RemoveWaiter(&w); | 72 d->RemoveWaiter(&w); |
72 d->RemoveWaiter(&w); | 73 d->RemoveWaiter(&w); |
73 | 74 |
74 EXPECT_EQ(MOJO_RESULT_OK, d->Close()); | 75 EXPECT_EQ(MOJO_RESULT_OK, d->Close()); |
75 | 76 |
76 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 77 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
77 d->WriteMessage(NULL, 0, NULL, MOJO_WRITE_MESSAGE_FLAG_NONE)); | 78 d->WriteMessage(NULL, 0, NULL, MOJO_WRITE_MESSAGE_FLAG_NONE)); |
78 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 79 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
79 d->ReadMessage(NULL, NULL, NULL, NULL, | 80 d->ReadMessage(NULL, NULL, NULL, NULL, |
80 MOJO_WRITE_MESSAGE_FLAG_NONE)); | 81 MOJO_WRITE_MESSAGE_FLAG_NONE)); |
81 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 82 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
82 d->WriteData(NULL, NULL, MOJO_WRITE_DATA_FLAG_NONE)); | 83 d->WriteData(NULL, NULL, MOJO_WRITE_DATA_FLAG_NONE)); |
83 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 84 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
84 d->BeginWriteData(NullUserPointer(), NullUserPointer(), | 85 d->BeginWriteData(NullUserPointer(), NullUserPointer(), |
85 MOJO_WRITE_DATA_FLAG_NONE)); | 86 MOJO_WRITE_DATA_FLAG_NONE)); |
86 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 87 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
87 d->EndWriteData(0)); | 88 d->EndWriteData(0)); |
88 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 89 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
89 d->ReadData(NULL, NULL, MOJO_READ_DATA_FLAG_NONE)); | 90 d->ReadData(NULL, NULL, MOJO_READ_DATA_FLAG_NONE)); |
90 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 91 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
91 d->BeginReadData(NULL, NULL, MOJO_READ_DATA_FLAG_NONE)); | 92 d->BeginReadData(NullUserPointer(), NullUserPointer(), |
| 93 MOJO_READ_DATA_FLAG_NONE)); |
92 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 94 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
93 d->EndReadData(0)); | 95 d->EndReadData(0)); |
94 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 96 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
95 d->AddWaiter(&w, ~MOJO_HANDLE_SIGNAL_NONE, 0)); | 97 d->AddWaiter(&w, ~MOJO_HANDLE_SIGNAL_NONE, 0)); |
96 d->RemoveWaiter(&w); | 98 d->RemoveWaiter(&w); |
97 } | 99 } |
98 | 100 |
99 class ThreadSafetyStressThread : public base::SimpleThread { | 101 class ThreadSafetyStressThread : public base::SimpleThread { |
100 public: | 102 public: |
101 enum DispatcherOp { | 103 enum DispatcherOp { |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
167 case END_WRITE_DATA: | 169 case END_WRITE_DATA: |
168 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 170 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
169 dispatcher_->EndWriteData(0)); | 171 dispatcher_->EndWriteData(0)); |
170 break; | 172 break; |
171 case READ_DATA: | 173 case READ_DATA: |
172 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 174 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
173 dispatcher_->ReadData(NULL, NULL, MOJO_READ_DATA_FLAG_NONE)); | 175 dispatcher_->ReadData(NULL, NULL, MOJO_READ_DATA_FLAG_NONE)); |
174 break; | 176 break; |
175 case BEGIN_READ_DATA: | 177 case BEGIN_READ_DATA: |
176 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 178 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
177 dispatcher_->BeginReadData(NULL, NULL, | 179 dispatcher_->BeginReadData(NullUserPointer(), |
| 180 NullUserPointer(), |
178 MOJO_READ_DATA_FLAG_NONE)); | 181 MOJO_READ_DATA_FLAG_NONE)); |
179 break; | 182 break; |
180 case END_READ_DATA: | 183 case END_READ_DATA: |
181 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 184 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
182 dispatcher_->EndReadData(0)); | 185 dispatcher_->EndReadData(0)); |
183 break; | 186 break; |
184 case DUPLICATE_BUFFER_HANDLE: { | 187 case DUPLICATE_BUFFER_HANDLE: { |
185 scoped_refptr<Dispatcher> unused; | 188 scoped_refptr<Dispatcher> unused; |
186 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 189 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
187 dispatcher_->DuplicateBufferHandle(NULL, &unused)); | 190 dispatcher_->DuplicateBufferHandle(NULL, &unused)); |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
269 event.Signal(); // Kicks off real work on the threads. | 272 event.Signal(); // Kicks off real work on the threads. |
270 } // Joins all the threads. | 273 } // Joins all the threads. |
271 | 274 |
272 EXPECT_EQ(MOJO_RESULT_OK, d->Close()); | 275 EXPECT_EQ(MOJO_RESULT_OK, d->Close()); |
273 } | 276 } |
274 } | 277 } |
275 | 278 |
276 } // namespace | 279 } // namespace |
277 } // namespace system | 280 } // namespace system |
278 } // namespace mojo | 281 } // namespace mojo |
OLD | NEW |