mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-13 00:30:07 +00:00
5675961d15
Various conformtest tests fail because of known issues, filed in Bugzilla, that are hard to fix (requiring new features, kernel cooperation or involving changing types in ways that may involve care around padding when interfacing to the kernel). Such an issue has the effect of making the whole test for the (standard, header) pair fail, so hiding any other issues with that header for that standard (possibly regressions or architecture-specific issues). This patch adds a mechanism for individual conformtest test expectations to start with xfail-, meaning that a failure of that particular assertion does not cause the whole test to fail at the makefile level and so failure at the makefile level can be used to detect other issues that are likely to be easier to fix. This is similar to the whitelisted symbols in the linknamespace tests, or the marking of particular libm tests as allowing spurious or missing exceptions, for example. The bugs filed in Bugzilla should still be fixed, and the xfail- markers removed at that point, but xfail- renders the tests more useful until that happens. Note that there is no way to add such a marker for the assertion that a header uses only symbols in the namespace of symbols it's meant to use. I don't think there's any need for a way to xfail those namespace tests other than xfailing the whole (standard, header) pair at the makefile level, since they are generally straightforward to fix (add appropriate conditionals on the problem definitions). The xfails in this patch do not necessarily cover all cases of hard-to-fix header bugs filed in Bugzilla that currently show up in conformtest failures; there may be more yet to add for existing open bugs. Tested for x86_64 and x86. * conform/conformtest.pl ($xerrors): New variable. (note_error): New function. (compiletest): New argument $xfail. Use not_error. (runtest): Likewise. (top level): Handle xfail- lines. Update calls to compiletest and runtest. Handle xfail- and optional- in headers listed with allow-header. * conform/data/fcntl.h-data (O_TTY_INIT): Use xfail-. (O_EXEC): Likewise. (O_SEARCH): Likewise. * conform/data/stropts.h-data (ioctl): Likewise. * conform/data/sys/ipc.h-data (ipc_perm.mode): Likewise. * conform/data/sys/sem.h-data (semid_ds.sem_nsems): Likewise. * conform/data/sys/socket.h-data (msghdr.msg_iovlen): Likewise. (msghdr.msg_controllen): Likewise. (cmsghdr.cmsg_len): Likewise. * conform/data/utmpx.h-data (utmpx.ut_tv): Likewise. * conform/Makefile (test-xfail-XPG3/sys/ipc.h/conform): Remove variable. (test-xfail-XPG3/sys/sem.h/conform): Likewise. (test-xfail-XPG4/stropts.h/conform): Likewise. (test-xfail-XPG4/sys/ipc.h/conform): Likewise. (test-xfail-XPG4/sys/sem.h/conform): Likewise. (test-xfail-XPG4/sys/socket.h/conform): Likewise. (test-xfail-UNIX98/stropts.h/conform): Likewise. (test-xfail-UNIX98/sys/ipc.h/conform): Likewise. (test-xfail-UNIX98/sys/sem.h/conform): Likewise. (test-xfail-UNIX98/sys/socket.h/conform): Likewise. (test-xfail-XOPEN2K/stropts.h/conform): Likewise. (test-xfail-XOPEN2K/sys/ipc.h/conform): Likewise. (test-xfail-XOPEN2K/sys/sem.h/conform): Likewise. (test-xfail-XOPEN2K/sys/socket.h/conform): Likewise. (test-xfail-XOPEN2K/utmpx.h/conform): Likewise. (test-xfail-POSIX2008/fcntl.h/conform): Likewise. (test-xfail-POSIX2008/stropts.h/conform): Likewise. (test-xfail-XOPEN2K8/fcntl.h/conform): Likewise. (test-xfail-XOPEN2K8/stropts.h/conform): Likewise. (test-xfail-XOPEN2K8/sys/ipc.h/conform): Likewise. (test-xfail-XOPEN2K8/sys/sem.h/conform): Likewise. (test-xfail-XOPEN2K8/sys/socket.h/conform): Likewise.
140 lines
3.1 KiB
Plaintext
140 lines
3.1 KiB
Plaintext
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG3
|
|
type socklen_t
|
|
|
|
type sa_family_t
|
|
|
|
# if defined XOPEN2K8 || defined POSIX2008
|
|
type size_t
|
|
type ssize_t
|
|
# endif
|
|
|
|
type {struct sockaddr}
|
|
|
|
element {struct sockaddr} sa_family_t sa_family
|
|
element {struct sockaddr} char sa_data []
|
|
|
|
type {struct sockaddr_storage}
|
|
|
|
element {struct sockaddr_storage} sa_family_t ss_family
|
|
|
|
type {struct msghdr}
|
|
|
|
element {struct msghdr} {void*} msg_name
|
|
element {struct msghdr} socklen_t msg_namelen
|
|
element {struct msghdr} {struct iovec*} msg_iov
|
|
// Bug 16919: wrong type for msg_iovlen and msg_controllen members.
|
|
xfail-element {struct msghdr} int msg_iovlen
|
|
element {struct msghdr} {void*} msg_control
|
|
xfail-element {struct msghdr} socklen_t msg_controllen
|
|
element {struct msghdr} int msg_flags
|
|
|
|
type {struct iovec}
|
|
|
|
element {struct iovec} {void*} iov_base
|
|
element {struct iovec} size_t iov_len
|
|
|
|
type {struct cmsghdr}
|
|
|
|
// Bug 16919: wrong type for cmsg_len member.
|
|
xfail-element {struct cmsghdr} socklen_t cmsg_len
|
|
element {struct cmsghdr} int cmsg_level
|
|
element {struct cmsghdr} int cmsg_type
|
|
|
|
macro SCM_RIGHTS
|
|
|
|
macro CMSG_DATA
|
|
macro CMSG_NXTHDR
|
|
macro CMSG_FIRSTHDR
|
|
|
|
type {struct linger}
|
|
|
|
element {struct linger} int l_onoff
|
|
element {struct linger} int l_linger
|
|
|
|
macro SOCK_DGRAM
|
|
macro SOCK_STREAM
|
|
macro SOCK_SEQPACKET
|
|
|
|
macro SOL_SOCKET
|
|
|
|
macro SO_ACCEPTCONN
|
|
macro SO_BROADCAST
|
|
macro SO_DEBUG
|
|
macro SO_DONTROUTE
|
|
macro SO_ERROR
|
|
macro SO_KEEPALIVE
|
|
macro SO_LINGER
|
|
macro SO_OOBINLINE
|
|
macro SO_RCVBUF
|
|
macro SO_RCVLOWAT
|
|
macro SO_RCVTIMEO
|
|
macro SO_REUSEADDR
|
|
macro SO_SNDBUF
|
|
macro SO_SNDLOWAT
|
|
macro SO_SNDTIMEO
|
|
macro SO_TYPE
|
|
|
|
macro SOMAXCONN
|
|
|
|
macro MSG_CTRUNC
|
|
macro MSG_DONTROUTE
|
|
macro MSG_EOR
|
|
macro MSG_OOB
|
|
macro MSG_PEEK
|
|
macro MSG_TRUNC
|
|
macro MSG_WAITALL
|
|
# if defined XOPEN2K8 || defined POSIX2008
|
|
constant MSG_NOSIGNAL
|
|
# endif
|
|
|
|
macro AF_UNIX
|
|
macro AF_UNSPEC
|
|
macro AF_INET
|
|
macro AF_INET6
|
|
|
|
macro SHUT_RD
|
|
macro SHUT_WR
|
|
macro SHUT_RDWR
|
|
|
|
function int accept (int, struct sockaddr*, socklen_t*)
|
|
function int bind (int, const struct sockaddr*, socklen_t)
|
|
function int connect (int, const struct sockaddr*, socklen_t)
|
|
function int getpeername (int, struct sockaddr*, socklen_t*)
|
|
function int getsockname (int, struct sockaddr*, socklen_t*)
|
|
function int getsockopt (int, int, int, void*, socklen_t*)
|
|
function int listen (int, int)
|
|
function ssize_t recv (int, void*, size_t, int)
|
|
function ssize_t recvfrom (int, void*, size_t, int, struct sockaddr*, socklen_t*)
|
|
function ssize_t recvmsg (int, struct msghdr*, int)
|
|
function ssize_t send (int, const void*, size_t, int)
|
|
function ssize_t sendmsg (int, const struct msghdr*, int)
|
|
function ssize_t sendto (int, const void*, size_t, int, const struct sockaddr*, socklen_t)
|
|
function int setsockopt (int, int, int, const void*, socklen_t)
|
|
function int shutdown (int, int)
|
|
function int socket (int, int, int)
|
|
function int socketpair (int, int, int, int[2])
|
|
#if !defined XPG4 && !defined UNIX98
|
|
function int sockatmark (int)
|
|
#endif
|
|
|
|
allow-header sys/uio.h
|
|
|
|
allow ss_*
|
|
allow sa_*
|
|
allow if_*
|
|
allow ifc_*
|
|
allow ifru_*
|
|
allow infu_*
|
|
allow ifra_*
|
|
allow msg_*
|
|
allow cmsg_*
|
|
allow l_*
|
|
allow SO*
|
|
allow AF_*
|
|
allow CMSG_*
|
|
allow MSG_*
|
|
allow PF_*
|
|
allow SCM_*
|
|
allow SHUT_*
|
|
#endif
|