mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-28 12:13:37 +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.
144 lines
2.6 KiB
Plaintext
144 lines
2.6 KiB
Plaintext
#if !defined ISO && !defined ISO99 && !defined ISO11
|
|
constant F_DUPFD
|
|
constant F_GETFD
|
|
constant F_SETFD
|
|
constant F_GETFL
|
|
constant F_SETFL
|
|
constant F_GETLK
|
|
constant F_SETLK
|
|
constant F_SETLKW
|
|
#if !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
|
|
constant F_GETOWN
|
|
constant F_SETOWN
|
|
#endif
|
|
|
|
constant FD_CLOEXEC
|
|
|
|
constant F_RDLCK
|
|
constant F_UNLCK
|
|
constant F_WRLCK
|
|
|
|
#if defined POSIX
|
|
allow SEEK_SET
|
|
allow SEEK_CUR
|
|
allow SEEK_END
|
|
#else
|
|
constant SEEK_SET
|
|
constant SEEK_CUR
|
|
constant SEEK_END
|
|
#endif
|
|
|
|
constant O_CREAT
|
|
constant O_EXCL
|
|
constant O_NOCTTY
|
|
constant O_TRUNC
|
|
|
|
constant O_APPEND
|
|
constant O_NONBLOCK
|
|
constant O_SYNC
|
|
#if !defined XPG3 && !defined XPG4
|
|
constant O_DSYNC
|
|
constant O_RSYNC
|
|
#endif
|
|
|
|
constant O_ACCMODE
|
|
|
|
constant O_RDONLY
|
|
constant O_RDWR
|
|
constant O_WRONLY
|
|
|
|
#if !defined POSIX
|
|
constant S_IFMT
|
|
constant S_IFBLK
|
|
constant S_IFCHR
|
|
constant S_IFIFO
|
|
constant S_IFREG
|
|
constant S_IFDIR
|
|
constant S_IFLNK
|
|
constant S_IFSOCK
|
|
|
|
constant S_IRWXU
|
|
constant S_IRUSR
|
|
constant S_IWUSR
|
|
constant S_IXUSR
|
|
constant S_IRWXG
|
|
constant S_IRGRP
|
|
constant S_IWGRP
|
|
constant S_IXGRP
|
|
constant S_IRWXO
|
|
constant S_IROTH
|
|
constant S_IWOTH
|
|
constant S_IXOTH
|
|
constant S_ISUID
|
|
constant S_ISGID
|
|
#if !defined POSIX2008
|
|
constant S_ISVTX
|
|
#endif
|
|
#endif
|
|
|
|
#if defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
|
|
constant POSIX_FADV_NORMAL
|
|
constant POSIX_FADV_SEQUENTIAL
|
|
constant POSIX_FADV_RANDOM
|
|
constant POSIX_FADV_WILLNEED
|
|
constant POSIX_FADV_DONTNEED
|
|
constant POSIX_FADV_NOREUSE
|
|
#endif
|
|
|
|
type {struct flock}
|
|
|
|
element {struct flock} short l_type
|
|
element {struct flock} short l_whence
|
|
element {struct flock} off_t l_start
|
|
element {struct flock} off_t l_len
|
|
element {struct flock} pid_t l_pid
|
|
|
|
#if !defined POSIX
|
|
# if !defined UNIX98
|
|
type mode_t
|
|
# endif
|
|
type off_t
|
|
type pid_t
|
|
#endif
|
|
|
|
function int creat (const char*, mode_t)
|
|
function int fcntl (int, int, ...)
|
|
function int open (const char*, int, ...)
|
|
#if defined XOPEN2K8 || defined POSIX2008
|
|
function int openat (int, const char*, int, ...)
|
|
#endif
|
|
#if defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
|
|
function int posix_fadvise (int, off_t, off_t, int)
|
|
function int posix_fallocate (int, off_t, off_t)
|
|
#endif
|
|
|
|
#if defined XOPEN2K8 || defined POSIX2008
|
|
// Bug 18228: O_TTY_INIT, O_EXEC, O_SEARCH missing.
|
|
xfail-constant O_TTY_INIT
|
|
constant O_CLOEXEC
|
|
xfail-constant O_EXEC
|
|
xfail-constant O_SEARCH
|
|
constant O_DIRECTORY
|
|
constant O_NOFOLLOW
|
|
constant F_DUPFD_CLOEXEC
|
|
constant AT_FDCWD
|
|
constant AT_EACCESS
|
|
constant AT_SYMLINK_NOFOLLOW
|
|
constant AT_SYMLINK_FOLLOW
|
|
constant AT_REMOVEDIR
|
|
|
|
function int openat(int, const char*, int, ...)
|
|
#endif
|
|
|
|
#if !defined POSIX
|
|
allow-header sys/stat.h
|
|
allow-header unistd.h
|
|
#endif
|
|
|
|
allow l_*
|
|
allow F_*
|
|
allow O_*
|
|
allow S_*
|
|
allow *_t
|
|
#endif
|