1212
1313#include " src/unistd/close.h"
1414
15- #include " src/errno/libc_errno.h"
15+ #include " test/UnitTest/ErrnoCheckingTest.h"
16+ #include " test/UnitTest/ErrnoSetterMatcher.h"
1617#include " test/UnitTest/Test.h"
1718
1819#include < sys/socket.h> // For AF_UNIX and SOCK_DGRAM
1920
20- TEST (LlvmLibcSendMsgRecvMsgTest, SucceedsWithSocketPair) {
21+ using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Fails;
22+ using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Succeeds;
23+ using LlvmLibcSendMsgRecvMsgTest = LIBC_NAMESPACE::testing::ErrnoCheckingTest;
24+
25+ TEST_F (LlvmLibcSendMsgRecvMsgTest, SucceedsWithSocketPair) {
2126 const char TEST_MESSAGE[] = " connection successful" ;
2227 const size_t MESSAGE_LEN = sizeof (TEST_MESSAGE);
2328
2429 int sockpair[2 ] = {0 , 0 };
2530
26- int result = LIBC_NAMESPACE::socketpair (AF_UNIX, SOCK_STREAM, 0 , sockpair);
27- ASSERT_EQ (result, 0 );
28- ASSERT_ERRNO_SUCCESS ();
31+ ASSERT_THAT (LIBC_NAMESPACE::socketpair (AF_UNIX, SOCK_STREAM, 0 , sockpair),
32+ Succeeds (0 ));
2933
3034 iovec send_msg_text;
3135 send_msg_text.iov_base =
@@ -41,9 +45,8 @@ TEST(LlvmLibcSendMsgRecvMsgTest, SucceedsWithSocketPair) {
4145 send_message.msg_controllen = 0 ;
4246 send_message.msg_flags = 0 ;
4347
44- ssize_t send_result = LIBC_NAMESPACE::sendmsg (sockpair[0 ], &send_message, 0 );
45- EXPECT_EQ (send_result, static_cast <ssize_t >(MESSAGE_LEN));
46- ASSERT_ERRNO_SUCCESS ();
48+ ASSERT_THAT (LIBC_NAMESPACE::sendmsg (sockpair[0 ], &send_message, 0 ),
49+ Succeeds (static_cast <ssize_t >(MESSAGE_LEN)));
4750
4851 char buffer[256 ];
4952
@@ -60,23 +63,17 @@ TEST(LlvmLibcSendMsgRecvMsgTest, SucceedsWithSocketPair) {
6063 recv_message.msg_controllen = 0 ;
6164 recv_message.msg_flags = 0 ;
6265
63- ssize_t recv_result = LIBC_NAMESPACE::recvmsg (sockpair[1 ], &recv_message, 0 );
64- ASSERT_EQ (recv_result, static_cast <ssize_t >(MESSAGE_LEN));
65- ASSERT_ERRNO_SUCCESS ();
66+ ASSERT_THAT (LIBC_NAMESPACE::recvmsg (sockpair[1 ], &recv_message, 0 ),
67+ Succeeds (static_cast <ssize_t >(MESSAGE_LEN)));
6668
6769 ASSERT_STREQ (buffer, TEST_MESSAGE);
6870
6971 // close both ends of the socket
70- result = LIBC_NAMESPACE::close (sockpair[0 ]);
71- ASSERT_EQ (result, 0 );
72- ASSERT_ERRNO_SUCCESS ();
73-
74- result = LIBC_NAMESPACE::close (sockpair[1 ]);
75- ASSERT_EQ (result, 0 );
76- ASSERT_ERRNO_SUCCESS ();
72+ ASSERT_THAT (LIBC_NAMESPACE::close (sockpair[0 ]), Succeeds (0 ));
73+ ASSERT_THAT (LIBC_NAMESPACE::close (sockpair[1 ]), Succeeds (0 ));
7774}
7875
79- TEST (LlvmLibcSendMsgRecvMsgTest, SendFails) {
76+ TEST_F (LlvmLibcSendMsgRecvMsgTest, SendFails) {
8077 const char TEST_MESSAGE[] = " connection terminated" ;
8178 const size_t MESSAGE_LEN = sizeof (TEST_MESSAGE);
8279
@@ -94,14 +91,10 @@ TEST(LlvmLibcSendMsgRecvMsgTest, SendFails) {
9491 send_message.msg_controllen = 0 ;
9592 send_message.msg_flags = 0 ;
9693
97- ssize_t send_result = LIBC_NAMESPACE::sendmsg (-1 , &send_message, 0 );
98- EXPECT_EQ (send_result, ssize_t (-1 ));
99- ASSERT_ERRNO_FAILURE ();
100-
101- LIBC_NAMESPACE::libc_errno = 0 ; // reset errno to avoid test ordering issues.
94+ ASSERT_THAT (LIBC_NAMESPACE::sendmsg (-1 , &send_message, 0 ), Fails (EBADF));
10295}
10396
104- TEST (LlvmLibcSendMsgRecvMsgTest, RecvFails) {
97+ TEST_F (LlvmLibcSendMsgRecvMsgTest, RecvFails) {
10598 char buffer[256 ];
10699
107100 iovec recv_msg_text;
@@ -117,9 +110,5 @@ TEST(LlvmLibcSendMsgRecvMsgTest, RecvFails) {
117110 recv_message.msg_controllen = 0 ;
118111 recv_message.msg_flags = 0 ;
119112
120- ssize_t recv_result = LIBC_NAMESPACE::recvmsg (-1 , &recv_message, 0 );
121- ASSERT_EQ (recv_result, ssize_t (-1 ));
122- ASSERT_ERRNO_FAILURE ();
123-
124- LIBC_NAMESPACE::libc_errno = 0 ; // reset errno to avoid test ordering issues.
113+ ASSERT_THAT (LIBC_NAMESPACE::recvmsg (-1 , &recv_message, 0 ), Fails (EBADF));
125114}
0 commit comments