Commit Graph

9 Commits

Author SHA1 Message Date
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
Joseph Myers
3d2577bba5 conformtest: Fix miscellaneous UNIX98 expectations. 2012-11-10 01:13:39 +00:00
Ulrich Drepper
3134156779 First steps to get conformtest fully working 2012-02-25 23:18:39 -05:00
Ulrich Drepper
f095bb7204 Add support for XPG7 testing.
The header conformance testing code needed extending for XPG7.  This
exposed a few bugs in the headers.  There are more changes to come.
2010-01-09 10:56:41 -08:00
Ulrich Drepper
fbe90cd5c7 * conform/data/fmtmsg.h-data: Add missing allows.
* conform/data/ftw.h-data: Likewise.
	* conform/data/inttypes.h-data: Likewise.
	* conform/data/math.h-data: Likewise.
	* conform/data/signal.h-data: Likewise.
	* conform/data/net/if.h-data: Likewise.
	* conform/data/netinet/in.h-data: Likewise.
	* conform/data/sys/socket.h-data: Likewise.
2008-01-15 21:30:09 +00:00
Ulrich Drepper
9c777dfe83 Update.
2001-08-18  Ulrich Drepper  <drepper@redhat.com>

	* conform/conformtest.pl: Change namespace test to take #undef
	lines into account.

	* conform/data/netinet/in.h-data: Fix typo in allow-header line.

	* conform/data/sys/socket.h-data: Add sockatmark.
2001-08-18 11:55:52 +00:00
Ulrich Drepper
4e0fc56262 Allow SO* symbols. 2001-03-09 17:16:03 +00:00
Ulrich Drepper
6f0ea37903 Update.
* conform/data/sys/socket.h-data: Fix typos.  Correct getsockopt,
	recvfrom, send, and socketpair prototypes.  Add allow lines.
	* socket/sys/socket.h: Include <sys/uio.h>.
	Don't use fancy __SOCKADDR_ARG definition unless __USE_GNU.
	Fix type of second parameter of listen.
	Don't declare isfdtype unless __USE_MISC.
	* sysdeps/generic/listen.c: Fix type of second parameter of listen.
	* sysdeps/mach/hurd/listen.c: Likewise.
	* sysdeps/generic/bits/socket.h (struct sockaddr_storage): Define
	ss_family and __ss_family.
	* sysdeps/unix/sysv/aix/bits/socket.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/socket.h: Likewise.
	(struct msghdr): Change type of msg_iovlen to int and type of
	msg_controllen to socklen_t.
	* sysdeps/unix/sysv/linux/alpha/bits/socket.h: New file.
	* sysdeps/unix/sysv/linux/ia64/bits/socket.h: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/bits/socket.h: New file.
