glibc/conform/data/fcntl.h-data
Joseph Myers 5675961d15 conformtest: Support xfail markers on individual assertions.
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.
2015-06-19 20:05:41 +00:00

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