In perl.git, the branch blead has been updated <http://perl5.git.perl.org/perl.git/commitdiff/8c551b2aa69a5a2863f777b80ce44d7a5b057193?hp=820cce217ad43afaf7a23795217d77b56d2a62c0>
- Log ----------------------------------------------------------------- commit 8c551b2aa69a5a2863f777b80ce44d7a5b057193 Author: Ricardo Signes <[email protected]> Date: Mon May 14 21:52:47 2012 -0400 minor grammar correction thanks, Jim Keenan! M pod/perldelta.pod commit 66a252efee427d602a576bf86d4e807de27d3123 Author: Ricardo Signes <[email protected]> Date: Mon May 14 21:49:01 2012 -0400 add Daniel Kahn Gillmor to AUTHORS M AUTHORS commit afe821653fc8b4146d9b37a26b704920a7aff666 Author: Ricardo Signes <[email protected]> Date: Mon May 14 21:22:06 2012 -0400 document the yet-explained Win32 test hanging We will ship with this unfixed unless someone comes up with the cure in the next week. M pod/perldelta.pod ----------------------------------------------------------------------- Summary of changes: MANIFEST | 3 - META.yml | 3 - dist/IO/Makefile.PL | 3 - dist/IO/lib/IO/Socket.pm | 11 +---- dist/IO/t/cachepropagate-tcp.t | 56 ------------------------- dist/IO/t/cachepropagate-udp.t | 34 --------------- dist/IO/t/cachepropagate-unix.t | 88 --------------------------------------- ext/POSIX/t/sysconf.t | 38 ++++++++-------- hints/linux.sh | 2 +- patchlevel.h | 2 +- pod/perldelta.pod | 13 ++++-- t/win32/runenv.t | 3 + 12 files changed, 34 insertions(+), 222 deletions(-) delete mode 100644 dist/IO/t/cachepropagate-tcp.t delete mode 100644 dist/IO/t/cachepropagate-udp.t delete mode 100644 dist/IO/t/cachepropagate-unix.t diff --git a/MANIFEST b/MANIFEST index 71c0d35..04e8fca 100644 --- a/MANIFEST +++ b/MANIFEST @@ -3259,9 +3259,6 @@ dist/IO/Makefile.PL IO extension makefile writer dist/IO/poll.c IO poll() emulation using select() dist/IO/poll.h IO poll() emulation using select() dist/IO/README IO extension maintenance notice -dist/IO/t/cachepropagate-tcp.t See if IO::Socket duplication works -dist/IO/t/cachepropagate-udp.t See if IO::Socket duplication works -dist/IO/t/cachepropagate-unix.t See if IO::Socket duplication works dist/IO/t/io_const.t See if constants from IO work dist/IO/t/io_dir.t See if directory-related methods from IO work dist/IO/t/io_dup.t See if dup()-related methods from IO work diff --git a/META.yml b/META.yml index ed5a5ac..3f71001 100644 --- a/META.yml +++ b/META.yml @@ -78,9 +78,6 @@ no_index: - dist/IO/poll.c - dist/IO/poll.h - dist/IO/README - - dist/IO/t/cachepropagate-tcp.t - - dist/IO/t/cachepropagate-udp.t - - dist/IO/t/cachepropagate-unix.t - dist/IO/t/IO.t - dist/IO/t/io_const.t - dist/IO/t/io_dir.t diff --git a/dist/IO/Makefile.PL b/dist/IO/Makefile.PL index 70ffe12..2159f43 100644 --- a/dist/IO/Makefile.PL +++ b/dist/IO/Makefile.PL @@ -33,9 +33,6 @@ WriteMakefile( OBJECT => '$(O_FILES)', ABSTRACT => 'Perl core IO modules', AUTHOR => 'Graham Barr <[email protected]>', - PREREQ_PM => { - 'Test::More' => 0, - }, ( $PERL_CORE ? () : ( diff --git a/dist/IO/lib/IO/Socket.pm b/dist/IO/lib/IO/Socket.pm index 393f836..529423b 100644 --- a/dist/IO/lib/IO/Socket.pm +++ b/dist/IO/lib/IO/Socket.pm @@ -24,7 +24,7 @@ require IO::Socket::UNIX if ($^O ne 'epoc' && $^O ne 'symbian'); @ISA = qw(IO::Handle); -$VERSION = "1.35"; +$VERSION = "1.34"; @EXPORT_OK = qw(sockatmark); @@ -349,27 +349,18 @@ sub timeout { sub sockdomain { @_ == 1 or croak 'usage: $sock->sockdomain()'; my $sock = shift; - if (!defined(${*$sock}{'io_socket_domain'})) { - my $addr = $sock->sockname(); - ${*$sock}{'io_socket_domain'} = sockaddr_family($addr) - if (defined($addr)); - } ${*$sock}{'io_socket_domain'}; } sub socktype { @_ == 1 or croak 'usage: $sock->socktype()'; my $sock = shift; - ${*$sock}{'io_socket_type'} = $sock->sockopt(Socket::SO_TYPE) - if (!defined(${*$sock}{'io_socket_type'}) && defined(eval{Socket::SO_TYPE})); ${*$sock}{'io_socket_type'} } sub protocol { @_ == 1 or croak 'usage: $sock->protocol()'; my($sock) = @_; - ${*$sock}{'io_socket_proto'} = $sock->sockopt(Socket::SO_PROTOCOL) - if (!defined(${*$sock}{'io_socket_proto'}) && defined(eval{Socket::SO_PROTOCOL})); ${*$sock}{'io_socket_proto'}; } diff --git a/dist/IO/t/cachepropagate-tcp.t b/dist/IO/t/cachepropagate-tcp.t deleted file mode 100644 index cec9a7b..0000000 --- a/dist/IO/t/cachepropagate-tcp.t +++ /dev/null @@ -1,56 +0,0 @@ -#!/usr/bin/perl - -use warnings; -use strict; - -use IO::Socket; -use IO::Socket::INET; -use Socket; -use Config; -use Test::More; - -plan tests => 8; - -my $listener = IO::Socket::INET->new(Listen => 1, - LocalAddr => '127.0.0.1', - Proto => 'tcp'); -ok(defined($listener), 'socket created'); - -my $port = $listener->sockport(); - -my $p = $listener->protocol(); -ok(defined($p), 'protocol defined'); -my $d = $listener->sockdomain(); -ok(defined($d), 'domain defined'); -my $s = $listener->socktype(); -ok(defined($s), 'type defined'); - -SKIP: { - $Config{d_pseudofork} || $Config{d_fork} - or skip("no fork", 4); - my $cpid = fork(); - if (0 == $cpid) { - # the child: - sleep(1); - my $connector = IO::Socket::INET->new(PeerAddr => '127.0.0.1', - PeerPort => $port, - Proto => 'tcp'); - exit(0); - } else {; - ok(defined($cpid), 'spawned a child'); - } - - my $new = $listener->accept(); - - is($new->sockdomain(), $d, 'domain match'); - SKIP: { - skip "no Socket::SO_PROTOCOL", 1 if !defined(eval { Socket::SO_PROTOCOL }); - is($new->protocol(), $p, 'protocol match'); - } - SKIP: { - skip "no Socket::SO_TYPE", 1 if !defined(eval { Socket::SO_TYPE }); - is($new->socktype(), $s, 'type match'); - } - - wait(); -} diff --git a/dist/IO/t/cachepropagate-udp.t b/dist/IO/t/cachepropagate-udp.t deleted file mode 100644 index 91cff37..0000000 --- a/dist/IO/t/cachepropagate-udp.t +++ /dev/null @@ -1,34 +0,0 @@ -#!/usr/bin/perl - -use warnings; -use strict; - -use IO::Socket; -use IO::Socket::INET; -use Socket; -use Test::More; - -plan tests => 7; - -my $listener = IO::Socket::INET->new(LocalAddr => '127.0.0.1', - Proto => 'udp'); -ok(defined($listener), 'socket created'); - -my $p = $listener->protocol(); -ok(defined($p), 'protocol defined'); -my $d = $listener->sockdomain(); -ok(defined($d), 'domain defined'); -my $s = $listener->socktype(); -ok(defined($s), 'type defined'); - -my $new = IO::Socket::INET->new_from_fd($listener->fileno(), 'r+'); - -is($new->sockdomain(), $d, 'domain match'); -SKIP: { - skip "no Socket::SO_PROTOCOL", 1 if !defined(eval { Socket::SO_PROTOCOL }); - is($new->protocol(), $p, 'protocol match'); -} -SKIP: { - skip "no Socket::SO_TYPE", 1 if !defined(eval { Socket::SO_TYPE }); - is($new->socktype(), $s, 'type match'); -} diff --git a/dist/IO/t/cachepropagate-unix.t b/dist/IO/t/cachepropagate-unix.t deleted file mode 100644 index 1b0ace7..0000000 --- a/dist/IO/t/cachepropagate-unix.t +++ /dev/null @@ -1,88 +0,0 @@ -#!/usr/bin/perl - -use warnings; -use strict; - -use File::Temp qw(tempdir); -use File::Spec::Functions; -use IO::Socket; -use IO::Socket::UNIX; -use Socket; -use Config; -use Test::More; - -plan tests => 15; - -SKIP: { - skip "UNIX domain sockets not implemented on $^O", 15 if ($^O =~ m/^(?:qnx|nto|vos|MSWin32)$/); - - my $socketpath = catfile(tempdir( CLEANUP => 1 ), 'testsock'); - - # start testing stream sockets: - - my $listener = IO::Socket::UNIX->new(Type => SOCK_STREAM, - Listen => 1, - Local => $socketpath); - ok(defined($listener), 'stream socket created'); - - my $p = $listener->protocol(); - ok(defined($p), 'protocol defined'); - my $d = $listener->sockdomain(); - ok(defined($d), 'domain defined'); - my $s = $listener->socktype(); - ok(defined($s), 'type defined'); - - SKIP: { - $Config{d_pseudofork} || $Config{d_fork} - or skip("no fork", 4); - my $cpid = fork(); - if (0 == $cpid) { - # the child: - sleep(1); - my $connector = IO::Socket::UNIX->new(Peer => $socketpath); - exit(0); - } else { - ok(defined($cpid), 'spawned a child'); - } - - my $new = $listener->accept(); - - is($new->sockdomain(), $d, 'domain match'); - SKIP: { - skip "no Socket::SO_PROTOCOL", 1 if !defined(eval { Socket::SO_PROTOCOL }); - is($new->protocol(), $p, 'protocol match'); - } - SKIP: { - skip "no Socket::SO_TYPE", 1 if !defined(eval { Socket::SO_TYPE }); - is($new->socktype(), $s, 'type match'); - } - - unlink($socketpath); - wait(); - } - - # now test datagram sockets: - $listener = IO::Socket::UNIX->new(Type => SOCK_DGRAM, - Local => $socketpath); - ok(defined($listener), 'datagram socket created'); - - $p = $listener->protocol(); - ok(defined($p), 'protocol defined'); - $d = $listener->sockdomain(); - ok(defined($d), 'domain defined'); - $s = $listener->socktype(); - ok(defined($s), 'type defined'); - - my $new = IO::Socket::UNIX->new_from_fd($listener->fileno(), 'r+'); - - is($new->sockdomain(), $d, 'domain match'); - SKIP: { - skip "no Socket::SO_PROTOCOL", 1 if !defined(eval { Socket::SO_PROTOCOL }); - is($new->protocol(), $p, 'protocol match'); - } - SKIP: { - skip "no Socket::SO_TYPE", 1 if !defined(eval { Socket::SO_TYPE }); - is($new->socktype(), $s, 'type match'); - } - unlink($socketpath); -} diff --git a/ext/POSIX/t/sysconf.t b/ext/POSIX/t/sysconf.t index 65625a8..8590eef 100644 --- a/ext/POSIX/t/sysconf.t +++ b/ext/POSIX/t/sysconf.t @@ -33,10 +33,10 @@ my @sys_consts = check qw( _SC_STREAM_MAX _SC_VERSION _SC_TZNAME_MAX ); -my $tests = 2 * 3 * @path_consts + - 2 * 3 * @path_consts_terminal + - 2 * 3 * @path_consts_fifo + - 3 * @sys_consts; +my $tests = 2 * 2 * @path_consts + + 2 * 2 * @path_consts_terminal + + 2 * 2 * @path_consts_fifo + + 1 * @sys_consts; plan $tests ? (tests => $tests) : (skip_all => "No tests to run on this OS") @@ -58,17 +58,17 @@ sub _check_and_report { my $return_val = eval {$sub->(eval "$constant()")}; my $errno = $!; # Grab this before anything else changes it. is($@, '', $description); - SKIP: { - skip "terminal constants set errno on QNX", 1 - if $^O eq 'nto' and $description =~ $TTY; - cmp_ok($errno, '==', 0, 'errno should be clear in all cases') - or diag("\$!: $errno"); - } - SKIP: { - skip "constant not implemented on $^O or no limit in effect", 1 - if !defined($return_val); - like($return_val, qr/\A(?:-?[1-9][0-9]*|0 but true)\z/, + + # We can't test sysconf further without investigating the type of argument + # provided + return if $description =~ /sysconf/; + + if (defined $return_val) { + like($return_val, qr/\A(?:-?[1-9][0-9]*|0 but true)\z/, 'the returned value should be a signed integer'); + } else { + cmp_ok($errno, '==', 0, 'errno should be 0 as before the call') + or diag("\$!: $errno"); } } @@ -76,7 +76,7 @@ sub _check_and_report { SKIP: { my $fd = POSIX::open($testdir, O_RDONLY) or skip "could not open test directory '$testdir' ($!)", - 3 * @path_consts; + 2 * @path_consts; for my $constant (@path_consts) { _check_and_report(sub { fpathconf($fd, shift) }, $constant, @@ -93,7 +93,7 @@ for my $constant (@path_consts) { } SKIP: { - my $n = 2 * 3 * @path_consts_terminal; + my $n = 2 * 2 * @path_consts_terminal; -c $TTY or skip("$TTY not a character file", $n); @@ -122,11 +122,11 @@ my $fifo = "fifo$$"; SKIP: { eval { mkfifo($fifo, 0666) } - or skip("could not create fifo $fifo ($!)", 2 * 3 * @path_consts_fifo); + or skip("could not create fifo $fifo ($!)", 2 * 2 * @path_consts_fifo); SKIP: { my $fd = POSIX::open($fifo, O_RDONLY | O_NONBLOCK) - or skip("could not open $fifo ($!)", 3 * @path_consts_fifo); + or skip("could not open $fifo ($!)", 2 * @path_consts_fifo); for my $constant (@path_consts_fifo) { _check_and_report(sub { fpathconf($fd, shift) }, $constant, @@ -150,7 +150,7 @@ END { SKIP: { if($^O eq 'cygwin') { pop @sys_consts; - skip("No _SC_TZNAME_MAX on Cygwin", 3); + skip("No _SC_TZNAME_MAX on Cygwin", 1); } } diff --git a/hints/linux.sh b/hints/linux.sh index 5713faf..688c68d 100644 --- a/hints/linux.sh +++ b/hints/linux.sh @@ -174,7 +174,7 @@ else fi case "$plibpth" in -'') plibpth=`$gcc -print-search-dirs | grep libraries | +'') plibpth=`LANG=C LC_ALL=C $gcc -print-search-dirs | grep libraries | cut -f2- -d= | tr ':' $trnl | grep -v 'gcc' | sed -e 's:/$::'` set X $plibpth # Collapse all entries on one line shift diff --git a/patchlevel.h b/patchlevel.h index 3640282..d0740e4 100644 --- a/patchlevel.h +++ b/patchlevel.h @@ -133,7 +133,7 @@ hunk. # endif static const char * const local_patches[] = { NULL - ,"RC0" + ,"RC1" #ifdef PERL_GIT_UNCOMMITTED_CHANGES ,"uncommitted-changes" #endif diff --git a/pod/perldelta.pod b/pod/perldelta.pod index 850e02d..c4ecd45 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -19,8 +19,8 @@ parentheses. =head1 Notice -With the release of Perl 5.16.0, the 5.12.x series of releases are now out of -their support period. There may be future 5.12.x releases, but only in the +With the release of Perl 5.16.0, the 5.12.x series of releases is now out of +its support period. There may be future 5.12.x releases, but only in the event of a critical security issue. Users of Perl 5.12 or earlier should consider upgrading to a more recent release of Perl. @@ -848,7 +848,7 @@ version of those values from the OS. This is unlikely to result in a real problem, as Perl does not attach special meaning to any non-ASCII character, so it is currently irrelevant which are quoted or not. This change fixes bug [perl #77654] and -bring Perl's behavior more into line with Unicode's recommendations. +brings Perl's behavior more into line with Unicode's recommendations. See L<perlfunc/quotemeta>. =head1 Performance Enhancements @@ -4156,6 +4156,11 @@ to F</usr/include/stdbool.h> =item * +On Win32, a number of tests hang unless STDERR is redirected. The cause of +this is still under investigation. + +=item * + The following CPAN modules have test failures with perl 5.16. Patches have been submitted for all of these, so hopefully there will be new releases soon: @@ -4189,7 +4194,7 @@ files from 137 authors. Perl continues to flourish into its third decade thanks to a vibrant community of users and developers. The following people are known to -have contributed the improvements that became Perl 5.14.1: +have contributed the improvements that became Perl 5.16.0: Aaron Crane, Abhijit Menon-Sen, Abigail, Alan Haggai Alavi, Alberto Simões, Alexandr Ciornii, Andreas König, Andy Dougherty, Aristotle diff --git a/t/win32/runenv.t b/t/win32/runenv.t index ca224de..a833c1a 100644 --- a/t/win32/runenv.t +++ b/t/win32/runenv.t @@ -23,6 +23,9 @@ BEGIN { require './test.pl'; } +skip_all "requires compilation with PERL_IMPLICIT_SYS" + unless $Config{ccflags} =~/(?:\A|\s)-DPERL_IMPLICIT_SYS\b/; + plan tests => $::tests; my $PERL = $ENV{PERL} || '.\perl'; -- Perl5 Master Repository
