blob: 07f5654bab0395ab6879e6f247dbef764a3c59e3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
|
#!./perl -w
use strict;
use Test::More;
use Config;
plan(skip_all => "POSIX is unavailable")
unless $Config{extensions} =~ /\bPOSIX\b/;
require POSIX;
POSIX->import();
# @POSIX::EXPORT and @POSIX::EXPORT_OK are generated. The intent of this test is
# to catch *unintended* changes to them introduced by bugs in refactoring.
# N.B. the data must be sorted at runtime even though it appears sorted here
# because it is given in ASCII order and we might be on a non-ASCII platform
my %expect = (
EXPORT => [sort qw(
%SIGRT ARG_MAX B0 B110 B1200 B134 B150 B1800 B19200 B200
B2400 B300 B38400 B4800 B50 B600 B75 B9600 BRKINT BUFSIZ
CHAR_BIT CHAR_MAX CHAR_MIN CHILD_MAX CLK_TCK CLOCAL
CLOCKS_PER_SEC CREAD CS5 CS6 CS7 CS8 CSIZE CSTOPB DBL_DIG
DBL_EPSILON DBL_MANT_DIG DBL_MAX DBL_MAX_10_EXP DBL_MAX_EXP
DBL_MIN DBL_MIN_10_EXP DBL_MIN_EXP E2BIG EACCES EADDRINUSE
EADDRNOTAVAIL EAFNOSUPPORT EAGAIN EALREADY EBADF EBADMSG EBUSY
ECANCELED ECHILD ECHO ECHOE ECHOK ECHONL ECONNABORTED
ECONNREFUSED ECONNRESET EDEADLK EDESTADDRREQ EDOM EDQUOT
EEXIST EFAULT EFBIG EHOSTDOWN EHOSTUNREACH EIDRM EILSEQ
EINPROGRESS EINTR EINVAL EIO EISCONN EISDIR ELOOP EMFILE
EMLINK EMSGSIZE ENAMETOOLONG ENETDOWN ENETRESET ENETUNREACH
ENFILE ENOBUFS ENODATA ENODEV ENOENT ENOEXEC ENOLCK ENOLINK
ENOMEM ENOMSG ENOPROTOOPT ENOSPC ENOSR ENOSTR ENOSYS ENOTBLK
ENOTCONN ENOTDIR ENOTEMPTY ENOTRECOVERABLE ENOTSOCK ENOTSUP
ENOTTY ENXIO EOF EOPNOTSUPP EOTHER EOVERFLOW EOWNERDEAD EPERM
EPFNOSUPPORT EPIPE EPROCLIM EPROTO EPROTONOSUPPORT EPROTOTYPE
ERANGE EREMOTE ERESTART EROFS ESHUTDOWN ESOCKTNOSUPPORT ESPIPE
ESRCH ESTALE ETIME ETIMEDOUT ETOOMANYREFS ETXTBSY EUSERS
EWOULDBLOCK EXDEV
EXIT_FAILURE EXIT_SUCCESS FD_CLOEXEC
FE_DOWNWARD FE_TONEAREST FE_TOWARDZERO FE_UPWARD
FILENAME_MAX FLT_DIG FLT_EPSILON FLT_MANT_DIG FLT_MAX
FLT_MAX_10_EXP FLT_MAX_EXP FLT_MIN FLT_MIN_10_EXP
FLT_MIN_EXP FLT_RADIX FLT_ROUNDS FP_ILOGB0
FP_ILOGBNAN FP_INFINITE FP_NAN FP_NORMAL
FP_SUBNORMAL FP_ZERO F_DUPFD F_GETFD F_GETFL F_GETLK
F_OK F_RDLCK F_SETFD F_SETFL F_SETLK F_SETLKW
F_UNLCK F_WRLCK HUGE_VAL HUPCL ICANON ICRNL IEXTEN
IGNBRK IGNCR IGNPAR INFINITY INLCR INPCK INT_MAX
INT_MIN ISIG ISTRIP IXOFF IXON Inf LC_ALL LC_COLLATE
LC_CTYPE LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME
LDBL_DIG LDBL_EPSILON LDBL_MANT_DIG LDBL_MAX
LDBL_MAX_10_EXP LDBL_MAX_EXP LDBL_MIN
LDBL_MIN_10_EXP LDBL_MIN_EXP LINK_MAX LONG_MAX
LONG_MIN L_ctermid L_cuserid L_tmpname MAX_CANON
MAX_INPUT MB_CUR_MAX MB_LEN_MAX M_1_PI M_2_PI M_2_SQRTPI
M_E M_LN10 M_LN2 M_LOG10E M_LOG2E M_PI M_PI_2 M_PI_4
M_SQRT1_2 M_SQRT2 NAME_MAX NAN NCCS NDEBUG
NGROUPS_MAX NOFLSH NULL NaN OPEN_MAX OPOST O_ACCMODE
O_APPEND O_CREAT O_EXCL O_NOCTTY O_NONBLOCK O_RDONLY
O_RDWR O_TRUNC O_WRONLY PARENB PARMRK PARODD
PATH_MAX PIPE_BUF RAND_MAX R_OK SA_NOCLDSTOP
SA_NOCLDWAIT SA_NODEFER SA_ONSTACK SA_RESETHAND
SA_RESTART SA_SIGINFO SCHAR_MAX SCHAR_MIN SEEK_CUR
SEEK_END SEEK_SET SHRT_MAX SHRT_MIN SIGABRT SIGALRM
SIGBUS SIGCHLD SIGCONT SIGFPE SIGHUP SIGILL SIGINT
SIGKILL SIGPIPE SIGPOLL SIGPROF SIGQUIT SIGRTMAX
SIGRTMIN SIGSEGV SIGSTOP SIGSYS SIGTERM SIGTRAP
SIGTSTP SIGTTIN SIGTTOU SIGURG SIGUSR1 SIGUSR2
SIGVTALRM SIGXCPU SIGXFSZ SIG_BLOCK SIG_DFL SIG_ERR
SIG_IGN SIG_SETMASK SIG_UNBLOCK SSIZE_MAX
STDERR_FILENO STDIN_FILENO STDOUT_FILENO STREAM_MAX
S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU
S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISGID S_ISREG
S_ISUID S_IWGRP S_IWOTH S_IWUSR S_IXGRP S_IXOTH
S_IXUSR TCIFLUSH TCIOFF TCIOFLUSH TCION TCOFLUSH
TCOOFF TCOON TCSADRAIN TCSAFLUSH TCSANOW TMP_MAX
TOSTOP TZNAME_MAX UCHAR_MAX UINT_MAX ULONG_MAX
USHRT_MAX VEOF VEOL VERASE VINTR VKILL VMIN VQUIT
VSTART VSTOP VSUSP VTIME WEXITSTATUS WIFEXITED
WIFSIGNALED WIFSTOPPED WNOHANG WSTOPSIG WTERMSIG
WUNTRACED W_OK X_OK _PC_CHOWN_RESTRICTED
_PC_LINK_MAX _PC_MAX_CANON _PC_MAX_INPUT
_PC_NAME_MAX _PC_NO_TRUNC _PC_PATH_MAX _PC_PIPE_BUF
_PC_VDISABLE _POSIX_ARG_MAX _POSIX_CHILD_MAX
_POSIX_CHOWN_RESTRICTED _POSIX_JOB_CONTROL
_POSIX_LINK_MAX _POSIX_MAX_CANON _POSIX_MAX_INPUT
_POSIX_NAME_MAX _POSIX_NGROUPS_MAX _POSIX_NO_TRUNC
_POSIX_OPEN_MAX _POSIX_PATH_MAX _POSIX_PIPE_BUF
_POSIX_SAVED_IDS _POSIX_SSIZE_MAX _POSIX_STREAM_MAX
_POSIX_TZNAME_MAX _POSIX_VDISABLE _POSIX_VERSION
_SC_ARG_MAX _SC_CHILD_MAX _SC_CLK_TCK
_SC_JOB_CONTROL _SC_NGROUPS_MAX _SC_OPEN_MAX
_SC_PAGESIZE _SC_SAVED_IDS _SC_STREAM_MAX
_SC_TZNAME_MAX _SC_VERSION _exit abort access acos
acosh asctime asin asinh assert atan atanh atexit
atof atoi atol bsearch calloc cbrt ceil cfgetispeed
cfgetospeed cfsetispeed cfsetospeed clearerr clock
copysign cosh creat ctermid ctime cuserid difftime
div dup dup2 erf erfc errno execl execle execlp
execv execve execvp exp2 expm1 fabs fclose fdim
fdopen fegetround feof ferror fesetround fflush
fgetc fgetpos fgets floor fma fmax fmin fmod fopen
fpathconf fpclassify fprintf fputc fputs fread free
freopen frexp fscanf fseek fsetpos fstat fsync ftell
fwrite getchar getcwd getegid getenv geteuid getgid getgroups
getpid gets getuid hypot ilogb isalnum isalpha
isatty iscntrl isdigit isfinite isgraph isgreater
isgreaterequal isinf isless islessequal
islessgreater islower isnan isnormal isprint ispunct
isspace isunordered isupper isxdigit j0 j1 jn labs
ldexp ldiv lgamma localeconv log10 log1p log2 logb
longjmp lrint lseek malloc mblen mbstowcs mbtowc
memchr memcmp memcpy memmove memset mkfifo mktime
modf nan nearbyint nextafter nexttoward offsetof
pathconf pause perror pow putc putchar puts qsort
raise realloc remainder remove remquo rewind rint
round scalbn scanf setbuf setgid setjmp setlocale
setpgid setsid setuid setvbuf sigaction siglongjmp
signal signbit sigpending sigprocmask sigsetjmp
sigsuspend sinh sscanf stderr stdin stdout strcat
strchr strcmp strcoll strcpy strcspn strerror
strftime strlen strncat strncmp strncpy strpbrk
strrchr strspn strstr strtod strtok strtol strtold
strtoul strxfrm sysconf tan tanh tcdrain tcflow
tcflush tcgetattr tcgetpgrp tcsendbreak tcsetattr
tcsetpgrp tgamma tmpfile tmpnam tolower toupper
trunc ttyname tzname tzset uname ungetc vfprintf
vprintf vsprintf wcstombs wctomb y0 y1 yn )],
EXPORT_OK => [sort qw(
abs alarm atan2 chdir chmod chown
close closedir cos exit exp fcntl fileno fork getc
getgrgid getgrnam getlogin getpgrp getppid getpwnam
getpwuid gmtime kill lchown link localtime log mkdir
nice open opendir pipe printf rand read readdir
rename rewinddir rmdir sin sleep sprintf sqrt srand
stat system time times umask unlink utime wait
waitpid write)],
);
plan (tests => 2 * keys %expect);
while (my ($var, $expect) = each %expect) {
my $have = *{$POSIX::{$var}}{ARRAY};
cmp_ok(@$have, '==', @$expect,
"Correct number of entries for \@POSIX::$var");
is_deeply([sort @$have], $expect, "Correct entries for \@POSIX::$var");
}
|