OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 // Unit test for SyncChannel. | 5 // Unit test for SyncChannel. |
6 | 6 |
7 #include "ipc/ipc_sync_channel.h" | 7 #include "ipc/ipc_sync_channel.h" |
8 | 8 |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
179 channel_.reset(CreateChannel()); | 179 channel_.reset(CreateChannel()); |
180 channel_created_->Signal(); | 180 channel_created_->Signal(); |
181 Run(); | 181 Run(); |
182 } | 182 } |
183 | 183 |
184 void OnListenerThreadShutdown1(WaitableEvent* listener_event, | 184 void OnListenerThreadShutdown1(WaitableEvent* listener_event, |
185 WaitableEvent* ipc_event) { | 185 WaitableEvent* ipc_event) { |
186 // SyncChannel needs to be destructed on the thread that it was created on. | 186 // SyncChannel needs to be destructed on the thread that it was created on. |
187 channel_.reset(); | 187 channel_.reset(); |
188 | 188 |
189 MessageLoop::current()->RunAllPending(); | 189 MessageLoop::current()->RunUntilIdle(); |
190 | 190 |
191 ipc_thread_.message_loop()->PostTask( | 191 ipc_thread_.message_loop()->PostTask( |
192 FROM_HERE, base::Bind(&Worker::OnIPCThreadShutdown, this, | 192 FROM_HERE, base::Bind(&Worker::OnIPCThreadShutdown, this, |
193 listener_event, ipc_event)); | 193 listener_event, ipc_event)); |
194 } | 194 } |
195 | 195 |
196 void OnIPCThreadShutdown(WaitableEvent* listener_event, | 196 void OnIPCThreadShutdown(WaitableEvent* listener_event, |
197 WaitableEvent* ipc_event) { | 197 WaitableEvent* ipc_event) { |
198 MessageLoop::current()->RunAllPending(); | 198 MessageLoop::current()->RunUntilIdle(); |
199 ipc_event->Signal(); | 199 ipc_event->Signal(); |
200 | 200 |
201 listener_thread_.message_loop()->PostTask( | 201 listener_thread_.message_loop()->PostTask( |
202 FROM_HERE, base::Bind(&Worker::OnListenerThreadShutdown2, this, | 202 FROM_HERE, base::Bind(&Worker::OnListenerThreadShutdown2, this, |
203 listener_event)); | 203 listener_event)); |
204 } | 204 } |
205 | 205 |
206 void OnListenerThreadShutdown2(WaitableEvent* listener_event) { | 206 void OnListenerThreadShutdown2(WaitableEvent* listener_event) { |
207 MessageLoop::current()->RunAllPending(); | 207 MessageLoop::current()->RunUntilIdle(); |
208 listener_event->Signal(); | 208 listener_event->Signal(); |
209 } | 209 } |
210 | 210 |
211 bool OnMessageReceived(const Message& message) { | 211 bool OnMessageReceived(const Message& message) { |
212 IPC_BEGIN_MESSAGE_MAP(Worker, message) | 212 IPC_BEGIN_MESSAGE_MAP(Worker, message) |
213 IPC_MESSAGE_HANDLER_DELAY_REPLY(SyncChannelTestMsg_Double, OnDoubleDelay) | 213 IPC_MESSAGE_HANDLER_DELAY_REPLY(SyncChannelTestMsg_Double, OnDoubleDelay) |
214 IPC_MESSAGE_HANDLER_DELAY_REPLY(SyncChannelTestMsg_AnswerToLife, | 214 IPC_MESSAGE_HANDLER_DELAY_REPLY(SyncChannelTestMsg_AnswerToLife, |
215 OnAnswerDelay) | 215 OnAnswerDelay) |
216 IPC_MESSAGE_HANDLER_DELAY_REPLY(SyncChannelNestedTestMsg_String, | 216 IPC_MESSAGE_HANDLER_DELAY_REPLY(SyncChannelNestedTestMsg_String, |
217 OnNestedTestMsg) | 217 OnNestedTestMsg) |
(...skipping 1738 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1956 | 1956 |
1957 } // namespace | 1957 } // namespace |
1958 | 1958 |
1959 // Windows needs to send an out-of-band secret to verify the client end of the | 1959 // Windows needs to send an out-of-band secret to verify the client end of the |
1960 // channel. Test that we still connect correctly in that case. | 1960 // channel. Test that we still connect correctly in that case. |
1961 TEST_F(IPCSyncChannelTest, Verified) { | 1961 TEST_F(IPCSyncChannelTest, Verified) { |
1962 Verified(); | 1962 Verified(); |
1963 } | 1963 } |
1964 | 1964 |
1965 } // namespace IPC | 1965 } // namespace IPC |
OLD | NEW |