| OLD | NEW |
| 1 // Copyright 2014 The Crashpad Authors. All rights reserved. | 1 // Copyright 2014 The Crashpad Authors. All rights reserved. |
| 2 // | 2 // |
| 3 // Licensed under the Apache License, Version 2.0 (the "License"); | 3 // Licensed under the Apache License, Version 2.0 (the "License"); |
| 4 // you may not use this file except in compliance with the License. | 4 // you may not use this file except in compliance with the License. |
| 5 // You may obtain a copy of the License at | 5 // You may obtain a copy of the License at |
| 6 // | 6 // |
| 7 // http://www.apache.org/licenses/LICENSE-2.0 | 7 // http://www.apache.org/licenses/LICENSE-2.0 |
| 8 // | 8 // |
| 9 // Unless required by applicable law or agreed to in writing, software | 9 // Unless required by applicable law or agreed to in writing, software |
| 10 // distributed under the License is distributed on an "AS IS" BASIS, | 10 // distributed under the License is distributed on an "AS IS" BASIS, |
| (...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 328 MACH_PORT_LIMITS_INFO, | 328 MACH_PORT_LIMITS_INFO, |
| 329 reinterpret_cast<mach_port_info_t>(&limits), | 329 reinterpret_cast<mach_port_info_t>(&limits), |
| 330 MACH_PORT_LIMITS_INFO_COUNT); | 330 MACH_PORT_LIMITS_INFO_COUNT); |
| 331 ASSERT_EQ(KERN_SUCCESS, kr) | 331 ASSERT_EQ(KERN_SUCCESS, kr) |
| 332 << MachErrorMessage(kr, "mach_port_set_attributes"); | 332 << MachErrorMessage(kr, "mach_port_set_attributes"); |
| 333 } | 333 } |
| 334 | 334 |
| 335 if (options_.child_wait_for_parent_pipe_early) { | 335 if (options_.child_wait_for_parent_pipe_early) { |
| 336 // Tell the child to begin sending messages. | 336 // Tell the child to begin sending messages. |
| 337 char c = '\0'; | 337 char c = '\0'; |
| 338 CheckedWriteFile(WritePipeFD(), &c, 1); | 338 CheckedWriteFile(WritePipeHandle(), &c, 1); |
| 339 } | 339 } |
| 340 | 340 |
| 341 if (options_.parent_wait_for_child_pipe) { | 341 if (options_.parent_wait_for_child_pipe) { |
| 342 // Wait until the child is done sending what it’s going to send. | 342 // Wait until the child is done sending what it’s going to send. |
| 343 char c; | 343 char c; |
| 344 CheckedReadFile(ReadPipeFD(), &c, 1); | 344 CheckedReadFile(ReadPipeHandle(), &c, 1); |
| 345 EXPECT_EQ('\0', c); | 345 EXPECT_EQ('\0', c); |
| 346 } | 346 } |
| 347 | 347 |
| 348 ASSERT_EQ(options_.expect_server_result, | 348 ASSERT_EQ(options_.expect_server_result, |
| 349 (kr = MachMessageServer::Run(this, | 349 (kr = MachMessageServer::Run(this, |
| 350 local_port, | 350 local_port, |
| 351 options_.server_options, | 351 options_.server_options, |
| 352 options_.server_persistent, | 352 options_.server_persistent, |
| 353 options_.server_receive_large, | 353 options_.server_receive_large, |
| 354 options_.server_timeout_ms))) | 354 options_.server_timeout_ms))) |
| (...skipping 24 matching lines...) Expand all Loading... |
| 379 // this test environment. | 379 // this test environment. |
| 380 kr = mach_port_type( | 380 kr = mach_port_type( |
| 381 mach_task_self(), parent_complex_message_port_, &type); | 381 mach_task_self(), parent_complex_message_port_, &type); |
| 382 EXPECT_EQ(KERN_INVALID_NAME, kr) | 382 EXPECT_EQ(KERN_INVALID_NAME, kr) |
| 383 << MachErrorMessage(kr, "mach_port_type"); | 383 << MachErrorMessage(kr, "mach_port_type"); |
| 384 } | 384 } |
| 385 | 385 |
| 386 if (options_.child_wait_for_parent_pipe_late) { | 386 if (options_.child_wait_for_parent_pipe_late) { |
| 387 // Let the child know it’s safe to exit. | 387 // Let the child know it’s safe to exit. |
| 388 char c = '\0'; | 388 char c = '\0'; |
| 389 CheckedWriteFile(WritePipeFD(), &c, 1); | 389 CheckedWriteFile(WritePipeHandle(), &c, 1); |
| 390 } | 390 } |
| 391 } | 391 } |
| 392 | 392 |
| 393 void MachMultiprocessChild() override { | 393 void MachMultiprocessChild() override { |
| 394 if (options_.child_wait_for_parent_pipe_early) { | 394 if (options_.child_wait_for_parent_pipe_early) { |
| 395 // Wait until the parent is done setting things up on its end. | 395 // Wait until the parent is done setting things up on its end. |
| 396 char c; | 396 char c; |
| 397 CheckedReadFile(ReadPipeFD(), &c, 1); | 397 CheckedReadFile(ReadPipeHandle(), &c, 1); |
| 398 EXPECT_EQ('\0', c); | 398 EXPECT_EQ('\0', c); |
| 399 } | 399 } |
| 400 | 400 |
| 401 for (size_t index = 0; | 401 for (size_t index = 0; |
| 402 index < options_.client_send_request_count; | 402 index < options_.client_send_request_count; |
| 403 ++index) { | 403 ++index) { |
| 404 if (options_.child_send_all_requests_before_receiving_any_replies) { | 404 if (options_.child_send_all_requests_before_receiving_any_replies) { |
| 405 // For this test, all of the messages need to go into the queue before | 405 // For this test, all of the messages need to go into the queue before |
| 406 // the parent is allowed to start processing them. Don’t attempt to | 406 // the parent is allowed to start processing them. Don’t attempt to |
| 407 // process replies before all of the requests are sent, because the | 407 // process replies before all of the requests are sent, because the |
| (...skipping 13 matching lines...) Expand all Loading... |
| 421 | 421 |
| 422 for (size_t index = 0; | 422 for (size_t index = 0; |
| 423 index < options_.client_send_request_count; | 423 index < options_.client_send_request_count; |
| 424 ++index) { | 424 ++index) { |
| 425 ASSERT_NO_FATAL_FAILURE(ChildWaitForReply()); | 425 ASSERT_NO_FATAL_FAILURE(ChildWaitForReply()); |
| 426 } | 426 } |
| 427 } | 427 } |
| 428 | 428 |
| 429 if (options_.child_wait_for_parent_pipe_late) { | 429 if (options_.child_wait_for_parent_pipe_late) { |
| 430 char c; | 430 char c; |
| 431 CheckedReadFile(ReadPipeFD(), &c, 1); | 431 CheckedReadFile(ReadPipeHandle(), &c, 1); |
| 432 ASSERT_EQ('\0', c); | 432 ASSERT_EQ('\0', c); |
| 433 } | 433 } |
| 434 } | 434 } |
| 435 | 435 |
| 436 // In the child process, sends a request message to the server. | 436 // In the child process, sends a request message to the server. |
| 437 void ChildSendRequest() { | 437 void ChildSendRequest() { |
| 438 // local_receive_port_owner will the receive right that is created in this | 438 // local_receive_port_owner will the receive right that is created in this |
| 439 // scope and intended to be destroyed when leaving this scope, after it has | 439 // scope and intended to be destroyed when leaving this scope, after it has |
| 440 // been carried in a Mach message. | 440 // been carried in a Mach message. |
| 441 base::mac::ScopedMachReceiveRight local_receive_port_owner; | 441 base::mac::ScopedMachReceiveRight local_receive_port_owner; |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 543 | 543 |
| 544 ++replies_; | 544 ++replies_; |
| 545 } | 545 } |
| 546 | 546 |
| 547 // For test types where the child needs to notify the server in the parent | 547 // For test types where the child needs to notify the server in the parent |
| 548 // that the child is ready, this method will send a byte via the POSIX pipe. | 548 // that the child is ready, this method will send a byte via the POSIX pipe. |
| 549 // The parent will be waiting in a read() on this pipe, and will proceed to | 549 // The parent will be waiting in a read() on this pipe, and will proceed to |
| 550 // running MachMessageServer() once it’s received. | 550 // running MachMessageServer() once it’s received. |
| 551 void ChildNotifyParentViaPipe() { | 551 void ChildNotifyParentViaPipe() { |
| 552 char c = '\0'; | 552 char c = '\0'; |
| 553 CheckedWriteFile(WritePipeFD(), &c, 1); | 553 CheckedWriteFile(WritePipeHandle(), &c, 1); |
| 554 } | 554 } |
| 555 | 555 |
| 556 // In the child process, sends a request message to the server and then | 556 // In the child process, sends a request message to the server and then |
| 557 // receives a reply message. | 557 // receives a reply message. |
| 558 void ChildSendRequestAndWaitForReply() { | 558 void ChildSendRequestAndWaitForReply() { |
| 559 ASSERT_NO_FATAL_FAILURE(ChildSendRequest()); | 559 ASSERT_NO_FATAL_FAILURE(ChildSendRequest()); |
| 560 | 560 |
| 561 if (options_.parent_wait_for_child_pipe && | 561 if (options_.parent_wait_for_child_pipe && |
| 562 !options_.child_send_all_requests_before_receiving_any_replies) { | 562 !options_.child_send_all_requests_before_receiving_any_replies) { |
| 563 // The parent is waiting to read a byte to indicate that the message has | 563 // The parent is waiting to read a byte to indicate that the message has |
| (...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 844 options.expect_server_transaction_count = 0; | 844 options.expect_server_transaction_count = 0; |
| 845 options.client_send_large = true; | 845 options.client_send_large = true; |
| 846 options.client_expect_reply = false; | 846 options.client_expect_reply = false; |
| 847 TestMachMessageServer test_mach_message_server(options); | 847 TestMachMessageServer test_mach_message_server(options); |
| 848 test_mach_message_server.Test(); | 848 test_mach_message_server.Test(); |
| 849 } | 849 } |
| 850 | 850 |
| 851 } // namespace | 851 } // namespace |
| 852 } // namespace test | 852 } // namespace test |
| 853 } // namespace crashpad | 853 } // namespace crashpad |
| OLD | NEW |