OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "ppapi/tests/test_udp_socket.h" | 5 #include "ppapi/tests/test_udp_socket.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "ppapi/cpp/pass_ref.h" | 9 #include "ppapi/cpp/pass_ref.h" |
10 #include "ppapi/cpp/tcp_socket.h" | 10 #include "ppapi/cpp/tcp_socket.h" |
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
149 } | 149 } |
150 | 150 |
151 std::string TestUDPSocket::ReadSocket(pp::UDPSocket* socket, | 151 std::string TestUDPSocket::ReadSocket(pp::UDPSocket* socket, |
152 pp::NetAddress* address, | 152 pp::NetAddress* address, |
153 size_t size, | 153 size_t size, |
154 std::string* message) { | 154 std::string* message) { |
155 std::vector<char> buffer(size); | 155 std::vector<char> buffer(size); |
156 TestCompletionCallbackWithOutput<pp::NetAddress> callback( | 156 TestCompletionCallbackWithOutput<pp::NetAddress> callback( |
157 instance_->pp_instance(), callback_type()); | 157 instance_->pp_instance(), callback_type()); |
158 callback.WaitForResult( | 158 callback.WaitForResult( |
159 socket->RecvFrom(&buffer[0], size, callback.GetCallback())); | 159 socket->RecvFrom(&buffer[0], static_cast<int32_t>(size), |
| 160 callback.GetCallback())); |
160 CHECK_CALLBACK_BEHAVIOR(callback); | 161 CHECK_CALLBACK_BEHAVIOR(callback); |
161 ASSERT_FALSE(callback.result() < 0); | 162 ASSERT_FALSE(callback.result() < 0); |
162 ASSERT_EQ(size, static_cast<size_t>(callback.result())); | 163 ASSERT_EQ(size, static_cast<size_t>(callback.result())); |
163 *address = callback.output(); | 164 *address = callback.output(); |
164 message->assign(buffer.begin(), buffer.end()); | 165 message->assign(buffer.begin(), buffer.end()); |
165 PASS(); | 166 PASS(); |
166 } | 167 } |
167 | 168 |
168 std::string TestUDPSocket::PassMessage(pp::UDPSocket* target, | 169 std::string TestUDPSocket::PassMessage(pp::UDPSocket* target, |
169 pp::UDPSocket* source, | 170 pp::UDPSocket* source, |
170 const pp::NetAddress& target_address, | 171 const pp::NetAddress& target_address, |
171 const std::string& message, | 172 const std::string& message, |
172 pp::NetAddress* recvfrom_address) { | 173 pp::NetAddress* recvfrom_address) { |
173 TestCompletionCallback callback(instance_->pp_instance(), callback_type()); | 174 TestCompletionCallback callback(instance_->pp_instance(), callback_type()); |
174 int32_t rv = source->SendTo(message.c_str(), message.size(), | 175 int32_t rv = source->SendTo(message.c_str(), |
| 176 static_cast<int32_t>(message.size()), |
175 target_address, | 177 target_address, |
176 callback.GetCallback()); | 178 callback.GetCallback()); |
177 std::string str; | 179 std::string str; |
178 ASSERT_SUBTEST_SUCCESS(ReadSocket(target, recvfrom_address, message.size(), | 180 ASSERT_SUBTEST_SUCCESS(ReadSocket(target, recvfrom_address, message.size(), |
179 &str)); | 181 &str)); |
180 | 182 |
181 callback.WaitForResult(rv); | 183 callback.WaitForResult(rv); |
182 CHECK_CALLBACK_BEHAVIOR(callback); | 184 CHECK_CALLBACK_BEHAVIOR(callback); |
183 ASSERT_FALSE(callback.result() < 0); | 185 ASSERT_FALSE(callback.result() < 0); |
184 ASSERT_EQ(message.size(), static_cast<size_t>(callback.result())); | 186 ASSERT_EQ(message.size(), static_cast<size_t>(callback.result())); |
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
334 | 336 |
335 const size_t kParallelSends = 10; | 337 const size_t kParallelSends = 10; |
336 std::vector<TestCompletionCallback*> sendto_callbacks(kParallelSends); | 338 std::vector<TestCompletionCallback*> sendto_callbacks(kParallelSends); |
337 std::vector<int32_t> sendto_results(kParallelSends); | 339 std::vector<int32_t> sendto_results(kParallelSends); |
338 size_t pending = 0; | 340 size_t pending = 0; |
339 for (size_t i = 0; i < kParallelSends; i++) { | 341 for (size_t i = 0; i < kParallelSends; i++) { |
340 sendto_callbacks[i] = | 342 sendto_callbacks[i] = |
341 new TestCompletionCallback(instance_->pp_instance(), callback_type()); | 343 new TestCompletionCallback(instance_->pp_instance(), callback_type()); |
342 sendto_results[i] = | 344 sendto_results[i] = |
343 client_socket.SendTo(message.c_str(), | 345 client_socket.SendTo(message.c_str(), |
344 message.size(), | 346 static_cast<int32_t>(message.size()), |
345 server_address, | 347 server_address, |
346 sendto_callbacks[i]->GetCallback()); | 348 sendto_callbacks[i]->GetCallback()); |
347 | 349 |
348 if (sendto_results[i] == PP_ERROR_INPROGRESS) { | 350 if (sendto_results[i] == PP_ERROR_INPROGRESS) { |
349 // Run a pending send to completion to free a slot for the current send. | 351 // Run a pending send to completion to free a slot for the current send. |
350 ASSERT_GT(i, pending); | 352 ASSERT_GT(i, pending); |
351 sendto_callbacks[pending]->WaitForResult(sendto_results[pending]); | 353 sendto_callbacks[pending]->WaitForResult(sendto_results[pending]); |
352 CHECK_CALLBACK_BEHAVIOR(*sendto_callbacks[pending]); | 354 CHECK_CALLBACK_BEHAVIOR(*sendto_callbacks[pending]); |
353 ASSERT_EQ(message.size(), | 355 ASSERT_EQ(message.size(), |
354 static_cast<size_t>(sendto_callbacks[pending]->result())); | 356 static_cast<size_t>(sendto_callbacks[pending]->result())); |
355 pending++; | 357 pending++; |
356 // Try to send the message again. | 358 // Try to send the message again. |
357 sendto_results[i] = | 359 sendto_results[i] = |
358 client_socket.SendTo(message.c_str(), | 360 client_socket.SendTo(message.c_str(), |
359 message.size(), | 361 static_cast<int32_t>(message.size()), |
360 server_address, | 362 server_address, |
361 sendto_callbacks[i]->GetCallback()); | 363 sendto_callbacks[i]->GetCallback()); |
362 ASSERT_NE(PP_ERROR_INPROGRESS, sendto_results[i]); | 364 ASSERT_NE(PP_ERROR_INPROGRESS, sendto_results[i]); |
363 } | 365 } |
364 } | 366 } |
365 | 367 |
366 // Finish all pending sends. | 368 // Finish all pending sends. |
367 for (size_t i = pending; i < kParallelSends; i++) { | 369 for (size_t i = pending; i < kParallelSends; i++) { |
368 sendto_callbacks[i]->WaitForResult(sendto_results[i]); | 370 sendto_callbacks[i]->WaitForResult(sendto_results[i]); |
369 CHECK_CALLBACK_BEHAVIOR(*sendto_callbacks[i]); | 371 CHECK_CALLBACK_BEHAVIOR(*sendto_callbacks[i]); |
370 ASSERT_EQ(message.size(), | 372 ASSERT_EQ(message.size(), |
371 static_cast<size_t>(sendto_callbacks[i]->result())); | 373 static_cast<size_t>(sendto_callbacks[i]->result())); |
372 } | 374 } |
373 | 375 |
374 for (size_t i = 0; i < kParallelSends; ++i) | 376 for (size_t i = 0; i < kParallelSends; ++i) |
375 delete sendto_callbacks[i]; | 377 delete sendto_callbacks[i]; |
376 | 378 |
377 for (size_t i = 0; i < kParallelSends; i++) { | 379 for (size_t i = 0; i < kParallelSends; i++) { |
378 std::string str; | 380 std::string str; |
379 ASSERT_SUBTEST_SUCCESS( | 381 ASSERT_SUBTEST_SUCCESS( |
380 ReadSocket(&server_socket, &recvfrom_address, message.size(), &str)); | 382 ReadSocket(&server_socket, &recvfrom_address, message.size(), &str)); |
381 ASSERT_EQ(message, str); | 383 ASSERT_EQ(message, str); |
382 } | 384 } |
383 | 385 |
384 server_socket.Close(); | 386 server_socket.Close(); |
385 client_socket.Close(); | 387 client_socket.Close(); |
386 | 388 |
387 PASS(); | 389 PASS(); |
388 } | 390 } |
OLD | NEW |