git: d6ef9649dd92 - main - tests/unix_seqpacket: remove EMSGSIZE tests
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 28 Feb 2024 22:33:08 UTC
The branch main has been updated by glebius:
URL: https://cgit.FreeBSD.org/src/commit/?id=d6ef9649dd924f12974d66a0c29a4ede71407e7d
commit d6ef9649dd924f12974d66a0c29a4ede71407e7d
Author: Gleb Smirnoff <glebius@FreeBSD.org>
AuthorDate: 2024-02-28 22:32:46 +0000
Commit: Gleb Smirnoff <glebius@FreeBSD.org>
CommitDate: 2024-02-28 22:32:46 +0000
tests/unix_seqpacket: remove EMSGSIZE tests
These tests were not testing conformance to the specification, rather than
the limitation of our implementation. The specification doesn't say that
a SOCK_SEQPACKET shall ever return EMSGSIZE. It says:
The SOCK_SEQPACKET socket type is similar to the SOCK_STREAM type,
and is also connection-oriented. The only difference between these
types is that record boundaries are maintained using the
SOCK_SEQPACKET type. A record can be sent using one or more output
operations and received using one or more input operations, but a
single operation never transfers parts of more than one record.
Record boundaries are visible to the receiver via the MSG_EOR flag
in the received message flags returned by the recvmsg() function. It
is protocol-specific whether a maximum record size is imposed.
The EMSGSIZE is specified as 'message is too large to be sent all at once,
as the socket requires'. Indeed existing implementation that has
unix/seqpacket marked as PR_ATOMIC has such a limitation. But future
implementation won't have, thus remove the tests.
Reviewed by: tuexen, asomers
Differential Revision: https://reviews.freebsd.org/D43756
---
tests/sys/kern/unix_seqpacket_test.c | 61 ------------------------------------
1 file changed, 61 deletions(-)
diff --git a/tests/sys/kern/unix_seqpacket_test.c b/tests/sys/kern/unix_seqpacket_test.c
index a2604d065024..be273fbe1246 100644
--- a/tests/sys/kern/unix_seqpacket_test.c
+++ b/tests/sys/kern/unix_seqpacket_test.c
@@ -868,65 +868,6 @@ ATF_TC_BODY(send_recv_nonblocking, tc)
close(sv[1]);
}
-/*
- * We should get EMSGSIZE if we try to send a message larger than the socket
- * buffer, with blocking sockets
- */
-ATF_TC_WITHOUT_HEAD(emsgsize);
-ATF_TC_BODY(emsgsize, tc)
-{
- int sv[2];
- const int sndbufsize = 8192;
- const int rcvbufsize = 8192;
- const size_t pktsize = (sndbufsize + rcvbufsize) * 2;
- char sndbuf[pktsize];
- ssize_t ssize;
-
- /* setup the socket pair */
- do_socketpair(sv);
- /* Setup the buffers */
- ATF_REQUIRE_EQ(0, setsockopt(sv[0], SOL_SOCKET, SO_SNDBUF, &sndbufsize,
- sizeof(sndbufsize)));
- ATF_REQUIRE_EQ(0, setsockopt(sv[1], SOL_SOCKET, SO_RCVBUF, &rcvbufsize,
- sizeof(rcvbufsize)));
-
- ssize = send(sv[0], sndbuf, pktsize, MSG_EOR);
- ATF_CHECK_EQ(EMSGSIZE, errno);
- ATF_CHECK_EQ(-1, ssize);
- close(sv[0]);
- close(sv[1]);
-}
-
-/*
- * We should get EMSGSIZE if we try to send a message larger than the socket
- * buffer, with nonblocking sockets
- */
-ATF_TC_WITHOUT_HEAD(emsgsize_nonblocking);
-ATF_TC_BODY(emsgsize_nonblocking, tc)
-{
- int sv[2];
- const int sndbufsize = 8192;
- const int rcvbufsize = 8192;
- const size_t pktsize = (sndbufsize + rcvbufsize) * 2;
- char sndbuf[pktsize];
- ssize_t ssize;
-
- /* setup the socket pair */
- do_socketpair_nonblocking(sv);
- /* Setup the buffers */
- ATF_REQUIRE_EQ(0, setsockopt(sv[0], SOL_SOCKET, SO_SNDBUF, &sndbufsize,
- sizeof(sndbufsize)));
- ATF_REQUIRE_EQ(0, setsockopt(sv[1], SOL_SOCKET, SO_RCVBUF, &rcvbufsize,
- sizeof(rcvbufsize)));
-
- ssize = send(sv[0], sndbuf, pktsize, MSG_EOR);
- ATF_CHECK_EQ(EMSGSIZE, errno);
- ATF_CHECK_EQ(-1, ssize);
- close(sv[0]);
- close(sv[1]);
-}
-
-
/*
* We should get EAGAIN if we try to send a message larger than the socket
* buffer, with nonblocking sockets. Test with several different sockbuf sizes
@@ -1160,8 +1101,6 @@ ATF_TP_ADD_TCS(tp)
ATF_TP_ADD_TC(tp, sendto_recvfrom);
ATF_TP_ADD_TC(tp, shutdown_send);
ATF_TP_ADD_TC(tp, shutdown_send_sigpipe);
- ATF_TP_ADD_TC(tp, emsgsize);
- ATF_TP_ADD_TC(tp, emsgsize_nonblocking);
ATF_TP_ADD_TC(tp, eagain_8k_8k);
ATF_TP_ADD_TC(tp, eagain_8k_128k);
ATF_TP_ADD_TC(tp, eagain_128k_8k);