Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(60)

Side by Side Diff: mojo/services/network/udp_socket_apptest.cc

Issue 933973002: Return errors from the Mojo network service using an enum. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "base/macros.h" 5 #include "base/macros.h"
6 #include "base/memory/scoped_ptr.h" 6 #include "base/memory/scoped_ptr.h"
7 #include "base/run_loop.h" 7 #include "base/run_loop.h"
8 #include "mojo/public/cpp/application/application_connection.h" 8 #include "mojo/public/cpp/application/application_connection.h"
9 #include "mojo/public/cpp/application/application_impl.h" 9 #include "mojo/public/cpp/application/application_impl.h"
10 #include "mojo/public/cpp/application/application_test_base.h" 10 #include "mojo/public/cpp/application/application_test_base.h"
(...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after
337 337
338 DISALLOW_COPY_AND_ASSIGN(UDPSocketAppTest); 338 DISALLOW_COPY_AND_ASSIGN(UDPSocketAppTest);
339 }; 339 };
340 340
341 } // namespace 341 } // namespace
342 342
343 TEST_F(UDPSocketAppTest, Settings) { 343 TEST_F(UDPSocketAppTest, Settings) {
344 TestCallback callback1; 344 TestCallback callback1;
345 socket_->AllowAddressReuse(callback1.callback()); 345 socket_->AllowAddressReuse(callback1.callback());
346 callback1.WaitForResult(); 346 callback1.WaitForResult();
347 EXPECT_EQ(net::OK, callback1.result()->code); 347 EXPECT_EQ(mojo::NETWORK_CODE_OK, callback1.result()->code);
jamesr 2015/02/18 18:43:06 this code is in namespace mojo - just saying EXPEC
ppi 2015/02/19 14:22:18 Done.
348 348
349 // Should fail because the socket hasn't been bound. 349 // Should fail because the socket hasn't been bound.
350 TestCallback callback2; 350 TestCallback callback2;
351 socket_->SetSendBufferSize(1024, callback2.callback()); 351 socket_->SetSendBufferSize(1024, callback2.callback());
352 callback2.WaitForResult(); 352 callback2.WaitForResult();
353 EXPECT_NE(net::OK, callback2.result()->code); 353 EXPECT_NE(mojo::NETWORK_CODE_OK, callback2.result()->code);
354 354
355 // Should fail because the socket hasn't been bound. 355 // Should fail because the socket hasn't been bound.
356 TestCallback callback3; 356 TestCallback callback3;
357 socket_->SetReceiveBufferSize(2048, callback3.callback()); 357 socket_->SetReceiveBufferSize(2048, callback3.callback());
358 callback3.WaitForResult(); 358 callback3.WaitForResult();
359 EXPECT_NE(net::OK, callback3.result()->code); 359 EXPECT_NE(mojo::NETWORK_CODE_OK, callback3.result()->code);
360 360
361 TestCallbackWithAddressAndReceiver callback4; 361 TestCallbackWithAddressAndReceiver callback4;
362 socket_->Bind(GetLocalHostWithAnyPort(), callback4.callback()); 362 socket_->Bind(GetLocalHostWithAnyPort(), callback4.callback());
363 callback4.WaitForResult(); 363 callback4.WaitForResult();
364 EXPECT_EQ(net::OK, callback4.result()->code); 364 EXPECT_EQ(mojo::NETWORK_CODE_OK, callback4.result()->code);
365 EXPECT_NE(0u, callback4.net_address()->ipv4->port); 365 EXPECT_NE(0u, callback4.net_address()->ipv4->port);
366 366
367 // Should fail because the socket has been bound. 367 // Should fail because the socket has been bound.
368 TestCallback callback5; 368 TestCallback callback5;
369 socket_->AllowAddressReuse(callback5.callback()); 369 socket_->AllowAddressReuse(callback5.callback());
370 callback5.WaitForResult(); 370 callback5.WaitForResult();
371 EXPECT_NE(net::OK, callback5.result()->code); 371 EXPECT_NE(mojo::NETWORK_CODE_OK, callback5.result()->code);
372 372
373 TestCallback callback6; 373 TestCallback callback6;
374 socket_->SetSendBufferSize(1024, callback6.callback()); 374 socket_->SetSendBufferSize(1024, callback6.callback());
375 callback6.WaitForResult(); 375 callback6.WaitForResult();
376 EXPECT_EQ(net::OK, callback6.result()->code); 376 EXPECT_EQ(mojo::NETWORK_CODE_OK, callback6.result()->code);
377 377
378 TestCallback callback7; 378 TestCallback callback7;
379 socket_->SetReceiveBufferSize(2048, callback7.callback()); 379 socket_->SetReceiveBufferSize(2048, callback7.callback());
380 callback7.WaitForResult(); 380 callback7.WaitForResult();
381 EXPECT_EQ(net::OK, callback7.result()->code); 381 EXPECT_EQ(mojo::NETWORK_CODE_OK, callback7.result()->code);
382 382
383 TestCallbackWithUint32 callback8; 383 TestCallbackWithUint32 callback8;
384 socket_->NegotiateMaxPendingSendRequests(0, callback8.callback()); 384 socket_->NegotiateMaxPendingSendRequests(0, callback8.callback());
385 callback8.WaitForResult(); 385 callback8.WaitForResult();
386 EXPECT_GT(callback8.result(), 0u); 386 EXPECT_GT(callback8.result(), 0u);
387 387
388 TestCallbackWithUint32 callback9; 388 TestCallbackWithUint32 callback9;
389 socket_->NegotiateMaxPendingSendRequests(16, callback9.callback()); 389 socket_->NegotiateMaxPendingSendRequests(16, callback9.callback());
390 callback9.WaitForResult(); 390 callback9.WaitForResult();
391 EXPECT_GT(callback9.result(), 0u); 391 EXPECT_GT(callback9.result(), 0u);
392 } 392 }
393 393
394 TEST_F(UDPSocketAppTest, TestReadWrite) { 394 TEST_F(UDPSocketAppTest, TestReadWrite) {
395 TestCallbackWithAddressAndReceiver callback1; 395 TestCallbackWithAddressAndReceiver callback1;
396 socket_->Bind(GetLocalHostWithAnyPort(), callback1.callback()); 396 socket_->Bind(GetLocalHostWithAnyPort(), callback1.callback());
397 callback1.WaitForResult(); 397 callback1.WaitForResult();
398 ASSERT_EQ(net::OK, callback1.result()->code); 398 ASSERT_EQ(mojo::NETWORK_CODE_OK, callback1.result()->code);
399 ASSERT_NE(0u, callback1.net_address()->ipv4->port); 399 ASSERT_NE(0u, callback1.net_address()->ipv4->port);
400 400
401 receiver_binding_.Bind(callback1.receiver().Pass()); 401 receiver_binding_.Bind(callback1.receiver().Pass());
402 402
403 NetAddressPtr server_addr = callback1.net_address().Clone(); 403 NetAddressPtr server_addr = callback1.net_address().Clone();
404 404
405 UDPSocketPtr client_socket; 405 UDPSocketPtr client_socket;
406 network_service_->CreateUDPSocket(GetProxy(&client_socket)); 406 network_service_->CreateUDPSocket(GetProxy(&client_socket));
407 407
408 TestCallbackWithAddressAndReceiver callback2; 408 TestCallbackWithAddressAndReceiver callback2;
409 client_socket->Bind(GetLocalHostWithAnyPort(), callback2.callback()); 409 client_socket->Bind(GetLocalHostWithAnyPort(), callback2.callback());
410 callback2.WaitForResult(); 410 callback2.WaitForResult();
411 ASSERT_EQ(net::OK, callback2.result()->code); 411 ASSERT_EQ(mojo::NETWORK_CODE_OK, callback2.result()->code);
412 ASSERT_NE(0u, callback2.net_address()->ipv4->port); 412 ASSERT_NE(0u, callback2.net_address()->ipv4->port);
413 413
414 NetAddressPtr client_addr = callback2.net_address().Clone(); 414 NetAddressPtr client_addr = callback2.net_address().Clone();
415 415
416 const size_t kDatagramCount = 6; 416 const size_t kDatagramCount = 6;
417 const size_t kDatagramSize = 255; 417 const size_t kDatagramSize = 255;
418 socket_->ReceiveMore(kDatagramCount); 418 socket_->ReceiveMore(kDatagramCount);
419 419
420 for (size_t i = 0; i < kDatagramCount; ++i) { 420 for (size_t i = 0; i < kDatagramCount; ++i) {
421 TestCallback callback; 421 TestCallback callback;
(...skipping 14 matching lines...) Expand all
436 EXPECT_TRUE(result->addr.Equals(client_addr)); 436 EXPECT_TRUE(result->addr.Equals(client_addr));
437 EXPECT_TRUE(result->data.Equals( 437 EXPECT_TRUE(result->data.Equals(
438 CreateTestMessage(static_cast<uint8_t>(i), kDatagramSize))); 438 CreateTestMessage(static_cast<uint8_t>(i), kDatagramSize)));
439 } 439 }
440 } 440 }
441 441
442 TEST_F(UDPSocketAppTest, TestConnectedReadWrite) { 442 TEST_F(UDPSocketAppTest, TestConnectedReadWrite) {
443 TestCallbackWithAddressAndReceiver callback1; 443 TestCallbackWithAddressAndReceiver callback1;
444 socket_->Bind(GetLocalHostWithAnyPort(), callback1.callback()); 444 socket_->Bind(GetLocalHostWithAnyPort(), callback1.callback());
445 callback1.WaitForResult(); 445 callback1.WaitForResult();
446 ASSERT_EQ(net::OK, callback1.result()->code); 446 ASSERT_EQ(mojo::NETWORK_CODE_OK, callback1.result()->code);
447 ASSERT_NE(0u, callback1.net_address()->ipv4->port); 447 ASSERT_NE(0u, callback1.net_address()->ipv4->port);
448 448
449 receiver_binding_.Bind(callback1.receiver().Pass()); 449 receiver_binding_.Bind(callback1.receiver().Pass());
450 450
451 NetAddressPtr server_addr = callback1.net_address().Clone(); 451 NetAddressPtr server_addr = callback1.net_address().Clone();
452 452
453 UDPSocketPtr client_socket; 453 UDPSocketPtr client_socket;
454 network_service_->CreateUDPSocket(GetProxy(&client_socket)); 454 network_service_->CreateUDPSocket(GetProxy(&client_socket));
455 455
456 TestCallbackWithAddressAndReceiver callback2; 456 TestCallbackWithAddressAndReceiver callback2;
457 client_socket->Connect(server_addr.Clone(), callback2.callback()); 457 client_socket->Connect(server_addr.Clone(), callback2.callback());
458 callback2.WaitForResult(); 458 callback2.WaitForResult();
459 ASSERT_EQ(net::OK, callback2.result()->code); 459 ASSERT_EQ(mojo::NETWORK_CODE_OK, callback2.result()->code);
460 ASSERT_NE(0u, callback2.net_address()->ipv4->port); 460 ASSERT_NE(0u, callback2.net_address()->ipv4->port);
461 461
462 UDPSocketReceiverImpl client_socket_receiver; 462 UDPSocketReceiverImpl client_socket_receiver;
463 Binding<UDPSocketReceiver> client_receiver_binding( 463 Binding<UDPSocketReceiver> client_receiver_binding(
464 &client_socket_receiver, callback2.receiver().Pass()); 464 &client_socket_receiver, callback2.receiver().Pass());
465 465
466 NetAddressPtr client_addr = callback2.net_address().Clone(); 466 NetAddressPtr client_addr = callback2.net_address().Clone();
467 467
468 const size_t kDatagramCount = 6; 468 const size_t kDatagramCount = 6;
469 const size_t kDatagramSize = 255; 469 const size_t kDatagramSize = 255;
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
516 CreateTestMessage(static_cast<uint8_t>(i), kDatagramSize))); 516 CreateTestMessage(static_cast<uint8_t>(i), kDatagramSize)));
517 } 517 }
518 } 518 }
519 519
520 TEST_F(UDPSocketAppTest, TestWrapperReadWrite) { 520 TEST_F(UDPSocketAppTest, TestWrapperReadWrite) {
521 UDPSocketWrapper socket(socket_.Pass(), 4, 4); 521 UDPSocketWrapper socket(socket_.Pass(), 4, 4);
522 522
523 TestCallbackWithAddress callback1; 523 TestCallbackWithAddress callback1;
524 socket.Bind(GetLocalHostWithAnyPort(), callback1.callback()); 524 socket.Bind(GetLocalHostWithAnyPort(), callback1.callback());
525 callback1.WaitForResult(); 525 callback1.WaitForResult();
526 ASSERT_EQ(net::OK, callback1.result()->code); 526 ASSERT_EQ(mojo::NETWORK_CODE_OK, callback1.result()->code);
527 ASSERT_NE(0u, callback1.net_address()->ipv4->port); 527 ASSERT_NE(0u, callback1.net_address()->ipv4->port);
528 528
529 NetAddressPtr server_addr = callback1.net_address().Clone(); 529 NetAddressPtr server_addr = callback1.net_address().Clone();
530 530
531 UDPSocketPtr raw_client_socket; 531 UDPSocketPtr raw_client_socket;
532 network_service_->CreateUDPSocket(GetProxy(&raw_client_socket)); 532 network_service_->CreateUDPSocket(GetProxy(&raw_client_socket));
533 UDPSocketWrapper client_socket(raw_client_socket.Pass(), 4, 4); 533 UDPSocketWrapper client_socket(raw_client_socket.Pass(), 4, 4);
534 534
535 TestCallbackWithAddress callback2; 535 TestCallbackWithAddress callback2;
536 client_socket.Bind(GetLocalHostWithAnyPort(), callback2.callback()); 536 client_socket.Bind(GetLocalHostWithAnyPort(), callback2.callback());
537 callback2.WaitForResult(); 537 callback2.WaitForResult();
538 ASSERT_EQ(net::OK, callback2.result()->code); 538 ASSERT_EQ(mojo::NETWORK_CODE_OK, callback2.result()->code);
539 ASSERT_NE(0u, callback2.net_address()->ipv4->port); 539 ASSERT_NE(0u, callback2.net_address()->ipv4->port);
540 540
541 NetAddressPtr client_addr = callback2.net_address().Clone(); 541 NetAddressPtr client_addr = callback2.net_address().Clone();
542 542
543 const size_t kDatagramCount = 16; 543 const size_t kDatagramCount = 16;
544 const size_t kDatagramSize = 255; 544 const size_t kDatagramSize = 255;
545 545
546 for (size_t i = 1; i < kDatagramCount; ++i) { 546 for (size_t i = 1; i < kDatagramCount; ++i) {
547 scoped_ptr<TestCallback[]> send_callbacks(new TestCallback[i]); 547 scoped_ptr<TestCallback[]> send_callbacks(new TestCallback[i]);
548 scoped_ptr<TestReceiveCallback[]> receive_callbacks( 548 scoped_ptr<TestReceiveCallback[]> receive_callbacks(
(...skipping 19 matching lines...) Expand all
568 } 568 }
569 } 569 }
570 } 570 }
571 571
572 TEST_F(UDPSocketAppTest, TestWrapperConnectedReadWrite) { 572 TEST_F(UDPSocketAppTest, TestWrapperConnectedReadWrite) {
573 UDPSocketWrapper socket(socket_.Pass(), 4, 4); 573 UDPSocketWrapper socket(socket_.Pass(), 4, 4);
574 574
575 TestCallbackWithAddress callback1; 575 TestCallbackWithAddress callback1;
576 socket.Bind(GetLocalHostWithAnyPort(), callback1.callback()); 576 socket.Bind(GetLocalHostWithAnyPort(), callback1.callback());
577 callback1.WaitForResult(); 577 callback1.WaitForResult();
578 ASSERT_EQ(net::OK, callback1.result()->code); 578 ASSERT_EQ(mojo::NETWORK_CODE_OK, callback1.result()->code);
579 ASSERT_NE(0u, callback1.net_address()->ipv4->port); 579 ASSERT_NE(0u, callback1.net_address()->ipv4->port);
580 580
581 NetAddressPtr server_addr = callback1.net_address().Clone(); 581 NetAddressPtr server_addr = callback1.net_address().Clone();
582 582
583 UDPSocketPtr raw_client_socket; 583 UDPSocketPtr raw_client_socket;
584 network_service_->CreateUDPSocket(GetProxy(&raw_client_socket)); 584 network_service_->CreateUDPSocket(GetProxy(&raw_client_socket));
585 UDPSocketWrapper client_socket(raw_client_socket.Pass(), 4, 4); 585 UDPSocketWrapper client_socket(raw_client_socket.Pass(), 4, 4);
586 586
587 TestCallbackWithAddress callback2; 587 TestCallbackWithAddress callback2;
588 client_socket.Connect(server_addr.Pass(), callback2.callback()); 588 client_socket.Connect(server_addr.Pass(), callback2.callback());
589 callback2.WaitForResult(); 589 callback2.WaitForResult();
590 ASSERT_EQ(net::OK, callback2.result()->code); 590 ASSERT_EQ(mojo::NETWORK_CODE_OK, callback2.result()->code);
591 ASSERT_NE(0u, callback2.net_address()->ipv4->port); 591 ASSERT_NE(0u, callback2.net_address()->ipv4->port);
592 592
593 NetAddressPtr client_addr = callback2.net_address().Clone(); 593 NetAddressPtr client_addr = callback2.net_address().Clone();
594 594
595 const size_t kDatagramCount = 16; 595 const size_t kDatagramCount = 16;
596 const size_t kDatagramSize = 255; 596 const size_t kDatagramSize = 255;
597 597
598 // Test send using a connected socket. 598 // Test send using a connected socket.
599 for (size_t i = 1; i < kDatagramCount; ++i) { 599 for (size_t i = 1; i < kDatagramCount; ++i) {
600 scoped_ptr<TestCallback[]> send_callbacks(new TestCallback[i]); 600 scoped_ptr<TestCallback[]> send_callbacks(new TestCallback[i]);
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
643 receive_callbacks[j].result()->code); 643 receive_callbacks[j].result()->code);
644 EXPECT_FALSE(receive_callbacks[j].src_addr()); 644 EXPECT_FALSE(receive_callbacks[j].src_addr());
645 EXPECT_TRUE(receive_callbacks[j].data().Equals( 645 EXPECT_TRUE(receive_callbacks[j].data().Equals(
646 CreateTestMessage(static_cast<uint8_t>(j), kDatagramSize))); 646 CreateTestMessage(static_cast<uint8_t>(j), kDatagramSize)));
647 } 647 }
648 } 648 }
649 } 649 }
650 650
651 } // namespace service 651 } // namespace service
652 } // namespace mojo 652 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698