This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: conformtest: clean up POSIX expectations for semaphore.h, signal.h, tar.h


On 03/03/2014 10:06 PM, Joseph S. Myers wrote:
> 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.)

I look forward to your parenthetical future.

The patch looks good to me.

> 2014-03-04  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.
> 
> diff --git a/conform/conformtest.pl b/conform/conformtest.pl
> index 8b97d0d..085fbb8 100644
> --- a/conform/conformtest.pl
> +++ b/conform/conformtest.pl
> @@ -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_\\'-]*))?/) {

OK.

>        my($symbol_type) = $1;
>        my($symbol) = $2;
>        my($type) = $3;
> diff --git a/conform/data/semaphore.h-data b/conform/data/semaphore.h-data
> index 4159513..8c3497b 100644
> --- a/conform/data/semaphore.h-data
> +++ b/conform/data/semaphore.h-data
> @@ -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

OK.

>  
>  allow sem_*
>  allow SEM_*
> diff --git a/conform/data/signal.h-data b/conform/data/signal.h-data
> index bb3784a..7584865 100644
> --- a/conform/data/signal.h-data
> +++ b/conform/data/signal.h-data
> @@ -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

OK.

> +# 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

OK.

>  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
> diff --git a/conform/data/tar.h-data b/conform/data/tar.h-data
> index 591850c..8477860 100644
> --- a/conform/data/tar.h-data
> +++ b/conform/data/tar.h-data
> @@ -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'

OK.

>  
> -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

OK.

>  # 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

OK.

>  
>  allow *_t
>  #endif
> 

Cheers,
Carlos.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]