conformtest: clean up POSIX expectations for semaphore.h, signal.h, tar.h.
authorJoseph Myers <joseph@codesourcery.com>
Fri, 7 Mar 2014 03:21:04 +0000 (03:21 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Fri, 7 Mar 2014 03:21:04 +0000 (03:21 +0000)
Continuing the series of patches to clean up conformtest expectations
for "POSIX" (1995/6) based on review of the expectations against the
standard, this patch cleans up those for semaphore.h, signal.h and
tar.h (including various corrections for other standards for the
expectations affected by this patch).  Tested x86_64.

(Some of the failures for signal.h shown up by this patch correcting
expectations for that header are among the reasons for posix/annexc
being expected to fail.  The goal is for conformtest eventually to
replace posix/annexc and stdlib/isomac once it has all relevant
functionality, and for the loop over standards and headers in
conformtest to convert to separate makefile targets for each
combination, so they can be run in parallel and so that xfails can be
more specific than the present xfailing of the whole of conformtest.)

* conform/conformtest.pl: Allow ' and \ in values given for
constants.
* conform/data/semaphore.h-data [POSIX] (fcntl.h): Allow header
inclusion.
[POSIX] (sys/types.h): Likewise.
[POSIX2008 || XOPEN2K8] (sys/types.h): Don't allow header
inclusion.
[POSIX || UNIX98 || XOPEN2K] (time.h): Don't allow header
inclusion.
* conform/data/signal.h-data (SIGIO): Remove expectation.
[XPG3] (SIGBUS): Do not expect.
[POSIX || XPG3] (SIGPOLL): Likewise.
[POSIX || XPG3] (SIGPROF): Likewise.
[POSIX || XPG3] (SIGSYS): Likewise.
[XPG3] (SIGTRAP): Likewise.
[POSIX || XPG3] (SIGURG): Likewise.
[POSIX || XPG3] (SIGVTALRM): Likewise.
[POSIX || XPG3] (SIGXCPU): Likewise.
[POSIX || XPG3] (SIGXFSZ): Likewise.
[POSIX] (SA_SIGINFO): Expect.
[XPG3] (siginfo_t): Do not expect type or contents.
[POSIX] (si_pid): Do not expect element.
[POSIX] (si_uid): Likewise.
[POSIX] (si_addr): Likewise.
[POSIX] (si_status): Likewise.
[POSIX] (si_band): Likewise.
[XPG4] (si_value): Likewise.
[POSIX || XPG3] (ILL_ILLOPC): Do not expect.
[POSIX || XPG3] (ILL_ILLOPN): Likewise.
[POSIX || XPG3] (ILL_ILLADR): Likewise.
[POSIX || XPG3] (ILL_ILLTRP): Likewise.
[POSIX || XPG3] (ILL_PRVOPC): Likewise.
[POSIX || XPG3] (ILL_PRVREG): Likewise.
[POSIX || XPG3] (ILL_COPROC): Likewise.
[POSIX || XPG3] (ILL_BADSTK): Likewise.
[POSIX || XPG3] (FPE_INTDIV): Likewise.
[POSIX || XPG3] (FPE_INTOVF): Likewise.
[POSIX || XPG3] (FPE_FLTDIV): Likewise.
[POSIX || XPG3] (FPE_FLTOVF): Likewise.
[POSIX || XPG3] (FPE_FLTUND): Likewise.
[POSIX || XPG3] (FPE_FLTRES): Likewise.
[POSIX || XPG3] (FPE_FLTINV): Likewise.
[POSIX || XPG3] (FPE_FLTSUB): Likewise.
[POSIX || XPG3] (SEGV_MAPERR): Likewise.
[POSIX || XPG3] (SEGV_ACCERR): Likewise.
[POSIX || XPG3] (BUS_ADRALN): Likewise.
[POSIX || XPG3] (BUS_ADRERR): Likewise.
[POSIX || XPG3] (BUS_OBJERR): Likewise.
[POSIX || XPG3] (CLD_EXITED): Likewise.
[POSIX || XPG3] (CLD_KILLED): Likewise.
[POSIX || XPG3] (CLD_DUMPED): Likewise.
[POSIX || XPG3] (CLD_TRAPPED): Likewise.
[POSIX || XPG3] (CLD_STOPPED): Likewise.
[POSIX || XPG3] (CLD_CONTINUED): Likewise.
[POSIX || XPG3] (POLL_IN): Likewise.
[POSIX || XPG3] (POLL_OUT): Likewise.
[POSIX || XPG3] (POLL_MSG): Likewise.
[POSIX || XPG3] (POLL_ERR): Likewise.
[POSIX || XPG3] (POLL_PRI): Likewise.
[POSIX || XPG3] (POLL_HUP): Likewise.
[POSIX || XPG3 || POSIX2008] (TRAP_BRKPT): Likewise.
[POSIX || XPG3 || POSIX2008] (TRAP_TRACE): Likewise.
(SIG*): Do not allow.
[XPG3] (si_*): Likewise.
[XPG3] (SI_*): Likewise.
[XPG3 || XPG4] (sigev_*): Likewise.
[XPG3 || XPG4] (SIGEV_*): Likewise.
[XPG3 || XPG4] (sival_*): Likewise.
[POSIX || XPG3 || XPG4] (uc_*): Likewise.
[POSIX || XPG3] (BUS_*): Likewise.
[POSIX || XPG3] (CLD_*): Likewise.
[POSIX || XPG3] (FPE_*): Likewise.
[POSIX || XPG3] (ILL_*): Likewise.
[POSIX || XPG3] (POLL_*): Likewise.
[POSIX || XPG3] (SEGV_*): Likewise.
[POSIX || XPG3 || POSIX2008] (SS_*): Likewise.
[POSIX || XPG3 || POSIX2008] (SV_*): Likewise.
[POSIX || XPG3 || POSIX2008] (TRAP_*): Likewise.
[POSIX || XPG3 || POSIX2008] (ss_*): Likewise.
[POSIX || XPG3 || POSIX2008] (sv_*): Likewise.
* conform/data/tar.h-data (TMAGLEN): Use macro-int-constant.
Specify type and value.
(TVERSLEN): Likewise.
(REGTYPE): Likewise.
(AREGTYPE): Likewise.
(LNKTYPE): Likewise.
(SYMTYPE): Likewise.
(CHRTYPE): Likewise.
(BLKTYPE): Likewise.
(DIRTYPE): Likewise.
(FIFOTYPE): Likewise.
(CONTTYPE): Likewise.
(TSUID): Likewise.
(TSGID): Likewise.
(TSVTX): Likewise.
(TUREAD): Likewise.
(TUWRITE): Likewise.
(TUEXEC): Likewise.
(TGREAD): Likewise.
(TGWRITE): Likewise.
(TGEXEC): Likewise.
(TOREAD): Likewise.
(TOWRITE): Likewise.
(TOEXEC): Likewise.
[POSIX] (TSVTX): Expect constant.

ChangeLog
conform/conformtest.pl
conform/data/semaphore.h-data
conform/data/signal.h-data
conform/data/tar.h-data

index 89e8d03..d0cb934 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,111 @@
+2014-03-07  Joseph Myers  <joseph@codesourcery.com>
+
+       * conform/conformtest.pl: Allow ' and \ in values given for
+       constants.
+       * conform/data/semaphore.h-data [POSIX] (fcntl.h): Allow header
+       inclusion.
+       [POSIX] (sys/types.h): Likewise.
+       [POSIX2008 || XOPEN2K8] (sys/types.h): Don't allow header
+       inclusion.
+       [POSIX || UNIX98 || XOPEN2K] (time.h): Don't allow header
+       inclusion.
+       * conform/data/signal.h-data (SIGIO): Remove expectation.
+       [XPG3] (SIGBUS): Do not expect.
+       [POSIX || XPG3] (SIGPOLL): Likewise.
+       [POSIX || XPG3] (SIGPROF): Likewise.
+       [POSIX || XPG3] (SIGSYS): Likewise.
+       [XPG3] (SIGTRAP): Likewise.
+       [POSIX || XPG3] (SIGURG): Likewise.
+       [POSIX || XPG3] (SIGVTALRM): Likewise.
+       [POSIX || XPG3] (SIGXCPU): Likewise.
+       [POSIX || XPG3] (SIGXFSZ): Likewise.
+       [POSIX] (SA_SIGINFO): Expect.
+       [XPG3] (siginfo_t): Do not expect type or contents.
+       [POSIX] (si_pid): Do not expect element.
+       [POSIX] (si_uid): Likewise.
+       [POSIX] (si_addr): Likewise.
+       [POSIX] (si_status): Likewise.
+       [POSIX] (si_band): Likewise.
+       [XPG4] (si_value): Likewise.
+       [POSIX || XPG3] (ILL_ILLOPC): Do not expect.
+       [POSIX || XPG3] (ILL_ILLOPN): Likewise.
+       [POSIX || XPG3] (ILL_ILLADR): Likewise.
+       [POSIX || XPG3] (ILL_ILLTRP): Likewise.
+       [POSIX || XPG3] (ILL_PRVOPC): Likewise.
+       [POSIX || XPG3] (ILL_PRVREG): Likewise.
+       [POSIX || XPG3] (ILL_COPROC): Likewise.
+       [POSIX || XPG3] (ILL_BADSTK): Likewise.
+       [POSIX || XPG3] (FPE_INTDIV): Likewise.
+       [POSIX || XPG3] (FPE_INTOVF): Likewise.
+       [POSIX || XPG3] (FPE_FLTDIV): Likewise.
+       [POSIX || XPG3] (FPE_FLTOVF): Likewise.
+       [POSIX || XPG3] (FPE_FLTUND): Likewise.
+       [POSIX || XPG3] (FPE_FLTRES): Likewise.
+       [POSIX || XPG3] (FPE_FLTINV): Likewise.
+       [POSIX || XPG3] (FPE_FLTSUB): Likewise.
+       [POSIX || XPG3] (SEGV_MAPERR): Likewise.
+       [POSIX || XPG3] (SEGV_ACCERR): Likewise.
+       [POSIX || XPG3] (BUS_ADRALN): Likewise.
+       [POSIX || XPG3] (BUS_ADRERR): Likewise.
+       [POSIX || XPG3] (BUS_OBJERR): Likewise.
+       [POSIX || XPG3] (CLD_EXITED): Likewise.
+       [POSIX || XPG3] (CLD_KILLED): Likewise.
+       [POSIX || XPG3] (CLD_DUMPED): Likewise.
+       [POSIX || XPG3] (CLD_TRAPPED): Likewise.
+       [POSIX || XPG3] (CLD_STOPPED): Likewise.
+       [POSIX || XPG3] (CLD_CONTINUED): Likewise.
+       [POSIX || XPG3] (POLL_IN): Likewise.
+       [POSIX || XPG3] (POLL_OUT): Likewise.
+       [POSIX || XPG3] (POLL_MSG): Likewise.
+       [POSIX || XPG3] (POLL_ERR): Likewise.
+       [POSIX || XPG3] (POLL_PRI): Likewise.
+       [POSIX || XPG3] (POLL_HUP): Likewise.
+       [POSIX || XPG3 || POSIX2008] (TRAP_BRKPT): Likewise.
+       [POSIX || XPG3 || POSIX2008] (TRAP_TRACE): Likewise.
+       (SIG*): Do not allow.
+       [XPG3] (si_*): Likewise.
+       [XPG3] (SI_*): Likewise.
+       [XPG3 || XPG4] (sigev_*): Likewise.
+       [XPG3 || XPG4] (SIGEV_*): Likewise.
+       [XPG3 || XPG4] (sival_*): Likewise.
+       [POSIX || XPG3 || XPG4] (uc_*): Likewise.
+       [POSIX || XPG3] (BUS_*): Likewise.
+       [POSIX || XPG3] (CLD_*): Likewise.
+       [POSIX || XPG3] (FPE_*): Likewise.
+       [POSIX || XPG3] (ILL_*): Likewise.
+       [POSIX || XPG3] (POLL_*): Likewise.
+       [POSIX || XPG3] (SEGV_*): Likewise.
+       [POSIX || XPG3 || POSIX2008] (SS_*): Likewise.
+       [POSIX || XPG3 || POSIX2008] (SV_*): Likewise.
+       [POSIX || XPG3 || POSIX2008] (TRAP_*): Likewise.
+       [POSIX || XPG3 || POSIX2008] (ss_*): Likewise.
+       [POSIX || XPG3 || POSIX2008] (sv_*): Likewise.
+       * conform/data/tar.h-data (TMAGLEN): Use macro-int-constant.
+       Specify type and value.
+       (TVERSLEN): Likewise.
+       (REGTYPE): Likewise.
+       (AREGTYPE): Likewise.
+       (LNKTYPE): Likewise.
+       (SYMTYPE): Likewise.
+       (CHRTYPE): Likewise.
+       (BLKTYPE): Likewise.
+       (DIRTYPE): Likewise.
+       (FIFOTYPE): Likewise.
+       (CONTTYPE): Likewise.
+       (TSUID): Likewise.
+       (TSGID): Likewise.
+       (TSVTX): Likewise.
+       (TUREAD): Likewise.
+       (TUWRITE): Likewise.
+       (TUEXEC): Likewise.
+       (TGREAD): Likewise.
+       (TGWRITE): Likewise.
+       (TGEXEC): Likewise.
+       (TOREAD): Likewise.
+       (TOWRITE): Likewise.
+       (TOEXEC): Likewise.
+       [POSIX] (TSVTX): Expect constant.
+
 2014-03-06  Joseph Myers  <joseph@codesourcery.com>
 
        * Makefile (tests): Change dependencies to ....
index 8b97d0d..085fbb8 100644 (file)
@@ -391,7 +391,7 @@ while ($#headers >= 0) {
                     "Member \"$member\" does not have the correct type.",
                     $res, 0);
       }
