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 #include "build/build_config.h" | 5 #include "build/build_config.h" |
6 | 6 |
7 #if defined(OS_POSIX) | 7 #if defined(OS_POSIX) |
8 #if defined(OS_MACOSX) | 8 #if defined(OS_MACOSX) |
9 extern "C" { | 9 extern "C" { |
10 #include <sandbox.h> | 10 #include <sandbox.h> |
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
142 RunServer(); | 142 RunServer(); |
143 } | 143 } |
144 | 144 |
145 int SendFdsClientCommon(const std::string& test_client_name, | 145 int SendFdsClientCommon(const std::string& test_client_name, |
146 ino_t expected_inode_num) { | 146 ino_t expected_inode_num) { |
147 base::MessageLoopForIO main_message_loop; | 147 base::MessageLoopForIO main_message_loop; |
148 MyChannelDescriptorListener listener(expected_inode_num); | 148 MyChannelDescriptorListener listener(expected_inode_num); |
149 | 149 |
150 // Set up IPC channel. | 150 // Set up IPC channel. |
151 scoped_ptr<IPC::Channel> channel(IPC::Channel::CreateClient( | 151 scoped_ptr<IPC::Channel> channel(IPC::Channel::CreateClient( |
152 IPCTestBase::GetChannelName(test_client_name), | 152 IPCTestBase::GetChannelName(test_client_name), &listener, nullptr)); |
153 &listener)); | |
154 CHECK(channel->Connect()); | 153 CHECK(channel->Connect()); |
155 | 154 |
156 // Run message loop. | 155 // Run message loop. |
157 base::MessageLoop::current()->Run(); | 156 base::MessageLoop::current()->Run(); |
158 | 157 |
159 // Verify that the message loop was exited due to getting the correct number | 158 // Verify that the message loop was exited due to getting the correct number |
160 // of descriptors, and not because of the channel closing unexpectedly. | 159 // of descriptors, and not because of the channel closing unexpectedly. |
161 CHECK(listener.GotExpectedNumberOfDescriptors()); | 160 CHECK(listener.GotExpectedNumberOfDescriptors()); |
162 | 161 |
163 return 0; | 162 return 0; |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
238 base::Callback<void(int)> cb, | 237 base::Callback<void(int)> cb, |
239 int fds_to_send) : | 238 int fds_to_send) : |
240 in_thread_(in_thread), | 239 in_thread_(in_thread), |
241 out_thread_(out_thread), | 240 out_thread_(out_thread), |
242 cb_listener_(cb, fds_to_send), | 241 cb_listener_(cb, fds_to_send), |
243 null_listener_(base::Bind(&null_cb), 0) { | 242 null_listener_(base::Bind(&null_cb), 0) { |
244 } | 243 } |
245 | 244 |
246 void Init() { | 245 void Init() { |
247 IPC::ChannelHandle in_handle("IN"); | 246 IPC::ChannelHandle in_handle("IN"); |
248 in = IPC::Channel::CreateServer(in_handle, &null_listener_); | 247 in = IPC::Channel::CreateServer(in_handle, &null_listener_, nullptr); |
249 IPC::ChannelHandle out_handle( | 248 IPC::ChannelHandle out_handle( |
250 "OUT", base::FileDescriptor(in->TakeClientFileDescriptor())); | 249 "OUT", base::FileDescriptor(in->TakeClientFileDescriptor())); |
251 out = IPC::Channel::CreateClient(out_handle, &cb_listener_); | 250 out = IPC::Channel::CreateClient(out_handle, &cb_listener_, nullptr); |
252 // PostTask the connect calls to make sure the callbacks happens | 251 // PostTask the connect calls to make sure the callbacks happens |
253 // on the right threads. | 252 // on the right threads. |
254 in_thread_->task_runner()->PostTask( | 253 in_thread_->task_runner()->PostTask( |
255 FROM_HERE, base::Bind(&PipeChannelHelper::Connect, in.get())); | 254 FROM_HERE, base::Bind(&PipeChannelHelper::Connect, in.get())); |
256 out_thread_->task_runner()->PostTask( | 255 out_thread_->task_runner()->PostTask( |
257 FROM_HERE, base::Bind(&PipeChannelHelper::Connect, out.get())); | 256 FROM_HERE, base::Bind(&PipeChannelHelper::Connect, out.get())); |
258 } | 257 } |
259 | 258 |
260 static void DestroyChannel(scoped_ptr<IPC::Channel> *c, | 259 static void DestroyChannel(scoped_ptr<IPC::Channel> *c, |
261 base::WaitableEvent *event) { | 260 base::WaitableEvent *event) { |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
373 base::WaitableEvent received_; | 372 base::WaitableEvent received_; |
374 }; | 373 }; |
375 | 374 |
376 TEST_F(IPCMultiSendingFdsTest, StressTest) { | 375 TEST_F(IPCMultiSendingFdsTest, StressTest) { |
377 Run(); | 376 Run(); |
378 } | 377 } |
379 | 378 |
380 } // namespace | 379 } // namespace |
381 | 380 |
382 #endif // defined(OS_POSIX) | 381 #endif // defined(OS_POSIX) |
OLD | NEW |