From 5675961d15cf3bb9bf7b0096704d5fe09569e875 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Fri, 19 Jun 2015 20:05:41 +0000 Subject: 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. --- conform/Makefile | 22 ---------------------- 1 file changed, 22 deletions(-) (limited to 'conform/Makefile') diff --git a/conform/Makefile b/conform/Makefile index 4acafa3713..5db58375e7 100644 --- a/conform/Makefile +++ b/conform/Makefile @@ -178,8 +178,6 @@ test-xfail-XPG3/signal.h/conform = yes test-xfail-XPG3/stdio.h/conform = yes test-xfail-XPG3/stdlib.h/conform = yes test-xfail-XPG3/string.h/conform = yes -test-xfail-XPG3/sys/ipc.h/conform = yes -test-xfail-XPG3/sys/sem.h/conform = yes test-xfail-XPG3/sys/stat.h/conform = yes test-xfail-XPG3/sys/types.h/conform = yes test-xfail-XPG3/sys/wait.h/conform = yes @@ -194,10 +192,6 @@ test-xfail-XPG4/netinet/in.h/conform = yes test-xfail-XPG4/signal.h/conform = yes test-xfail-XPG4/stdio.h/conform = yes test-xfail-XPG4/stdlib.h/conform = yes -test-xfail-XPG4/stropts.h/conform = yes -test-xfail-XPG4/sys/ipc.h/conform = yes -test-xfail-XPG4/sys/sem.h/conform = yes -test-xfail-XPG4/sys/socket.h/conform = yes test-xfail-XPG4/sys/stat.h/conform = yes test-xfail-XPG4/sys/time.h/conform = yes test-xfail-XPG4/sys/types.h/conform = yes @@ -215,10 +209,6 @@ test-xfail-UNIX98/netinet/in.h/conform = yes test-xfail-UNIX98/signal.h/conform = yes test-xfail-UNIX98/stdio.h/conform = yes test-xfail-UNIX98/stdlib.h/conform = yes -test-xfail-UNIX98/stropts.h/conform = yes -test-xfail-UNIX98/sys/ipc.h/conform = yes -test-xfail-UNIX98/sys/sem.h/conform = yes -test-xfail-UNIX98/sys/socket.h/conform = yes test-xfail-UNIX98/sys/time.h/conform = yes test-xfail-UNIX98/sys/wait.h/conform = yes test-xfail-UNIX98/ucontext.h/conform = yes @@ -233,33 +223,21 @@ test-xfail-XOPEN2K/semaphore.h/conform = yes test-xfail-XOPEN2K/signal.h/conform = yes test-xfail-XOPEN2K/stdarg.h/conform = yes test-xfail-XOPEN2K/stdio.h/conform = yes -test-xfail-XOPEN2K/stropts.h/conform = yes -test-xfail-XOPEN2K/sys/ipc.h/conform = yes -test-xfail-XOPEN2K/sys/sem.h/conform = yes -test-xfail-XOPEN2K/sys/socket.h/conform = yes test-xfail-XOPEN2K/sys/wait.h/conform = yes test-xfail-XOPEN2K/termios.h/conform = yes test-xfail-XOPEN2K/tgmath.h/conform = yes test-xfail-XOPEN2K/ucontext.h/conform = yes -test-xfail-XOPEN2K/utmpx.h/conform = yes test-xfail-POSIX2008/arpa/inet.h/conform = yes -test-xfail-POSIX2008/fcntl.h/conform = yes test-xfail-POSIX2008/netdb.h/conform = yes test-xfail-POSIX2008/netinet/in.h/conform = yes test-xfail-POSIX2008/signal.h/conform = yes -test-xfail-POSIX2008/stropts.h/conform = yes test-xfail-POSIX2008/sys/socket.h/conform = yes test-xfail-POSIX2008/sys/wait.h/conform = yes -test-xfail-XOPEN2K8/fcntl.h/conform = yes test-xfail-XOPEN2K8/limits.h/conform = yes test-xfail-XOPEN2K8/math.h/conform = yes test-xfail-XOPEN2K8/signal.h/conform = yes test-xfail-XOPEN2K8/stdio.h/conform = yes -test-xfail-XOPEN2K8/stropts.h/conform = yes -test-xfail-XOPEN2K8/sys/ipc.h/conform = yes test-xfail-XOPEN2K8/sys/select.h/conform = yes -test-xfail-XOPEN2K8/sys/sem.h/conform = yes -test-xfail-XOPEN2K8/sys/socket.h/conform = yes test-xfail-XOPEN2K8/sys/time.h/conform = yes test-xfail-XOPEN2K8/sys/wait.h/conform = yes test-xfail-XOPEN2K8/termios.h/conform = yes -- cgit v1.2.1