| 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 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 99 MyChannelDescriptorListener listener(-1); | 99 MyChannelDescriptorListener listener(-1); |
| 100 CreateChannel(&listener); | 100 CreateChannel(&listener); |
| 101 ASSERT_TRUE(ConnectChannel()); | 101 ASSERT_TRUE(ConnectChannel()); |
| 102 ASSERT_TRUE(StartClient()); | 102 ASSERT_TRUE(StartClient()); |
| 103 | 103 |
| 104 for (unsigned i = 0; i < kNumFDsToSend; ++i) { | 104 for (unsigned i = 0; i < kNumFDsToSend; ++i) { |
| 105 const int fd = open(kDevZeroPath, O_RDONLY); | 105 const int fd = open(kDevZeroPath, O_RDONLY); |
| 106 ASSERT_GE(fd, 0); | 106 ASSERT_GE(fd, 0); |
| 107 base::FileDescriptor descriptor(fd, true); | 107 base::FileDescriptor descriptor(fd, true); |
| 108 | 108 |
| 109 IPC::Message* message = new IPC::Message(0, 3); | 109 IPC::Message* message = |
| 110 new IPC::Message(0, 3, IPC::Message::PRIORITY_NORMAL); |
| 110 IPC::ParamTraits<base::FileDescriptor>::Write(message, descriptor); | 111 IPC::ParamTraits<base::FileDescriptor>::Write(message, descriptor); |
| 111 ASSERT_TRUE(sender()->Send(message)); | 112 ASSERT_TRUE(sender()->Send(message)); |
| 112 } | 113 } |
| 113 | 114 |
| 114 // Run message loop. | 115 // Run message loop. |
| 115 base::MessageLoop::current()->Run(); | 116 base::MessageLoop::current()->Run(); |
| 116 | 117 |
| 117 // Close the channel so the client's OnChannelError() gets fired. | 118 // Close the channel so the client's OnChannelError() gets fired. |
| 118 channel()->Close(); | 119 channel()->Close(); |
| 119 | 120 |
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 272 static void Connect(IPC::Channel *channel) { | 273 static void Connect(IPC::Channel *channel) { |
| 273 EXPECT_TRUE(channel->Connect()); | 274 EXPECT_TRUE(channel->Connect()); |
| 274 } | 275 } |
| 275 | 276 |
| 276 void Send(int fd) { | 277 void Send(int fd) { |
| 277 CHECK_EQ(base::MessageLoop::current(), in_thread_->message_loop()); | 278 CHECK_EQ(base::MessageLoop::current(), in_thread_->message_loop()); |
| 278 | 279 |
| 279 ASSERT_GE(fd, 0); | 280 ASSERT_GE(fd, 0); |
| 280 base::FileDescriptor descriptor(fd, true); | 281 base::FileDescriptor descriptor(fd, true); |
| 281 | 282 |
| 282 IPC::Message* message = new IPC::Message(0, 3); | 283 IPC::Message* message = |
| 284 new IPC::Message(0, 3, IPC::Message::PRIORITY_NORMAL); |
| 283 IPC::ParamTraits<base::FileDescriptor>::Write(message, descriptor); | 285 IPC::ParamTraits<base::FileDescriptor>::Write(message, descriptor); |
| 284 ASSERT_TRUE(in->Send(message)); | 286 ASSERT_TRUE(in->Send(message)); |
| 285 } | 287 } |
| 286 | 288 |
| 287 private: | 289 private: |
| 288 scoped_ptr<IPC::Channel> in, out; | 290 scoped_ptr<IPC::Channel> in, out; |
| 289 base::Thread* in_thread_; | 291 base::Thread* in_thread_; |
| 290 base::Thread* out_thread_; | 292 base::Thread* out_thread_; |
| 291 MyCBListener cb_listener_; | 293 MyCBListener cb_listener_; |
| 292 MyCBListener null_listener_; | 294 MyCBListener null_listener_; |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 369 base::WaitableEvent received_; | 371 base::WaitableEvent received_; |
| 370 }; | 372 }; |
| 371 | 373 |
| 372 TEST_F(IPCMultiSendingFdsTest, StressTest) { | 374 TEST_F(IPCMultiSendingFdsTest, StressTest) { |
| 373 Run(); | 375 Run(); |
| 374 } | 376 } |
| 375 | 377 |
| 376 } // namespace | 378 } // namespace |
| 377 | 379 |
| 378 #endif // defined(OS_POSIX) | 380 #endif // defined(OS_POSIX) |
| OLD | NEW |