-    } elsif (/^(macro|constant|macro-constant|macro-int-constant) +([a-zA-Z0-9_]*) *(?:{([^}]*)} *)?(?:([>=<!]+) ([A-Za-z0-9_-]*))?/) {
+    } elsif (/^(macro|constant|macro-constant|macro-int-constant) +([a-zA-Z0-9_]*) *(?:{([^}]*)} *)?(?:([>=<!]+) ([A-Za-z0-9_\\'-]*))?/) {
       my($symbol_type) = $1;
       my($symbol) = $2;
       my($type) = $3;
index 4159513..8c3497b 100644 (file)
@@ -16,11 +16,13 @@ function int sem_trywait (sem_t*)
 function int sem_unlink (const char*)
 function int sem_wait (sem_t*)
 
-# ifndef POSIX
 allow-header fcntl.h
+# if !defined POSIX2008 && !defined XOPEN2K8
 allow-header sys/types.h
 # endif
+# if !defined POSIX && !defined UNIX98 && !defined XOPEN2K
 allow-header time.h
+# endif
 
 allow sem_*
 allow SEM_*
index bb3784a..7584865 100644 (file)
@@ -69,7 +69,6 @@ function int raise (int)
 #if !defined ISO && !defined ISO99 && !defined ISO11
 macro-int-constant SIGALRM {int} > 0
 macro-int-constant SIGHUP {int} > 0
-macro-int-constant SIGIO {int} > 0
 macro-int-constant SIGKILL {int} > 0
 macro-int-constant SIGPIPE {int} > 0
 macro-int-constant SIGQUIT {int} > 0
@@ -81,17 +80,23 @@ macro-int-constant SIGSTOP {int} > 0
 macro-int-constant SIGTSTP {int} > 0
 macro-int-constant SIGTTIN {int} > 0
 macro-int-constant SIGTTOU {int} > 0
+# ifndef XPG3
 macro-int-constant SIGBUS {int} > 0
+# endif
+# if !defined POSIX && !defined XPG3
 macro-int-constant SIGPOLL {int} > 0
 macro-int-constant SIGPROF {int} > 0
 macro-int-constant SIGSYS {int} > 0
-# if !defined POSIX && !defined POSIX2008
+# endif
+# if !defined POSIX && !defined XPG3 && !defined POSIX2008
 macro-int-constant SIGTRAP {int} > 0
 # endif
+# if !defined POSIX && !defined XPG3
 macro-int-constant SIGURG {int} > 0
 macro-int-constant SIGVTALRM {int} > 0
 macro-int-constant SIGXCPU {int} > 0
 macro-int-constant SIGXFSZ {int} > 0
+# endif
 
 type {struct sigaction}
 
@@ -101,6 +106,7 @@ element {struct sigaction} int sa_flags
 element {struct sigaction} {void(*} sa_sigaction )(int, siginfo_t*, void*)
 
 constant SA_NOCLDSTOP
+constant SA_SIGINFO
 constant SIG_BLOCK
 constant SIG_UNBLOCK
 constant SIG_SETMASK
@@ -110,7 +116,6 @@ constant SA_ONSTACK
 # if !defined POSIX
 constant SA_RESETHAND
 constant SA_RESTART
-constant SA_SIGINFO
 constant SA_NOCLDWAIT
 constant SA_NODEFER
 # endif
@@ -141,20 +146,27 @@ element {struct sigstack} int ss_onstack
 element {struct sigstack} {void*} ss_sp
 # endif
 
+# ifndef XPG3
 type siginfo_t
 
 element siginfo_t int si_signo
-# if !defined POSIX && !defined POSIX2008
+#  if !defined POSIX && !defined POSIX2008
 element siginfo_t int si_errno
-# endif
+#  endif
 element siginfo_t int si_code
+#  ifndef POSIX
 element siginfo_t pid_t si_pid
 element siginfo_t uid_t si_uid
 element siginfo_t {void*} si_addr
 element siginfo_t int si_status
 element siginfo_t long si_band
+#  endif
+#  ifndef XPG4
 element siginfo_t {union sigval} si_value
+#  endif
+# endif
 
+# if !defined POSIX && !defined XPG3
 constant ILL_ILLOPC
 constant ILL_ILLOPN
 constant ILL_ILLADR
@@ -176,8 +188,6 @@ constant SEGV_ACCERR
 constant BUS_ADRALN
 constant BUS_ADRERR
 constant BUS_OBJERR
-constant TRAP_BRKPT
-constant TRAP_TRACE
 constant CLD_EXITED
 constant CLD_KILLED
 constant CLD_DUMPED
@@ -190,6 +200,11 @@ constant POLL_MSG
 constant POLL_ERR
 constant POLL_PRI
 constant POLL_HUP
+# endif
+# if !defined POSIX && !defined XPG3 && !defined POSIX2008
+constant TRAP_BRKPT
+constant TRAP_TRACE
+# endif
 constant SI_USER
 constant SI_QUEUE
 constant SI_TIMER
@@ -251,26 +266,35 @@ function void psignal (int, const char*)
 
 // The following expressions are not entirely correct but the current
 // poorfnmatch implementation doesn't grok the right form.
-allow SIG*
 allow sa_*
-allow uc_*
-allow ss_*
-allow sv_*
+allow SA_*
+# ifndef XPG3
 allow si_*
 allow SI_*
+# endif
+# if !defined XPG3 && !defined XPG4
 allow sigev_*
 allow SIGEV_*
 allow sival_*
-allow SA_*
+# endif
+# if !defined POSIX && !defined XPG3 && !defined XPG4
+allow uc_*
+# endif
+# if !defined POSIX && !defined XPG3
 allow BUS_*
 allow CLD_*
 allow FPE_*
 allow ILL_*
 allow POLL_*
 allow SEGV_*
+# endif
+# if !defined POSIX && !defined XPG3 && !defined POSIX2008
 allow SS_*
 allow SV_*
 allow TRAP_*
+allow ss_*
+allow sv_*
+# endif
 allow *_t
 
 allow-header time.h
index 591850c..8477860 100644 (file)
@@ -1,33 +1,33 @@
 #if !defined ISO && !defined ISO99 && !defined ISO11
 macro-str TMAGIC "ustar"
-constant TMAGLEN == 6
+macro-int-constant TMAGLEN {int} == 6
 macro-str TVERSION "00"
-constant TVERSLEN == 2
+macro-int-constant TVERSLEN {int} == 2
 
-constant REGTYPE
-constant AREGTYPE
-constant LNKTYPE
-constant SYMTYPE
-constant CHRTYPE
-constant BLKTYPE
-constant DIRTYPE
-constant FIFOTYPE
-constant CONTTYPE
+macro-int-constant REGTYPE {int} == '0'
+macro-int-constant AREGTYPE {int} == '\0'
+macro-int-constant LNKTYPE {int} == '1'
+macro-int-constant SYMTYPE {int} == '2'
+macro-int-constant CHRTYPE {int} == '3'
+macro-int-constant BLKTYPE {int} == '4'
+macro-int-constant DIRTYPE {int} == '5'
+macro-int-constant FIFOTYPE {int} == '6'
+macro-int-constant CONTTYPE {int} == '7'
 
-constant TSUID == 04000
-constant TSGID == 02000
-# if !defined POSIX && !defined POSIX2008
-constant TSVTX == 01000
+macro-int-constant TSUID {int} == 04000
+macro-int-constant TSGID {int} == 02000
+# if !defined POSIX2008
+macro-int-constant TSVTX {int} == 01000
 # endif
-constant TUREAD == 00400
-constant TUWRITE == 00200
-constant TUEXEC == 00100
-constant TGREAD == 00040
-constant TGWRITE == 00020
-constant TGEXEC == 00010
-constant TOREAD == 00004
-constant TOWRITE == 00002
-constant TOEXEC == 00001
+macro-int-constant TUREAD {int} == 00400
+macro-int-constant TUWRITE {int} == 00200
+macro-int-constant TUEXEC {int} == 00100
+macro-int-constant TGREAD {int} == 00040
+macro-int-constant TGWRITE {int} == 00020
+macro-int-constant TGEXEC {int} == 00010
+macro-int-constant TOREAD {int} == 00004
+macro-int-constant TOWRITE {int} == 00002
+macro-int-constant TOEXEC {int} == 00001
 
 allow *_t
 #endif