diff options
author | Jörg Frings-Fürst <debian@jff.email> | 2024-10-20 15:21:43 +0200 |
---|---|---|
committer | Jörg Frings-Fürst <debian@jff.email> | 2024-10-20 15:21:43 +0200 |
commit | 4682deeb62247d34de87f8e777f99e2d337fd377 (patch) | |
tree | 5bd5b5605b5f3a4b3c8ea7468c34c23094afdef4 /tests/test-sys_socket.c | |
parent | 00893e79fc62966067af1a106567db96bd170338 (diff) |
New upstream version 1.3upstream/1.3upstream
Diffstat (limited to 'tests/test-sys_socket.c')
-rw-r--r-- | tests/test-sys_socket.c | 45 |
1 files changed, 41 insertions, 4 deletions
diff --git a/tests/test-sys_socket.c b/tests/test-sys_socket.c index 4e0f9ad4..5c1ad115 100644 --- a/tests/test-sys_socket.c +++ b/tests/test-sys_socket.c @@ -20,10 +20,8 @@ #include <sys/socket.h> -#if HAVE_SHUTDOWN -/* Check some integer constant expressions. */ -int a[] = { SHUT_RD, SHUT_WR, SHUT_RDWR }; -#endif +/* POSIX mandates that AF_UNSPEC shall be 0. */ +static_assert (AF_UNSPEC == 0); /* Check that the 'socklen_t' type is defined. */ socklen_t t1; @@ -40,6 +38,16 @@ struct msghdr msg; #include <errno.h> +#include "intprops.h" + +/* POSIX requires that 'socklen_t' is an integer type with a width of at + least 32 bits. */ +static_assert (32 <= TYPE_WIDTH (socklen_t)); + +/* POSIX requires that sa_family_t is an unsigned integer type. */ +static_assert (! TYPE_SIGNED (sa_family_t)); + + int main (void) { @@ -59,6 +67,35 @@ main (void) break; } + /* Check that each supported address family has a distinct value. */ + switch (0) + { + case AF_UNSPEC: +#if HAVE_IPV4 + case AF_INET: +#endif +#if HAVE_IPV6 + case AF_INET6: +#endif +#if HAVE_UNIXSOCKET + case AF_UNIX: +#endif + default: + break; + } + + /* Check that the shutdown type macros are defined to distinct values. */ +#if HAVE_SHUTDOWN + switch (0) + { + case SHUT_RD: + case SHUT_WR: + case SHUT_RDWR: + default: + break; + } +#endif + x.ss_family = 42; i = 42; msg.msg_iov = &io; |