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 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
87 }; | 87 }; |
88 | 88 |
89 class MockChildPortServerInterface : public ChildPortServer::Interface { | 89 class MockChildPortServerInterface : public ChildPortServer::Interface { |
90 public: | 90 public: |
91 MOCK_METHOD6(HandleChildPortCheckIn, | 91 MOCK_METHOD6(HandleChildPortCheckIn, |
92 kern_return_t(child_port_server_t server, | 92 kern_return_t(child_port_server_t server, |
93 const child_port_token_t token, | 93 const child_port_token_t token, |
94 mach_port_t port, | 94 mach_port_t port, |
95 mach_msg_type_name_t right_type, | 95 mach_msg_type_name_t right_type, |
96 const mach_msg_trailer_t* trailer, | 96 const mach_msg_trailer_t* trailer, |
97 bool* destroy_complex_request)); | 97 bool* destroy_request)); |
98 }; | 98 }; |
99 | 99 |
100 TEST(ChildPortServer, MockChildPortCheckIn) { | 100 TEST(ChildPortServer, MockChildPortCheckIn) { |
101 MockChildPortServerInterface server_interface; | 101 MockChildPortServerInterface server_interface; |
102 ChildPortServer server(&server_interface); | 102 ChildPortServer server(&server_interface); |
103 | 103 |
104 std::set<mach_msg_id_t> expect_request_ids; | 104 std::set<mach_msg_id_t> expect_request_ids; |
105 expect_request_ids.insert(10011); // There is no constant for this. | 105 expect_request_ids.insert(10011); // There is no constant for this. |
106 EXPECT_EQ(expect_request_ids, server.MachMessageServerRequestIDs()); | 106 EXPECT_EQ(expect_request_ids, server.MachMessageServerRequestIDs()); |
107 | 107 |
108 ChildPortCheckInRequest request; | 108 ChildPortCheckInRequest request; |
109 EXPECT_LE(request.Head.msgh_size, server.MachMessageServerRequestSize()); | 109 EXPECT_EQ(request.Head.msgh_size, server.MachMessageServerRequestSize()); |
110 | 110 |
111 MIGReply reply; | 111 MIGReply reply; |
112 EXPECT_LE(sizeof(reply), server.MachMessageServerReplySize()); | 112 EXPECT_EQ(sizeof(reply), server.MachMessageServerReplySize()); |
113 | 113 |
114 EXPECT_CALL(server_interface, | 114 EXPECT_CALL(server_interface, |
115 HandleChildPortCheckIn(kServerLocalPort, | 115 HandleChildPortCheckIn(kServerLocalPort, |
116 kCheckInToken, | 116 kCheckInToken, |
117 kCheckInPort, | 117 kCheckInPort, |
118 kCheckInPortRightType, | 118 kCheckInPortRightType, |
119 Eq(&request.trailer), | 119 Eq(&request.trailer), |
120 Pointee(Eq(false)))) | 120 Pointee(Eq(false)))) |
121 .WillOnce(Return(MIG_NO_REPLY)) | 121 .WillOnce(Return(MIG_NO_REPLY)) |
122 .RetiresOnSaturation(); | 122 .RetiresOnSaturation(); |
123 | 123 |
124 bool destroy_complex_request = false; | 124 bool destroy_request = false; |
125 EXPECT_TRUE(server.MachMessageServerFunction( | 125 EXPECT_TRUE(server.MachMessageServerFunction( |
126 reinterpret_cast<mach_msg_header_t*>(&request), | 126 reinterpret_cast<mach_msg_header_t*>(&request), |
127 reinterpret_cast<mach_msg_header_t*>(&reply), | 127 reinterpret_cast<mach_msg_header_t*>(&reply), |
128 &destroy_complex_request)); | 128 &destroy_request)); |
129 EXPECT_FALSE(destroy_complex_request); | 129 EXPECT_FALSE(destroy_request); |
130 | 130 |
131 reply.Verify(); | 131 reply.Verify(); |
132 } | 132 } |
133 | 133 |
134 } // namespace | 134 } // namespace |
135 } // namespace test | 135 } // namespace test |
136 } // namespace crashpad | 136 } // namespace crashpad |
OLD | NEW |