| 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 28 matching lines...) Expand all Loading... |
| 39 | 39 |
| 40 DISALLOW_COPY_AND_ASSIGN(TrivialDispatcher); | 40 DISALLOW_COPY_AND_ASSIGN(TrivialDispatcher); |
| 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(NullUserPointer(), 0, NULL, |
| 50 MOJO_WRITE_MESSAGE_FLAG_NONE)); |
| 50 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 51 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
| 51 d->ReadMessage(NullUserPointer(), NullUserPointer(), NULL, NULL, | 52 d->ReadMessage(NullUserPointer(), NullUserPointer(), NULL, NULL, |
| 52 MOJO_WRITE_MESSAGE_FLAG_NONE)); | 53 MOJO_WRITE_MESSAGE_FLAG_NONE)); |
| 53 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 54 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
| 54 d->WriteData(NULL, NULL, MOJO_WRITE_DATA_FLAG_NONE)); | 55 d->WriteData(NULL, NULL, MOJO_WRITE_DATA_FLAG_NONE)); |
| 55 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 56 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
| 56 d->BeginWriteData(NullUserPointer(), NullUserPointer(), | 57 d->BeginWriteData(NullUserPointer(), NullUserPointer(), |
| 57 MOJO_WRITE_DATA_FLAG_NONE)); | 58 MOJO_WRITE_DATA_FLAG_NONE)); |
| 58 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 59 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
| 59 d->EndWriteData(0)); | 60 d->EndWriteData(0)); |
| 60 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 61 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
| 61 d->ReadData(NULL, NULL, MOJO_READ_DATA_FLAG_NONE)); | 62 d->ReadData(NULL, NULL, MOJO_READ_DATA_FLAG_NONE)); |
| 62 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 63 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
| 63 d->BeginReadData(NullUserPointer(), NullUserPointer(), | 64 d->BeginReadData(NullUserPointer(), NullUserPointer(), |
| 64 MOJO_READ_DATA_FLAG_NONE)); | 65 MOJO_READ_DATA_FLAG_NONE)); |
| 65 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 66 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
| 66 d->EndReadData(0)); | 67 d->EndReadData(0)); |
| 67 Waiter w; | 68 Waiter w; |
| 68 w.Init(); | 69 w.Init(); |
| 69 EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION, | 70 EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION, |
| 70 d->AddWaiter(&w, ~MOJO_HANDLE_SIGNAL_NONE, 0)); | 71 d->AddWaiter(&w, ~MOJO_HANDLE_SIGNAL_NONE, 0)); |
| 71 // Okay to remove even if it wasn't added (or was already removed). | 72 // Okay to remove even if it wasn't added (or was already removed). |
| 72 d->RemoveWaiter(&w); | 73 d->RemoveWaiter(&w); |
| 73 d->RemoveWaiter(&w); | 74 d->RemoveWaiter(&w); |
| 74 | 75 |
| 75 EXPECT_EQ(MOJO_RESULT_OK, d->Close()); | 76 EXPECT_EQ(MOJO_RESULT_OK, d->Close()); |
| 76 | 77 |
| 77 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 78 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
| 78 d->WriteMessage(NULL, 0, NULL, MOJO_WRITE_MESSAGE_FLAG_NONE)); | 79 d->WriteMessage(NullUserPointer(), 0, NULL, |
| 80 MOJO_WRITE_MESSAGE_FLAG_NONE)); |
| 79 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 81 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
| 80 d->ReadMessage(NullUserPointer(), NullUserPointer(), NULL, NULL, | 82 d->ReadMessage(NullUserPointer(), NullUserPointer(), NULL, NULL, |
| 81 MOJO_WRITE_MESSAGE_FLAG_NONE)); | 83 MOJO_WRITE_MESSAGE_FLAG_NONE)); |
| 82 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 84 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
| 83 d->WriteData(NULL, NULL, MOJO_WRITE_DATA_FLAG_NONE)); | 85 d->WriteData(NULL, NULL, MOJO_WRITE_DATA_FLAG_NONE)); |
| 84 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 86 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
| 85 d->BeginWriteData(NullUserPointer(), NullUserPointer(), | 87 d->BeginWriteData(NullUserPointer(), NullUserPointer(), |
| 86 MOJO_WRITE_DATA_FLAG_NONE)); | 88 MOJO_WRITE_DATA_FLAG_NONE)); |
| 87 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 89 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
| 88 d->EndWriteData(0)); | 90 d->EndWriteData(0)); |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 140 waiter_.Init(); | 142 waiter_.Init(); |
| 141 switch(op_) { | 143 switch(op_) { |
| 142 case CLOSE: { | 144 case CLOSE: { |
| 143 MojoResult r = dispatcher_->Close(); | 145 MojoResult r = dispatcher_->Close(); |
| 144 EXPECT_TRUE(r == MOJO_RESULT_OK || r == MOJO_RESULT_INVALID_ARGUMENT) | 146 EXPECT_TRUE(r == MOJO_RESULT_OK || r == MOJO_RESULT_INVALID_ARGUMENT) |
| 145 << "Result: " << r; | 147 << "Result: " << r; |
| 146 break; | 148 break; |
| 147 } | 149 } |
| 148 case WRITE_MESSAGE: | 150 case WRITE_MESSAGE: |
| 149 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 151 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
| 150 dispatcher_->WriteMessage(NULL, 0, NULL, | 152 dispatcher_->WriteMessage(NullUserPointer(), 0, NULL, |
| 151 MOJO_WRITE_MESSAGE_FLAG_NONE)); | 153 MOJO_WRITE_MESSAGE_FLAG_NONE)); |
| 152 break; | 154 break; |
| 153 case READ_MESSAGE: | 155 case READ_MESSAGE: |
| 154 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 156 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
| 155 dispatcher_->ReadMessage(NullUserPointer(), NullUserPointer(), | 157 dispatcher_->ReadMessage(NullUserPointer(), NullUserPointer(), |
| 156 NULL, NULL, | 158 NULL, NULL, |
| 157 MOJO_WRITE_MESSAGE_FLAG_NONE)); | 159 MOJO_WRITE_MESSAGE_FLAG_NONE)); |
| 158 break; | 160 break; |
| 159 case WRITE_DATA: | 161 case WRITE_DATA: |
| 160 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 162 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 273 event.Signal(); // Kicks off real work on the threads. | 275 event.Signal(); // Kicks off real work on the threads. |
| 274 } // Joins all the threads. | 276 } // Joins all the threads. |
| 275 | 277 |
| 276 EXPECT_EQ(MOJO_RESULT_OK, d->Close()); | 278 EXPECT_EQ(MOJO_RESULT_OK, d->Close()); |
| 277 } | 279 } |
| 278 } | 280 } |
| 279 | 281 |
| 280 } // namespace | 282 } // namespace |
| 281 } // namespace system | 283 } // namespace system |
| 282 } // namespace mojo | 284 } // namespace mojo |
| OLD | NEW |