| 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 // These tests are POSIX only. | 5 // These tests are POSIX only. |
| 6 | 6 |
| 7 #include "ipc/ipc_channel_posix.h" | 7 #include "ipc/ipc_channel_posix.h" |
| 8 | 8 |
| 9 #include <fcntl.h> | 9 #include <fcntl.h> |
| 10 #include <sys/socket.h> | 10 #include <sys/socket.h> |
| (...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 237 ASSERT_TRUE(channel.Connect()); | 237 ASSERT_TRUE(channel.Connect()); |
| 238 ASSERT_TRUE(channel.AcceptsConnections()); | 238 ASSERT_TRUE(channel.AcceptsConnections()); |
| 239 ASSERT_FALSE(channel.HasAcceptedConnection()); | 239 ASSERT_FALSE(channel.HasAcceptedConnection()); |
| 240 | 240 |
| 241 base::ProcessHandle handle = SpawnChild("IPCChannelPosixTestConnectionProc", | 241 base::ProcessHandle handle = SpawnChild("IPCChannelPosixTestConnectionProc", |
| 242 false); | 242 false); |
| 243 ASSERT_TRUE(handle); | 243 ASSERT_TRUE(handle); |
| 244 SpinRunLoop(TestTimeouts::action_max_timeout()); | 244 SpinRunLoop(TestTimeouts::action_max_timeout()); |
| 245 ASSERT_EQ(IPCChannelPosixTestListener::CONNECTED, listener.status()); | 245 ASSERT_EQ(IPCChannelPosixTestListener::CONNECTED, listener.status()); |
| 246 ASSERT_TRUE(channel.HasAcceptedConnection()); | 246 ASSERT_TRUE(channel.HasAcceptedConnection()); |
| 247 IPC::Message* message = new IPC::Message(0, /* routing_id */ | 247 IPC::Message* message = new IPC::Message(0, // routing_id |
| 248 kQuitMessage /* message type */); | 248 kQuitMessage, // message type |
| 249 IPC::Message::PRIORITY_NORMAL); |
| 249 channel.Send(message); | 250 channel.Send(message); |
| 250 SpinRunLoop(TestTimeouts::action_timeout()); | 251 SpinRunLoop(TestTimeouts::action_timeout()); |
| 251 int exit_code = 0; | 252 int exit_code = 0; |
| 252 EXPECT_TRUE(base::WaitForExitCode(handle, &exit_code)); | 253 EXPECT_TRUE(base::WaitForExitCode(handle, &exit_code)); |
| 253 EXPECT_EQ(0, exit_code); | 254 EXPECT_EQ(0, exit_code); |
| 254 ASSERT_EQ(IPCChannelPosixTestListener::CHANNEL_ERROR, listener.status()); | 255 ASSERT_EQ(IPCChannelPosixTestListener::CHANNEL_ERROR, listener.status()); |
| 255 ASSERT_FALSE(channel.HasAcceptedConnection()); | 256 ASSERT_FALSE(channel.HasAcceptedConnection()); |
| 256 } | 257 } |
| 257 | 258 |
| 258 TEST_F(IPCChannelPosixTest, ResetState) { | 259 TEST_F(IPCChannelPosixTest, ResetState) { |
| (...skipping 16 matching lines...) Expand all Loading... |
| 275 ASSERT_TRUE(channel.HasAcceptedConnection()); | 276 ASSERT_TRUE(channel.HasAcceptedConnection()); |
| 276 channel.ResetToAcceptingConnectionState(); | 277 channel.ResetToAcceptingConnectionState(); |
| 277 ASSERT_FALSE(channel.HasAcceptedConnection()); | 278 ASSERT_FALSE(channel.HasAcceptedConnection()); |
| 278 | 279 |
| 279 base::ProcessHandle handle2 = SpawnChild("IPCChannelPosixTestConnectionProc", | 280 base::ProcessHandle handle2 = SpawnChild("IPCChannelPosixTestConnectionProc", |
| 280 false); | 281 false); |
| 281 ASSERT_TRUE(handle2); | 282 ASSERT_TRUE(handle2); |
| 282 SpinRunLoop(TestTimeouts::action_max_timeout()); | 283 SpinRunLoop(TestTimeouts::action_max_timeout()); |
| 283 ASSERT_EQ(IPCChannelPosixTestListener::CONNECTED, listener.status()); | 284 ASSERT_EQ(IPCChannelPosixTestListener::CONNECTED, listener.status()); |
| 284 ASSERT_TRUE(channel.HasAcceptedConnection()); | 285 ASSERT_TRUE(channel.HasAcceptedConnection()); |
| 285 IPC::Message* message = new IPC::Message(0, /* routing_id */ | 286 IPC::Message* message = new IPC::Message(0, // routing_id |
| 286 kQuitMessage /* message type */); | 287 kQuitMessage, // message type |
| 288 IPC::Message::PRIORITY_NORMAL); |
| 287 channel.Send(message); | 289 channel.Send(message); |
| 288 SpinRunLoop(TestTimeouts::action_timeout()); | 290 SpinRunLoop(TestTimeouts::action_timeout()); |
| 289 EXPECT_TRUE(base::KillProcess(handle, 0, false)); | 291 EXPECT_TRUE(base::KillProcess(handle, 0, false)); |
| 290 int exit_code = 0; | 292 int exit_code = 0; |
| 291 EXPECT_TRUE(base::WaitForExitCode(handle2, &exit_code)); | 293 EXPECT_TRUE(base::WaitForExitCode(handle2, &exit_code)); |
| 292 EXPECT_EQ(0, exit_code); | 294 EXPECT_EQ(0, exit_code); |
| 293 ASSERT_EQ(IPCChannelPosixTestListener::CHANNEL_ERROR, listener.status()); | 295 ASSERT_EQ(IPCChannelPosixTestListener::CHANNEL_ERROR, listener.status()); |
| 294 ASSERT_FALSE(channel.HasAcceptedConnection()); | 296 ASSERT_FALSE(channel.HasAcceptedConnection()); |
| 295 } | 297 } |
| 296 | 298 |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 333 ASSERT_TRUE(channel.HasAcceptedConnection()); | 335 ASSERT_TRUE(channel.HasAcceptedConnection()); |
| 334 base::ProcessHandle handle2 = SpawnChild("IPCChannelPosixFailConnectionProc", | 336 base::ProcessHandle handle2 = SpawnChild("IPCChannelPosixFailConnectionProc", |
| 335 false); | 337 false); |
| 336 ASSERT_TRUE(handle2); | 338 ASSERT_TRUE(handle2); |
| 337 SpinRunLoop(TestTimeouts::action_max_timeout()); | 339 SpinRunLoop(TestTimeouts::action_max_timeout()); |
| 338 int exit_code = 0; | 340 int exit_code = 0; |
| 339 EXPECT_TRUE(base::WaitForExitCode(handle2, &exit_code)); | 341 EXPECT_TRUE(base::WaitForExitCode(handle2, &exit_code)); |
| 340 EXPECT_EQ(exit_code, 0); | 342 EXPECT_EQ(exit_code, 0); |
| 341 ASSERT_EQ(IPCChannelPosixTestListener::DENIED, listener.status()); | 343 ASSERT_EQ(IPCChannelPosixTestListener::DENIED, listener.status()); |
| 342 ASSERT_TRUE(channel.HasAcceptedConnection()); | 344 ASSERT_TRUE(channel.HasAcceptedConnection()); |
| 343 IPC::Message* message = new IPC::Message(0, /* routing_id */ | 345 IPC::Message* message = new IPC::Message(0, // routing_id |
| 344 kQuitMessage /* message type */); | 346 kQuitMessage, // message type |
| 347 IPC::Message::PRIORITY_NORMAL); |
| 345 channel.Send(message); | 348 channel.Send(message); |
| 346 SpinRunLoop(TestTimeouts::action_timeout()); | 349 SpinRunLoop(TestTimeouts::action_timeout()); |
| 347 EXPECT_TRUE(base::WaitForExitCode(handle, &exit_code)); | 350 EXPECT_TRUE(base::WaitForExitCode(handle, &exit_code)); |
| 348 EXPECT_EQ(exit_code, 0); | 351 EXPECT_EQ(exit_code, 0); |
| 349 ASSERT_EQ(IPCChannelPosixTestListener::CHANNEL_ERROR, listener.status()); | 352 ASSERT_EQ(IPCChannelPosixTestListener::CHANNEL_ERROR, listener.status()); |
| 350 ASSERT_FALSE(channel.HasAcceptedConnection()); | 353 ASSERT_FALSE(channel.HasAcceptedConnection()); |
| 351 } | 354 } |
| 352 | 355 |
| 353 TEST_F(IPCChannelPosixTest, DoubleServer) { | 356 TEST_F(IPCChannelPosixTest, DoubleServer) { |
| 354 // Test setting up two servers with the same name. | 357 // Test setting up two servers with the same name. |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 414 if (connected) { | 417 if (connected) { |
| 415 IPCChannelPosixTest::SpinRunLoop(TestTimeouts::action_max_timeout()); | 418 IPCChannelPosixTest::SpinRunLoop(TestTimeouts::action_max_timeout()); |
| 416 EXPECT_EQ(IPCChannelPosixTestListener::CHANNEL_ERROR, listener.status()); | 419 EXPECT_EQ(IPCChannelPosixTestListener::CHANNEL_ERROR, listener.status()); |
| 417 } else { | 420 } else { |
| 418 EXPECT_EQ(IPCChannelPosixTestListener::DISCONNECTED, listener.status()); | 421 EXPECT_EQ(IPCChannelPosixTestListener::DISCONNECTED, listener.status()); |
| 419 } | 422 } |
| 420 return 0; | 423 return 0; |
| 421 } | 424 } |
| 422 | 425 |
| 423 } // namespace | 426 } // namespace |
| OLD | NEW |