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 30 matching lines...) Expand all Loading... |
41 }; | 41 }; |
42 | 42 |
43 TEST(DispatcherTest, Basic) { | 43 TEST(DispatcherTest, Basic) { |
44 scoped_refptr<Dispatcher> d(new TrivialDispatcher()); | 44 scoped_refptr<Dispatcher> d(new TrivialDispatcher()); |
45 | 45 |
46 EXPECT_EQ(Dispatcher::kTypeUnknown, d->GetType()); | 46 EXPECT_EQ(Dispatcher::kTypeUnknown, d->GetType()); |
47 | 47 |
48 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 48 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
49 d->WriteMessage(NULL, 0, NULL, MOJO_WRITE_MESSAGE_FLAG_NONE)); | 49 d->WriteMessage(NULL, 0, NULL, MOJO_WRITE_MESSAGE_FLAG_NONE)); |
50 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 50 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
51 d->ReadMessage(NULL, NULL, NULL, NULL, | 51 d->ReadMessage(NullUserPointer(), NullUserPointer(), NULL, NULL, |
52 MOJO_WRITE_MESSAGE_FLAG_NONE)); | 52 MOJO_WRITE_MESSAGE_FLAG_NONE)); |
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(NullUserPointer(), NullUserPointer(), | 63 d->BeginReadData(NullUserPointer(), NullUserPointer(), |
64 MOJO_READ_DATA_FLAG_NONE)); | 64 MOJO_READ_DATA_FLAG_NONE)); |
65 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 65 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
66 d->EndReadData(0)); | 66 d->EndReadData(0)); |
67 Waiter w; | 67 Waiter w; |
68 w.Init(); | 68 w.Init(); |
69 EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION, | 69 EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION, |
70 d->AddWaiter(&w, ~MOJO_HANDLE_SIGNAL_NONE, 0)); | 70 d->AddWaiter(&w, ~MOJO_HANDLE_SIGNAL_NONE, 0)); |
71 // 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). |
72 d->RemoveWaiter(&w); | 72 d->RemoveWaiter(&w); |
73 d->RemoveWaiter(&w); | 73 d->RemoveWaiter(&w); |
74 | 74 |
75 EXPECT_EQ(MOJO_RESULT_OK, d->Close()); | 75 EXPECT_EQ(MOJO_RESULT_OK, d->Close()); |
76 | 76 |
77 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 77 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
78 d->WriteMessage(NULL, 0, NULL, MOJO_WRITE_MESSAGE_FLAG_NONE)); | 78 d->WriteMessage(NULL, 0, NULL, MOJO_WRITE_MESSAGE_FLAG_NONE)); |
79 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 79 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
80 d->ReadMessage(NULL, NULL, NULL, NULL, | 80 d->ReadMessage(NullUserPointer(), NullUserPointer(), NULL, NULL, |
81 MOJO_WRITE_MESSAGE_FLAG_NONE)); | 81 MOJO_WRITE_MESSAGE_FLAG_NONE)); |
82 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 82 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
83 d->WriteData(NULL, NULL, MOJO_WRITE_DATA_FLAG_NONE)); | 83 d->WriteData(NULL, NULL, MOJO_WRITE_DATA_FLAG_NONE)); |
84 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 84 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
85 d->BeginWriteData(NullUserPointer(), NullUserPointer(), | 85 d->BeginWriteData(NullUserPointer(), NullUserPointer(), |
86 MOJO_WRITE_DATA_FLAG_NONE)); | 86 MOJO_WRITE_DATA_FLAG_NONE)); |
87 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 87 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
88 d->EndWriteData(0)); | 88 d->EndWriteData(0)); |
89 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 89 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
90 d->ReadData(NULL, NULL, MOJO_READ_DATA_FLAG_NONE)); | 90 d->ReadData(NULL, NULL, MOJO_READ_DATA_FLAG_NONE)); |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
145 << "Result: " << r; | 145 << "Result: " << r; |
146 break; | 146 break; |
147 } | 147 } |
148 case WRITE_MESSAGE: | 148 case WRITE_MESSAGE: |
149 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 149 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
150 dispatcher_->WriteMessage(NULL, 0, NULL, | 150 dispatcher_->WriteMessage(NULL, 0, NULL, |
151 MOJO_WRITE_MESSAGE_FLAG_NONE)); | 151 MOJO_WRITE_MESSAGE_FLAG_NONE)); |
152 break; | 152 break; |
153 case READ_MESSAGE: | 153 case READ_MESSAGE: |
154 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 154 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
155 dispatcher_->ReadMessage(NULL, NULL, NULL, NULL, | 155 dispatcher_->ReadMessage(NullUserPointer(), NullUserPointer(), |
| 156 NULL, NULL, |
156 MOJO_WRITE_MESSAGE_FLAG_NONE)); | 157 MOJO_WRITE_MESSAGE_FLAG_NONE)); |
157 break; | 158 break; |
158 case WRITE_DATA: | 159 case WRITE_DATA: |
159 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 160 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
160 dispatcher_->WriteData(NULL, NULL, | 161 dispatcher_->WriteData(NULL, NULL, |
161 MOJO_WRITE_DATA_FLAG_NONE)); | 162 MOJO_WRITE_DATA_FLAG_NONE)); |
162 break; | 163 break; |
163 case BEGIN_WRITE_DATA: | 164 case BEGIN_WRITE_DATA: |
164 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 165 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
165 dispatcher_->BeginWriteData(NullUserPointer(), | 166 dispatcher_->BeginWriteData(NullUserPointer(), |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
272 event.Signal(); // Kicks off real work on the threads. | 273 event.Signal(); // Kicks off real work on the threads. |
273 } // Joins all the threads. | 274 } // Joins all the threads. |
274 | 275 |
275 EXPECT_EQ(MOJO_RESULT_OK, d->Close()); | 276 EXPECT_EQ(MOJO_RESULT_OK, d->Close()); |
276 } | 277 } |
277 } | 278 } |
278 | 279 |
279 } // namespace | 280 } // namespace |
280 } // namespace system | 281 } // namespace system |
281 } // namespace mojo | 282 } // namespace mojo |
OLD | NEW |