perl

 view release on metacpan or  search on metacpan

ext/POSIX/t/export.t  view on Meta::CPAN

        qw(
            FP_ILOGB0 FP_ILOGBNAN FP_INFINITE FP_NAN FP_NORMAL FP_SUBNORMAL FP_ZERO
            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 INFINITY NAN
        ),
        # this stuff was added for Windows in 5.23
        ($^O eq 'MSWin32' ? qw(
            WSAEINTR WSAEBADF WSAEACCES WSAEFAULT WSAEINVAL WSAEMFILE WSAEWOULDBLOCK
            WSAEINPROGRESS WSAEALREADY WSAENOTSOCK WSAEDESTADDRREQ WSAEMSGSIZE
            WSAEPROTOTYPE WSAENOPROTOOPT WSAEPROTONOSUPPORT WSAESOCKTNOSUPPORT
            WSAEOPNOTSUPP WSAEPFNOSUPPORT WSAEAFNOSUPPORT WSAEADDRINUSE
            WSAEADDRNOTAVAIL WSAENETDOWN WSAENETUNREACH WSAENETRESET WSAECONNABORTED
            WSAECONNRESET WSAENOBUFS WSAEISCONN WSAENOTCONN WSAESHUTDOWN
            WSAETOOMANYREFS WSAETIMEDOUT WSAECONNREFUSED WSAELOOP WSAENAMETOOLONG
            WSAEHOSTDOWN WSAEHOSTUNREACH WSAENOTEMPTY WSAEPROCLIM WSAEUSERS
            WSAEDQUOT WSAESTALE WSAEREMOTE WSAEDISCON WSAENOMORE WSAECANCELLED
            WSAEINVALIDPROCTABLE WSAEINVALIDPROVIDER WSAEPROVIDERFAILEDINIT
            WSAEREFUSED
        ) : ()),
        # adding new functions to EXPORT is a BACKWARD COMPATIBILITY BREAKING CHANGE
        # it is OK to add new constants, but new functions may only go in EXPORT_OK
    ],
    EXPORT_OK => [sort
        # this stuff was added in 5.9, but not exported until 5.25
        qw(
            MSG_CTRUNC MSG_DONTROUTE MSG_EOR MSG_OOB MSG_PEEK
            MSG_TRUNC MSG_WAITALL
        ),
        # this stuff was added in 5.11, but not exported until 5.25
        qw(
            EAI_AGAIN EAI_BADFLAGS EAI_FAIL EAI_FAMILY EAI_MEMORY
            EAI_NONAME EAI_OVERFLOW EAI_SERVICE EAI_SOCKTYPE EAI_SYSTEM
        ),
        # this stuff was in 5.20.2
        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 L_tmpnam
        ),
        # this stuff was added in 5.21
        # (though an oversight meant that lround wasn't listed here
        # initially; it was added to @EXPORT_OK in 5.23, and to the
        # :math_h_c99 tag in 5.25)
        qw(
            FE_DOWNWARD FE_TONEAREST FE_TOWARDZERO FE_UPWARD
            fegetround fesetround
            Inf NaN
            acosh asinh atanh cbrt copysign erf erfc exp2 expm1 fdim
            fma fmax fmin fpclassify hypot ilogb isfinite isgreater
            isgreaterequal isinf isless islessequal islessgreater isnan
            isnormal isunordered j0 j1 jn lgamma log1p log2 logb lrint lround nan
            nearbyint nextafter nexttoward remainder remquo rint round scalbn
            signbit tgamma trunc y0 y1 yn strtold
        ),
        # this stuff was added in 5.23
        qw(
            getpayload issignaling setpayload setpayloadsig
            ILL_ILLOPC ILL_ILLOPN ILL_ILLADR ILL_ILLTRP ILL_PRVOPC ILL_PRVREG
            ILL_COPROC ILL_BADSTK
            FPE_INTDIV FPE_INTOVF FPE_FLTDIV FPE_FLTOVF FPE_FLTUND
            FPE_FLTRES FPE_FLTINV FPE_FLTSUB
            SEGV_MAPERR SEGV_ACCERR
            BUS_ADRALN BUS_ADRERR BUS_OBJERR
            TRAP_BRKPT TRAP_TRACE
            CLD_EXITED CLD_KILLED CLD_DUMPED CLD_TRAPPED CLD_STOPPED CLD_CONTINUED
            POLL_IN POLL_OUT POLL_MSG POLL_ERR POLL_PRI POLL_HUP
            SI_USER SI_QUEUE SI_TIMER SI_ASYNCIO SI_MESGQ
        ),
        # added in 5.27
        qw(
            PRIO_PROCESS PRIO_PGRP PRIO_USER
        ),
    ],
);

plan (tests => 2 * keys(%expect) + keys(%POSIX::));

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");
}

my %no_export_needed = map +($_ => 1),
    qw(AUTOLOAD bootstrap constant croak import load_imports
       unimplemented_message usage);

my %exported = map +($_ => 1),
    (@POSIX::EXPORT, @POSIX::EXPORT_OK, map @$_, values %POSIX::EXPORT_TAGS);

for my $name (sort keys %POSIX::) {
    my $code = do { no strict 'refs'; \&{"POSIX::$name"} };
    if (!defined &$code) {
        pass("$name need not be exported as it does not name a subroutine");
    }
    elsif ($no_export_needed{$name}) {
        pass("$name need not be exported as it is part of the internals");
    }
    else {
        ok($exported{$name}, "subroutine POSIX::$name is exported somehow");
    }
}



( run in 0.657 second using v1.01-cache-2.11-cpan-71847e10f99 )