mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-18 22:13:34 +08: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.
141 lines
2.7 KiB
Plaintext
141 lines
2.7 KiB
Plaintext
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG3
|
|
type {struct bandinfo}
|
|
|
|
element {struct bandinfo} {unsigned char} bi_pri
|
|
element {struct bandinfo} int bi_flag
|
|
|
|
type {struct strpeek}
|
|
|
|
element {struct strpeek} {struct strbuf} ctlbuf
|
|
element {struct strpeek} {struct strbuf} databuf
|
|
element {struct strpeek} t_uscalar_t flags
|
|
|
|
type {struct strbuf}
|
|
|
|
element {struct strbuf} int maxlen
|
|
element {struct strbuf} int len
|
|
element {struct strbuf} {char*} buf
|
|
|
|
type {struct strfdinsert}
|
|
|
|
element {struct strfdinsert} {struct strbuf} ctlbuf
|
|
element {struct strfdinsert} {struct strbuf} databuf
|
|
element {struct strfdinsert} t_uscalar_t flags
|
|
element {struct strfdinsert} int fildes
|
|
element {struct strfdinsert} int offset
|
|
|
|
type {struct strioctl}
|
|
|
|
element {struct strioctl} int ic_cmd
|
|
element {struct strioctl} int ic_timout
|
|
element {struct strioctl} int ic_len
|
|
element {struct strioctl} {char*} ic_dp
|
|
|
|
type {struct strrecvfd}
|
|
|
|
element {struct strrecvfd} int fd
|
|
element {struct strrecvfd} uid_t uid
|
|
element {struct strrecvfd} gid_t gid
|
|
|
|
type uid_t
|
|
type gid_t
|
|
|
|
type t_uscalar_t
|
|
|
|
type {struct str_list}
|
|
|
|
element {struct str_list} int sl_nmods
|
|
element {struct str_list} {struct str_mlist*} sl_modlist
|
|
|
|
type {struct str_mlist}
|
|
|
|
element {struct str_mlist} char l_name [FMNAMESZ+1]
|
|
|
|
macro I_PUSH
|
|
macro I_POP
|
|
macro I_LOOK
|
|
macro FMNAMESZ
|
|
macro I_FLUSH
|
|
macro FLUSHR
|
|
macro FLUSHW
|
|
macro FLUSHRW
|
|
macro I_FLUSHBAND
|
|
macro I_SETSIG
|
|
macro S_RDNORM
|
|
macro S_RDBAND
|
|
macro S_INPUT
|
|
macro S_HIPRI
|
|
macro S_OUTPUT
|
|
macro S_WRNORM
|
|
macro S_WRBAND
|
|
macro S_MSG
|
|
macro S_ERROR
|
|
macro S_HANGUP
|
|
macro S_BANDURG
|
|
macro I_GETSIG
|
|
macro I_FIND
|
|
macro I_PEEK
|
|
macro RS_HIPRI
|
|
macro I_SRDOPT
|
|
macro RNORM
|
|
macro RMSGD
|
|
macro RMSGN
|
|
macro RPROTNORM
|
|
macro RPROTDAT
|
|
macro RPROTDIS
|
|
macro I_GRDOPT
|
|
macro I_NREAD
|
|
macro I_FDINSERT
|
|
macro I_STR
|
|
macro I_SWROPT
|
|
macro SNDZERO
|
|
macro I_GWROPT
|
|
macro I_SENDFD
|
|
macro I_RECVFD
|
|
macro I_LIST
|
|
macro I_ATMARK
|
|
macro ANYMARK
|
|
macro LASTMARK
|
|
macro I_CKBAND
|
|
macro I_GETBAND
|
|
macro I_CANPUT
|
|
macro I_SETCLTIME
|
|
macro I_GETCLTIME
|
|
macro I_LINK
|
|
macro I_UNLINK
|
|
macro I_PLINK
|
|
macro I_PUNLINK
|
|
|
|
macro MSG_ANY
|
|
macro MSG_BAND
|
|
macro MSG_HIPRI
|
|
macro MORECTL
|
|
macro MOREDATA
|
|
|
|
function int isastream (int)
|
|
function int getmsg (int, struct strbuf*, struct strbuf*, int*)
|
|
function int getpmsg (int, struct strbuf*, struct strbuf*, int*, int*)
|
|
// Bug 14362: wrong type for ioctl.
|
|
xfail-function int ioctl (int, int, ...)
|
|
function int putmsg (int, const struct strbuf*, const struct strbuf*, int)
|
|
function int putpmsg (int, const struct strbuf*, const struct strbuf*, int, int)
|
|
function int fattach (int, const char*)
|
|
function int fdetach (const char*)
|
|
|
|
allow-header unistd.h
|
|
|
|
allow bi_*
|
|
allow ic_*
|
|
allow l_*
|
|
allow sl_*
|
|
allow str_*
|
|
allow FLUSH*
|
|
allow I_*
|
|
allow M_*
|
|
allow MUXID_R*
|
|
allow S_*
|
|
allow SND*
|
|
allow STR*
|
|
allow *_t
|
|
#endif
|