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

Side by Side Diff: native_client_sdk/src/tests/nacl_io_test/kernel_wrap_test.cc

Issue 286303002: Fix socket calls in glibc by using new errno return macros. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix Created 6 years, 7 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 // The linux host build of nacl_io can't do wrapping of syscalls so all 5 // The linux host build of nacl_io can't do wrapping of syscalls so all
6 // these tests must be disabled. 6 // these tests must be disabled.
7 #if !defined(__linux__) 7 #if !defined(__linux__)
8 8
9 #include <unistd.h> 9 #include <unistd.h>
10 10
(...skipping 635 matching lines...) Expand 10 before | Expand all | Expand 10 after
646 socklen_t len; 646 socklen_t len;
647 EXPECT_CALL(mock, accept(kDummyInt, &addr, &len)) 647 EXPECT_CALL(mock, accept(kDummyInt, &addr, &len))
648 .WillOnce(Return(kDummyInt2)); 648 .WillOnce(Return(kDummyInt2));
649 EXPECT_EQ(kDummyInt2, accept(kDummyInt, &addr, &len)); 649 EXPECT_EQ(kDummyInt2, accept(kDummyInt, &addr, &len));
650 } 650 }
651 651
652 TEST_F(KernelWrapTest, bind) { 652 TEST_F(KernelWrapTest, bind) {
653 // The way we wrap bind does not support returning arbitrary values, so we 653 // The way we wrap bind does not support returning arbitrary values, so we
654 // test 0 and -1. 654 // test 0 and -1.
655 struct sockaddr addr; 655 struct sockaddr addr;
656
656 EXPECT_CALL(mock, bind(kDummyInt, &addr, kDummyInt2)) 657 EXPECT_CALL(mock, bind(kDummyInt, &addr, kDummyInt2))
657 .WillOnce(Return(0)) 658 .WillOnce(Return(0));
658 .WillOnce(Return(-1));
659 EXPECT_EQ(0, bind(kDummyInt, &addr, kDummyInt2)); 659 EXPECT_EQ(0, bind(kDummyInt, &addr, kDummyInt2));
660
661 EXPECT_CALL(mock, bind(kDummyInt, &addr, kDummyInt2))
binji 2014/05/16 20:19:09 I think I like it better without the duplication o
Sam Clegg 2014/05/16 20:29:53 I think that was the conclusion I came to last tim
bradn 2014/05/16 20:52:54 Done.
bradn 2014/05/16 20:52:54 Done.
662 .WillOnce(DoAll(SetErrno(kDummyErrno), Return(-1)));
660 EXPECT_EQ(-1, bind(kDummyInt, &addr, kDummyInt2)); 663 EXPECT_EQ(-1, bind(kDummyInt, &addr, kDummyInt2));
664 EXPECT_EQ(kDummyErrno, errno);
661 } 665 }
662 666
663 TEST_F(KernelWrapTest, connect) { 667 TEST_F(KernelWrapTest, connect) {
664 // The way we wrap connect does not support returning arbitrary values, so we 668 // The way we wrap connect does not support returning arbitrary values, so we
665 // test 0 and -1. 669 // test 0 and -1.
666 struct sockaddr addr; 670 struct sockaddr addr;
667 EXPECT_CALL(mock, connect(kDummyInt, &addr, kDummyInt2)) 671 EXPECT_CALL(mock, connect(kDummyInt, &addr, kDummyInt2))
668 .WillOnce(Return(0)) 672 .WillOnce(Return(0));
669 .WillOnce(Return(-1));
670 EXPECT_EQ(0, connect(kDummyInt, &addr, kDummyInt2)); 673 EXPECT_EQ(0, connect(kDummyInt, &addr, kDummyInt2));
674
675 EXPECT_CALL(mock, connect(kDummyInt, &addr, kDummyInt2))
676 .WillOnce(DoAll(SetErrno(kDummyErrno), Return(-1)));
671 EXPECT_EQ(-1, connect(kDummyInt, &addr, kDummyInt2)); 677 EXPECT_EQ(-1, connect(kDummyInt, &addr, kDummyInt2));
678 EXPECT_EQ(kDummyErrno, errno);
672 } 679 }
673 680
674 TEST_F(KernelWrapTest, gethostbyname) { 681 TEST_F(KernelWrapTest, gethostbyname) {
675 struct hostent result; 682 struct hostent result;
676 EXPECT_CALL(mock, gethostbyname(kDummyConstChar)).WillOnce(Return(&result)); 683 EXPECT_CALL(mock, gethostbyname(kDummyConstChar)).WillOnce(Return(&result));
677 EXPECT_EQ(&result, gethostbyname(kDummyConstChar)); 684 EXPECT_EQ(&result, gethostbyname(kDummyConstChar));
678 } 685 }
679 686
680 TEST_F(KernelWrapTest, getpeername) { 687 TEST_F(KernelWrapTest, getpeername) {
681 // The way we wrap getpeername does not support returning arbitrary values, 688 // The way we wrap getpeername does not support returning arbitrary values,
682 // so we test 0 and -1. 689 // so we test 0 and -1.
683 struct sockaddr addr; 690 struct sockaddr addr;
684 socklen_t len; 691 socklen_t len;
692
685 EXPECT_CALL(mock, getpeername(kDummyInt, &addr, &len)) 693 EXPECT_CALL(mock, getpeername(kDummyInt, &addr, &len))
686 .WillOnce(Return(0)) 694 .WillOnce(Return(0));
687 .WillOnce(Return(-1));
688 EXPECT_EQ(0, getpeername(kDummyInt, &addr, &len)); 695 EXPECT_EQ(0, getpeername(kDummyInt, &addr, &len));
696
697 EXPECT_CALL(mock, getpeername(kDummyInt, &addr, &len))
698 .WillOnce(DoAll(SetErrno(kDummyErrno), Return(-1)));
689 EXPECT_EQ(-1, getpeername(kDummyInt, &addr, &len)); 699 EXPECT_EQ(-1, getpeername(kDummyInt, &addr, &len));
700 EXPECT_EQ(kDummyErrno, errno);
690 } 701 }
691 702
692 TEST_F(KernelWrapTest, getsockname) { 703 TEST_F(KernelWrapTest, getsockname) {
693 // The way we wrap getsockname does not support returning arbitrary values, 704 // The way we wrap getsockname does not support returning arbitrary values,
694 // so we test 0 and -1. 705 // so we test 0 and -1.
695 struct sockaddr addr; 706 struct sockaddr addr;
696 socklen_t len; 707 socklen_t len;
708
697 EXPECT_CALL(mock, getsockname(kDummyInt, &addr, &len)) 709 EXPECT_CALL(mock, getsockname(kDummyInt, &addr, &len))
698 .WillOnce(Return(0)) 710 .WillOnce(Return(0));
699 .WillOnce(Return(-1));
700 EXPECT_EQ(0, getsockname(kDummyInt, &addr, &len)); 711 EXPECT_EQ(0, getsockname(kDummyInt, &addr, &len));
712
713 EXPECT_CALL(mock, getsockname(kDummyInt, &addr, &len))
714 .WillOnce(DoAll(SetErrno(kDummyErrno), Return(-1)));
701 EXPECT_EQ(-1, getsockname(kDummyInt, &addr, &len)); 715 EXPECT_EQ(-1, getsockname(kDummyInt, &addr, &len));
716 EXPECT_EQ(kDummyErrno, errno);
702 } 717 }
703 718
704 TEST_F(KernelWrapTest, getsockopt) { 719 TEST_F(KernelWrapTest, getsockopt) {
705 // The way we wrap getsockname does not support returning arbitrary values, 720 // The way we wrap getsockname does not support returning arbitrary values,
706 // so we test 0 and -1. 721 // so we test 0 and -1.
707 int dummy_val; 722 int dummy_val;
708 void* dummy_void_ptr = &dummy_val; 723 void* dummy_void_ptr = &dummy_val;
709 socklen_t len; 724 socklen_t len;
725
710 EXPECT_CALL( 726 EXPECT_CALL(
711 mock, getsockopt(kDummyInt, kDummyInt2, kDummyInt3, dummy_void_ptr, &len)) 727 mock, getsockopt(kDummyInt, kDummyInt2, kDummyInt3, dummy_void_ptr, &len))
712 .WillOnce(Return(0)) 728 .WillOnce(Return(0));
713 .WillOnce(Return(-1));
714 EXPECT_EQ( 729 EXPECT_EQ(
715 0, 730 0,
716 getsockopt(kDummyInt, kDummyInt2, kDummyInt3, dummy_void_ptr, &len)); 731 getsockopt(kDummyInt, kDummyInt2, kDummyInt3, dummy_void_ptr, &len));
732
733 EXPECT_CALL(
734 mock, getsockopt(kDummyInt, kDummyInt2, kDummyInt3, dummy_void_ptr, &len))
735 .WillOnce(DoAll(SetErrno(kDummyErrno), Return(-1)));
717 EXPECT_EQ( 736 EXPECT_EQ(
718 -1, 737 -1,
719 getsockopt(kDummyInt, kDummyInt2, kDummyInt3, dummy_void_ptr, &len)); 738 getsockopt(kDummyInt, kDummyInt2, kDummyInt3, dummy_void_ptr, &len));
739 EXPECT_EQ(kDummyErrno, errno);
720 } 740 }
721 741
722 TEST_F(KernelWrapTest, listen) { 742 TEST_F(KernelWrapTest, listen) {
723 // The way we wrap listen does not support returning arbitrary values, so we 743 // The way we wrap listen does not support returning arbitrary values, so we
724 // test 0 and -1. 744 // test 0 and -1.
725 EXPECT_CALL(mock, listen(kDummyInt, kDummyInt2)) 745 EXPECT_CALL(mock, listen(kDummyInt, kDummyInt2))
726 .WillOnce(Return(0)) 746 .WillOnce(Return(0));
727 .WillOnce(Return(-1));
728 EXPECT_EQ(0, listen(kDummyInt, kDummyInt2)); 747 EXPECT_EQ(0, listen(kDummyInt, kDummyInt2));
748
749 EXPECT_CALL(mock, listen(kDummyInt, kDummyInt2))
750 .WillOnce(DoAll(SetErrno(kDummyErrno), Return(-1)));
729 EXPECT_EQ(-1, listen(kDummyInt, kDummyInt2)); 751 EXPECT_EQ(-1, listen(kDummyInt, kDummyInt2));
752 EXPECT_EQ(kDummyErrno, errno);
730 } 753 }
731 754
732 TEST_F(KernelWrapTest, recv) { 755 TEST_F(KernelWrapTest, recv) {
733 int dummy_val; 756 int dummy_val;
734 void* dummy_void_ptr = &dummy_val; 757 void* dummy_void_ptr = &dummy_val;
735 EXPECT_CALL(mock, recv(kDummyInt, dummy_void_ptr, kDummySizeT, kDummyInt2)) 758 EXPECT_CALL(mock, recv(kDummyInt, dummy_void_ptr, kDummySizeT, kDummyInt2))
736 .WillOnce(Return(kDummyInt3)); 759 .WillOnce(Return(kDummyInt3));
737 EXPECT_EQ(kDummyInt3, 760 EXPECT_EQ(kDummyInt3,
738 recv(kDummyInt, dummy_void_ptr, kDummySizeT, kDummyInt2)); 761 recv(kDummyInt, dummy_void_ptr, kDummySizeT, kDummyInt2));
739 } 762 }
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
791 struct msghdr msg; 814 struct msghdr msg;
792 EXPECT_CALL(mock, sendmsg(kDummyInt, &msg, kDummyInt2)) 815 EXPECT_CALL(mock, sendmsg(kDummyInt, &msg, kDummyInt2))
793 .WillOnce(Return(kDummyInt3)); 816 .WillOnce(Return(kDummyInt3));
794 EXPECT_EQ(kDummyInt3, sendmsg(kDummyInt, &msg, kDummyInt2)); 817 EXPECT_EQ(kDummyInt3, sendmsg(kDummyInt, &msg, kDummyInt2));
795 } 818 }
796 819
797 TEST_F(KernelWrapTest, setsockopt) { 820 TEST_F(KernelWrapTest, setsockopt) {
798 // The way we wrap setsockopt does not support returning arbitrary values, so 821 // The way we wrap setsockopt does not support returning arbitrary values, so
799 // we test 0 and -1. 822 // we test 0 and -1.
800 const socklen_t kDummySockLen = 0x50cc5; 823 const socklen_t kDummySockLen = 0x50cc5;
824
801 EXPECT_CALL( 825 EXPECT_CALL(
802 mock, 826 mock,
803 setsockopt( 827 setsockopt(
804 kDummyInt, kDummyInt2, kDummyInt3, kDummyVoidPtr, kDummySockLen)) 828 kDummyInt, kDummyInt2, kDummyInt3, kDummyVoidPtr, kDummySockLen))
805 .WillOnce(Return(0)) 829 .WillOnce(Return(0));
806 .WillOnce(Return(-1));
807 EXPECT_EQ( 830 EXPECT_EQ(
808 0, 831 0,
809 setsockopt( 832 setsockopt(
810 kDummyInt, kDummyInt2, kDummyInt3, kDummyVoidPtr, kDummySockLen)); 833 kDummyInt, kDummyInt2, kDummyInt3, kDummyVoidPtr, kDummySockLen));
834
835 EXPECT_CALL(
836 mock,
837 setsockopt(
838 kDummyInt, kDummyInt2, kDummyInt3, kDummyVoidPtr, kDummySockLen))
839 .WillOnce(DoAll(SetErrno(kDummyErrno), Return(-1)));
811 EXPECT_EQ( 840 EXPECT_EQ(
812 -1, 841 -1,
813 setsockopt( 842 setsockopt(
814 kDummyInt, kDummyInt2, kDummyInt3, kDummyVoidPtr, kDummySockLen)); 843 kDummyInt, kDummyInt2, kDummyInt3, kDummyVoidPtr, kDummySockLen));
844 EXPECT_EQ(kDummyErrno, errno);
815 } 845 }
816 846
817 TEST_F(KernelWrapTest, shutdown) { 847 TEST_F(KernelWrapTest, shutdown) {
818 // The way we wrap shutdown does not support returning arbitrary values, so we 848 // The way we wrap shutdown does not support returning arbitrary values, so we
819 // test 0 and -1. 849 // test 0 and -1.
820 EXPECT_CALL(mock, shutdown(kDummyInt, kDummyInt2)) 850 EXPECT_CALL(mock, shutdown(kDummyInt, kDummyInt2))
821 .WillOnce(Return(0)) 851 .WillOnce(Return(0));
822 .WillOnce(Return(-1));
823 EXPECT_EQ(0, shutdown(kDummyInt, kDummyInt2)); 852 EXPECT_EQ(0, shutdown(kDummyInt, kDummyInt2));
853
854 EXPECT_CALL(mock, shutdown(kDummyInt, kDummyInt2))
855 .WillOnce(DoAll(SetErrno(kDummyErrno), Return(-1)));
824 EXPECT_EQ(-1, shutdown(kDummyInt, kDummyInt2)); 856 EXPECT_EQ(-1, shutdown(kDummyInt, kDummyInt2));
857 EXPECT_EQ(kDummyErrno, errno);
825 } 858 }
826 859
827 TEST_F(KernelWrapTest, socket) { 860 TEST_F(KernelWrapTest, socket) {
828 EXPECT_CALL(mock, socket(kDummyInt, kDummyInt2, kDummyInt3)) 861 EXPECT_CALL(mock, socket(kDummyInt, kDummyInt2, kDummyInt3))
829 .WillOnce(Return(kDummyInt4)); 862 .WillOnce(Return(kDummyInt4));
830 EXPECT_EQ(kDummyInt4, socket(kDummyInt, kDummyInt2, kDummyInt3)); 863 EXPECT_EQ(kDummyInt4, socket(kDummyInt, kDummyInt2, kDummyInt3));
831 } 864 }
832 865
833 TEST_F(KernelWrapTest, socketpair) { 866 TEST_F(KernelWrapTest, socketpair) {
834 // The way we wrap socketpair does not support returning arbitrary values, 867 // The way we wrap socketpair does not support returning arbitrary values,
835 // so we test 0 and -1. 868 // so we test 0 and -1.
836 int dummy_val; 869 int dummy_val;
870
837 EXPECT_CALL(mock, socketpair(kDummyInt, kDummyInt2, kDummyInt3, &dummy_val)) 871 EXPECT_CALL(mock, socketpair(kDummyInt, kDummyInt2, kDummyInt3, &dummy_val))
838 .WillOnce(Return(0)) 872 .WillOnce(Return(0));
839 .WillOnce(Return(-1)); 873 EXPECT_EQ(0, socketpair(kDummyInt, kDummyInt2, kDummyInt3, &dummy_val));
840 EXPECT_EQ(0, 874
841 socketpair(kDummyInt, kDummyInt2, kDummyInt3, &dummy_val)); 875 EXPECT_CALL(mock, socketpair(kDummyInt, kDummyInt2, kDummyInt3, &dummy_val))
842 EXPECT_EQ(-1, 876 .WillOnce(DoAll(SetErrno(kDummyErrno), Return(-1)));
843 socketpair(kDummyInt, kDummyInt2, kDummyInt3, &dummy_val)); 877 EXPECT_EQ(-1, socketpair(kDummyInt, kDummyInt2, kDummyInt3, &dummy_val));
878 EXPECT_EQ(kDummyErrno, errno);
844 } 879 }
845 880
846 #endif // PROVIDES_SOCKET_API 881 #endif // PROVIDES_SOCKET_API
847 882
848 #endif // __linux__ 883 #endif // __linux__
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698