2001-01-27 21:26:25 +00:00
Ulrich Drepper
9d4d69b88b Update.
* conform/conformtest.pl (@headers): Add sys/utsname.h, sys/un.h,
	sys/socket.h, spawn.h, netinet/tcp.h, netinet/in.h, net/if.h, and
	arpa/inet.h.
	* conform/data/fcntl.h-data: Add F_GETOWN, F_SETOWN,
	SEEK_SET, SEEK_CUR, SEEK_END, S_IFMT, S_IFBLK, S_IFCHR, S_IFIFO,
	S_IFREG, S_IFDIR, S_IFLNK, S_IFSOCK, S_IRWXU, S_IRUSR S_IWUSR,
	S_IXUSR, S_IRWXG, S_IRGRP, S_IWGRP, S_IXGRP, S_IRWXO, S_IROTH,
	S_IWOTH, S_IXOTH, S_ISUID, S_ISGID, S_ISVTX, POSIX_FADV_NORMAL,
	POSIX_FADV_SEQUENTIAL, POSIX_FADV_RANDOM, POSIX_FADV_WILLNEED,
	POSIX_FADV_DONTNEED, POSIX_FADV_NOREUSE, posix_fadvise,
	posix_fallocate, and posix_madvise.
	* conform/data/netdb.h-data: New file.
	* conform/data/pthread.h-data: Add pthread_barrier_t,
	pthread_barrierattr_t, pthread_barrier_destroy,
	pthread_barrier_init, pthread_barrier_wait,
	pthread_barrierattr_destroy, pthread_barrierattr_getpshared,
	pthread_barrierattr_init, pthread_barrierattr_setpshared,
	pthread_condattr_getclock, pthread_condattr_setclock,
	pthread_getcpuclockid, pthread_mutex_timedlock,
	pthread_rwlock_timedrdlock, pthread_rwlock_timedwrlock,
	pthread_sigmask, pthread_spin_destroy, pthread_spin_init,
	pthread_spin_lock, pthread_spin_trylock, and pthread_spin_unlock.
	* conform/data/sched.h-data: Add sched_ss_low_priority,
	sched_ss_repl_period, sched_ss_init_budget, sched_ss_max_repl, and
	SCHED_SPORADIC.
	* conform/data/semaphore.h-data: Add sem_timedwait.
	* conform/data/signal.h-data: Add SIGIO.
	* conform/data/spawn.h-data: New file.
	* conform/data/stdlib.h-data: Add posix_memalign, setenv, and unsetenv.
	* conform/data/time.h-data: Add CLOCK_PROCESS_CPUTIME_ID,
	CLOCK_THREAD_CPUTIME_ID, clock_getcpuclockid, and clock_nanosleep.
	Fix typo in gmtime_r definition.
	* conform/data/unistd.h-data: Add _POSIX_ADVISORY_INFO,
	_POSIX_ASYNCHRONOUS_IO, _POSIX_BARRIERS, _POSIX_MONOTONIC_CLOCK,
	_POSIX_READER_WRITER_LOCKS, _POSIX_SHELL, _POSIX_SPAWN,
	_POSIX_SPIN_LOCKS, _POSIX_SPORADIC_SERVER, _POSIX_THREAD_CPUTIME,
	_POSIX_TYPED_MEMORY_OBJECTS, _POSIX_THREAD_SPORADIC_SERVER,
	_XOPEN_STREAMS, _POSIX_TIMEOUTS, _POSIX2_PBS,
	_POSIX2_PBS_ACCOUNTING, _POSIX2_PBS_CHECKPOINT,
	_POSIX2_PBS_LOCATE, _POSIX2_PBS_MESSAGE, _POSIX2_PBS_TRACK,
	_SC_2_PBS, _SC_2_PBS_ACCOUNTING, _SC_2_PBS_CHECKPOINT,
	_SC_2_PBS_LOCATE, _SC_2_PBS_MESSAGE, _SC_2_PBS_TRACK,
	_SC_BARRIERS, _SC_BASE, _SC_CLOCK_SELECTION, _SC_DEVICE_IO,
	_SC_DEVICE_SPECIFIC, _SC_DEVICE_SPECIFIC_R, _SC_FD_MGMT, _SC_FIFO,
	_SC_FILE_ATTRIBUTES, _SC_FILE_LOCKING, _SC_FILE_SYSTEM,
	_SC_MEMORY_PROTECTION, _SC_MESSAGE_PASSING, _SC_MONOTONIC_CLOCK,
	_SC_MESSAGE_PASSING, _SC_MONOTONIC_CLOCK, _SC_MULTIPLE_PROCESS,
	_SC_NETWORKING, _SC_PIPE, _SC_READER_WRITER_LOCKS, _SC_REGEXP,
	_SC_SHELL, _SC_SIGNALS, _SC_SINGLE_PROCESS, _SC_SPIN_LOCKS,
	_SC_TYPED_MEMORY_OBJECTS, _SC_USER_GROUPS, _SC_USER_GROUPS_R,
	_SC_STREAMS, _PC_REC_INCR_XFER_SIZE, _PC_REC_MAX_XFER_SIZE,
	_PC_REC_MIN_XFER_SIZE, _PC_REC_XFER_ALIGN, setegid, seteuid.  Fix
	typo in off_t definition.
	* conform/data/net/if.h-data: New file.
	* conform/data/netinet/in.h-data: New file.
	* conform/data/netinet/tcp.h-data: New file.
	* conform/data/sys/mman.h-data: Add POSIX_MADV_NORMAL,
	POSIX_MADV_SEQUENTIAL, POSIX_MADV_RANDOM, POSIX_MADV_WILLNEED,
	POSIX_MADV_DONTNEED, POSIX_TYPED_MEM_ALLOCATE,
	POSIX_TYPED_MEM_ALLOCATE_CONTIG, POSIX_TYPED_MEM_MAP_ALLOCATABLE,
	posix_typedmem_info, posix_mem_offset, posix_typed_mem_get_info,
	and posix_typed_mem_open.
	* conform/data/sys/socket.h-data: New file.
	* conform/data/sys/stat.h-data: Add S_TYPEISTMO and isfdtype.
	* conform/data/sys/types.h-data: Add pthread_barrier_t,
	pthread_barrierattr_t, and pthread_spinlock_t.
	* conform/data/sys/un.h-data: New file.
	* conform/data/sys/utsname.h-data: New file.

	* include/netdb.h (__gethostbyaddr_r): Fix types of first and second
	parameter.
	* inet/gethstbyad.c (gethostbyname): Likewise.
	* inet/gethstbyad_t.c (gethostbyname_r): Likewise.
	* inet/getipnodebyad.c (getipnodebyad): Likewise.
	* nis/nss_nis/nis-hosts.c (_nss_nis_gethostbyaddr_r): Likewise.
	* nis/nss_nisplus/nisplus-hosts.c (_nss_nisplus_gethostbyaddr_r):
	Likewise.
	* nscd/gethstbyad_r.c (gethostbyaddr_r): Likewise.
	* nscd/nscd_gethst_r.c (__nscd_gethostbyaddr_r): Likewise.
	* nscd/nscd_proto.h (__nscd_gethostbyaddr_r): Likewise.
	* nss/nss_files/files-hosts.c (_nss_files_gethostbyaddr_r): Likewise.
	* resolv/gethnamaddr.c (gethostbyname): Likewise.
	* resolv/netdb.h (struct hostent): Fix type of h_length member.
	(gethostbyaddr, getipnodebyaddr, gethostbyaddr_r): Fix types of first
	and second parameter.

2000-04-29  Andreas Jaeger  <aj@suse.de>

	* conform/data/arpa/inet.h-data: New file.
2000-04-30 04:17:35 +00:00