OLD | NEW |
---|---|
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 Loading... | |
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 Loading... | |
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__ |
OLD | NEW |