Giter Site home page Giter Site logo

test-tcp's Introduction

NAME

Test::TCP - testing TCP program

SYNOPSIS

use Test::TCP;

my $server = Test::TCP->new(
    listen => 1,
    code => sub {
        my $socket = shift;
        ...
    },
);
my $client = MyClient->new(host => '127.0.0.1', port => $server->port);
undef $server; # kill child process on DESTROY

If using a server that can only accept a port number, e.g. memcached:

use Test::TCP;

my $memcached = Test::TCP->new(
    code => sub {
        my $port = shift;

        exec $bin, '-p' => $port;
        die "cannot execute $bin: $!";
    },
);
my $memd = Cache::Memcached->new({servers => ['127.0.0.1:' . $memcached->port]});
...

N.B.: This is vulnerable to race conditions, if another process binds to the same port after Net::EmptyPort found it available.

And functional interface is available:

use Test::TCP;
test_tcp(
    listen => 1,
    client => sub {
        my ($port, $server_pid) = @_;
        # send request to the server
    },
    server => sub {
        my $socket = shift;
        # run server, calling $socket->accept
    },
);

test_tcp(
    client => sub {
        my ($port, $server_pid) = @_;
        # send request to the server
    },
    server => sub {
        my $port = shift;
        # run server, binding to $port
    },
);

DESCRIPTION

Test::TCP is a test utility to test TCP/IP-based server programs.

METHODS

  • test_tcp

    Functional interface.

      test_tcp(
          listen => 1,
          client => sub {
              my $port = shift;
              # send request to the server
          },
          server => sub {
              my $socket = shift;
              # run server
          },
          # optional
          host => '127.0.0.1', # specify '::1' to test using IPv6
          port => 8080,
          max_wait => 3, # seconds
      );
    

    If listen is false, server is instead passed a port number that was free before it was called.

  • wait_port

      wait_port(8080);
    

    Waits for a particular port is available for connect.

Object Oriented interface

  • my $server = Test::TCP->new(%args);

    Create new instance of Test::TCP.

    Arguments are following:

    • $args{auto_start}: Boolean

      Call $server->start() after create instance.

      Default: true

    • $args{code}: CodeRef

      The callback function. Argument for callback function is: $code->($socket) or $code->($port), depending on the value of listen.

      This parameter is required.

    • $args{max_wait} : Number

      Will wait for at most $max_wait seconds before checking port.

      See also Net::EmptyPort.

      Default: 10

    • $args{listen} : Boolean

      If true, open a listening socket and pass this to the callback. Otherwise find a free port and pass the number of it to the callback.

  • $server->start()

    Start the server process. Normally, you don't need to call this method.

  • $server->stop()

    Stop the server process.

  • my $pid = $server->pid();

    Get the pid of child process.

  • my $port = $server->port();

    Get the port number of child process.

FAQ

  • How to invoke two servers?

    You can call test_tcp() twice!

      test_tcp(
          client => sub {
              my $port1 = shift;
              test_tcp(
                  client => sub {
                      my $port2 = shift;
                      # some client code here
                  },
                  server => sub {
                      my $port2 = shift;
                      # some server2 code here
                  },
              );
          },
          server => sub {
              my $port1 = shift;
              # some server1 code here
          },
      );
    

    Or use the OO interface instead.

      my $server1 = Test::TCP->new(code => sub {
          my $port1 = shift;
          ...
      });
      my $server2 = Test::TCP->new(code => sub {
          my $port2 = shift;
          ...
      });
    
      # your client code here.
      ...
    
  • How do you test server program written in other languages like memcached?

    You can use exec() in child process.

      use strict;
      use warnings;
      use utf8;
      use Test::More;
      use Test::TCP 1.08;
      use File::Which;
    
      my $bin = scalar which 'memcached';
      plan skip_all => 'memcached binary is not found' unless defined $bin;
    
      my $memcached = Test::TCP->new(
          code => sub {
              my $port = shift;
    
              exec $bin, '-p' => $port;
              die "cannot execute $bin: $!";
          },
      );
    
      use Cache::Memcached;
      my $memd = Cache::Memcached->new({servers => ['127.0.0.1:' . $memcached->port]});
      $memd->set(foo => 'bar');
      is $memd->get('foo'), 'bar';
    
      done_testing;
    
  • How do I use address other than "127.0.0.1" for testing?

    You can use the host parameter to specify the bind address.

      # let the server bind to "0.0.0.0" for testing
      test_tcp(
          client => sub {
              ...
          },
          server => sub {
              ...
          },
          host => '0.0.0.0',
      );
    
  • How should I write IPv6 tests?

    You should use the "can_bind" in Net::EmptyPort function to check if the program can bind to the loopback address of IPv6, as well as the host parameter of the "test_tcp" function to specify the same address as the bind address.

      use Net::EmptyPort qw(can_bind);
    
      plan skip_all => "IPv6 not available"
          unless can_bind('::1');
    
      test_tcp(
          client => sub {
              ...
          },
          server => sub {
              ...
          },
          host => '::1',
      );
    

AUTHOR

Tokuhiro Matsuno [email protected]

THANKS TO

kazuhooku

dragon3

charsbar

Tatsuhiko Miyagawa

lestrrat

SEE ALSO

LICENSE

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

test-tcp's People

Contributors

alexmv avatar bigpresh avatar bjakubski avatar charsbar avatar domm avatar exodist avatar gfx avatar i110 avatar ilmari avatar kazeburo avatar kazuho avatar kentfredric avatar lestrrat avatar manwar avatar mattn avatar miyagawa avatar neilb avatar nponeccop avatar openstrike avatar ppisar avatar sineswiper avatar syohex avatar tbsliver avatar tokuhirom avatar trinitum avatar wchristian avatar yoshikazusawa avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

test-tcp's Issues

Net::EmptyPort should have a $VERSION and be a separate distribution

I have some modules with tests that use Net::EmptyPort but not Test::TCP. There were test failures due to cpantesters using older versions, but the prereq reports say "undef" for the module version, so I do not know which version they are using.

While it's an easy fix to specify Test::TCP as a prerequisite, it's technically not correct.

Net::EmptyPort should probably be split into a separate release.

01_simple.t hangs on Windows starting from 2.08

    # Subtest: v4
    ok 1 - test case for sharedfork
    ok 2 - test case for sharedfork
    ok 3 - test case for sharedfork
    ok 4 - test case for sharedfork
    ok 5 - test case for sharedfork
    ok 6 - test case for sharedfork
    ok 7 - test case for sharedfork
    ok 8 - test case for sharedfork
    ok 9 - test case for sharedfork
    ok 10 - test case for sharedfork
    ok 1 - test case for sharedfork
    ok 2 - test case for sharedfork
    ok 3 - test case for sharedfork
    ok 4 - test case for sharedfork
    ok 5 - test case for sharedfork
    ok 6 - test case for sharedfork
    ok 7 - test case for sharedfork
    ok 8 - test case for sharedfork
    ok 9 - test case for sharedfork
    ok 10 - test case for sharedfork
    # send 1
    # new request
    ok 11
    # send 2
    # new request
    ok 12
    # finalize
    # new request
    1..12
ok 1 - v4
    # Subtest: v6

Upgrade Test::SharedFork dependency

Old versions of Test::SharedFork are incompatibles with the new Test::Builder: I had "missing TB2::History" errors.

It would be helpful to upgrade the Test::SharedFork dependency to help the user to avoid to encounter such hard to track deep errors.

Multiple problems with port range in Net::EmptyPort::empty_port

It appears Net::EmptyPort contains some bugs/inconsistencies with regard to port numbers:

  1. starting port number is incremented by one before any check
    • same goes for user-specified port number - it is first incremented
  2. docs claim that default search range is 49152..65535, but code stops checking when it reaches port 65000
    • so the real search range appears to currently be 49152..65000, but see below
  3. when no starting port is specified then empty_port() actually starts checking at port 50001
  • it is unclear also why it picks random starting port from 50000 - 51500 range (is there something special about "50000" and "1500" there? Or are those just some arbitrary values?)
  1. when passing "port" param to empty_port() it seem any value >= 49152 gets silently changed to 49152
    • so it is not possible at all to specify for example port 50000 as starting port number
  2. There is some attempt to "improve randomization" by using $PID in starting port selector. It does not seem to do anything useful:

$port = 50000 + (int(rand()*1500) + abs($$)) % 1500;

When we start with random 0..1499 value there is nothing to gain by messing with value while remaining constrained by the same range (any result is limited to 0..1499 range anyway by modulo operator). It can't get any more "random" that way.

Those issues are not very important for Test::TCP main use case. They are a bit more serious for standalone Net::EmptyPort use. They all seem to be within the same small area of code, so I do not think it makes sense to split them into separate issues.

I wanted to work on them but quickly found that it is quite hard to guess what behavior is actually intended here. I'd by happy to take any comments which confirm which of those are actually bugs in code (and not i.e. doc bugs)

module-build prereq fails

for some reason, when installing from CPAN, the build doesn't recognize the Module::Build dep requirement. if you try installing this on a system where Module::Build < .38 it (CPAN) fails to upgrade Module::Build and then fails to write the MYMETA.json, which provides for a cascading failure when other modules depend on Test-TCP for tests, then fail.

"bind to an anvailable address" test fails

I'm getting a test failure when installing Test::TCP. This is on Ubuntu 12.04.2 LTS with perl 5, version 14, subversion 2 (v5.14.2) built for x86_64-linux-gnu-thread-multi.

#   Failed test 'bind to an anvailable address'
#   at t/11_net_empty_port.t line 26.
# Looks like you failed 1 test of 4.
t/11_net_empty_port.t ..........
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/4 subtests
  (less 1 skipped subtest: 2 okay)

It looks like this test is trying to bind to an unavailable address and expecting to fail, but for some reason the bind is succeeding. I'm not sure why this is happening.

Test fails on Windows 10 + WSL + Debian 10

% prove -bvm t/11_net_empty_port.t
t/11_net_empty_port.t ..
ok 1 - bind to 127.0.0.1
# Subtest: v4
    ok 1 - found an empty port on 127.0.0.1
    ok 2 - port 56054 on 127.0.0.1 is closed
    ok 3 - port 56054 on 127.0.0.1 is now open
    1..3
ok 2 - v4
# Subtest: v6
    # found an empty IPv6 port
    ok 1 - found an empty port on ::1
    ok 2 - port 56065 on ::1 is closed
    ok 3 - port 56065 on ::1 is now open
    1..3
ok 3 - v6
# Subtest: return value
    ok 1
    1..1
ok 4 - return value
ok 5 - Non hashref arg to empty_port
ok 6 - Specified low port to empty_port
ok 7 - Specified high port to empty_port
ok 8 - Specified non-numeric port to empty_port
ok 9 - Specified non-numeric port and udp proto to empty_port
ok 10 - 4 args to wait_port (backwards compat)
ok 11 - 3 args to wait_port
ok 12 - No args to wait_port is fatal
ok 13 - No max_wait to wait_port
ok 14 - No args to check_port is fatal
ok 15 - 2 args to check_port
# Subtest: udp-wait-port
    not ok 1 - port is down
    #   Failed test 'port is down'
    #   at t/11_net_empty_port.t line 88.
    ok 2 - port is up
    1..2
    # Looks like you failed 1 test of 2.
not ok 16 - udp-wait-port
#   Failed test 'udp-wait-port'
#   at t/11_net_empty_port.t line 96.
1..16
# Looks like you failed 1 test of 16.
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/16 subtests

Test Summary Report
-------------------
t/11_net_empty_port.t (Wstat: 256 Tests: 16 Failed: 1)
  Failed test:  16
  Non-zero exit status: 1
Files=1, Tests=16, 18 wallclock secs ( 0.00 usr  0.03 sys +  0.04 cusr  0.07 csys =  0.14 CPU)

Fails on Perl 5.19.9

  Building and testing Test-TCP-2.02 ... Building Test-TCP
  t/00_compile.t ................. 1/1 # Test::More: 1.001002
  t/00_compile.t ................. ok   
  t/01_simple.t .................. ok     
  t/02_abrt.t .................... 1/2 # your server received SIGABRT
  t/02_abrt.t .................... ok   
  t/03_return_when_sigterm.t ..... ok   
  t/04_die.t ..................... ok   
  t/05_sigint.t .................. 1/2 
  #   Failed test 'should not reach here'
  #   at t/05_sigint.t line 43.

  #   Failed test at t/05_sigint.t line 21.

  #   Failed test 'sigint'
  #   at t/05_sigint.t line 22.
  #          got: 'ZERO'
  #     expected: 'INT'
  # Looks like you planned 2 tests but ran 3.
  # Looks like you failed 3 tests of 3 run.
  t/05_sigint.t .................. Dubious, test returned 3 (wstat 768, 0x300)
  Failed 2/2 subtests 
  t/06_nest.t .................... ok   
  t/07_optional.t ................ ok   
  t/08_exit.t .................... ok   
  t/09_fork.t .................... ok   
  t/10_oo.t ...................... ok     
  t/11_net_empty_port.t .......... ok   
  t/12_pass_wait_port_options.t .. ok    
  t/13_undef_port.t .............. ok     

  Test Summary Report
  -------------------
  t/05_sigint.t                (Wstat: 768 Tests: 3 Failed: 3)
    Failed tests:  1-3
    Non-zero exit status: 3
    Parse errors: Bad plan.  You planned 2 tests but ran 3.
  Files=14, Tests=141,  8 wallclock secs ( 0.06 usr  0.02 sys +  0.99 cusr  0.24 csys =  1.31 CPU)
  Result: FAIL
  Failed 1/14 test programs. 3/141 subtests failed.
  FAIL

issue installing with cpan on perl-5.8.4

CPAN

kevin@vinny:~$ cpan Test::TCP
CPAN: CPAN::SQLite loaded ok (v0.203)
Database was generated on Mon, 23 Jun 2014 08:37:39 GMT

Running install for module 'Test::TCP'
CPAN: Digest::SHA loaded ok (v5.92)
CPAN: Compress::Zlib loaded ok (v2.064)
Checksum for /home/kevin/.cpan/sources/authors/id/T/TO/TOKUHIROM/Test-TCP-2.02.tar.gz ok
CPAN: File::Temp loaded ok (v0.2304)
CPAN: YAML loaded ok (v0.94)
CPAN: Parse::CPAN::Meta loaded ok (v1.4414)
CPAN: CPAN::Meta loaded ok (v2.141520)
CPAN: Module::Build loaded ok (v0.4205)
CPAN: Time::HiRes loaded ok (v1.9726)
Configuring T/TO/TOKUHIROM/Test-TCP-2.02.tar.gz with Build.PL
CPAN: CPAN::Reporter loaded ok (v1.2011)
Created MYMETA.yml and MYMETA.json
Creating new 'Build' script for 'Test-TCP' version '2.02'
, or } expected while parsing object/hash, at character offset 138 (before ""generated_by" : "Mo...") at /home/kevin/perl5/perlbrew/perls/perl-5.8.4/lib/site_perl/5.8.4/Parse/CPAN/Meta.pm line 52.
 at /home/kevin/perl5/perlbrew/perls/perl-5.8.4/lib/site_perl/5.8.4/CPAN/Meta.pm line 300.
 at Build.PL line 55.
(/home/kevin/perl5/perlbrew/perls/perl-5.8.4/bin/perl Build.PL exited with 65280)
CPAN::Reporter: Build.PL result is 'unknown', Stopped with an error.
CPAN::Reporter: preparing a CPAN Testers report for Test-TCP-2.02
Do you want to review or edit the test report? (yes/no) [no] 
CPAN::Reporter: test report will not be sent
Warning: No success on command[/home/kevin/perl5/perlbrew/perls/perl-5.8.4/bin/perl Build.PL]
  TOKUHIROM/Test-TCP-2.02.tar.gz
  /home/kevin/perl5/perlbrew/perls/perl-5.8.4/bin/perl Build.PL -- NOT OK

CPANM

kevin@vinny:~$ cpanm -v Test::TCP
cpanm (App::cpanminus) 1.7004 on perl 5.008004 built for i686-linux-thread-multi
Work directory is /home/kevin/.cpanm/work/1403512896.10515
You have make /usr/bin/make
You have LWP 6.06
You have /bin/tar: tar (GNU tar) 1.27.1
Copyright © 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by John Gilmore and Jay Fenlason.
You have /usr/bin/unzip
Searching Test::TCP on cpanmetadb ...
--> Working on Test::TCP
Fetching http://www.cpan.org/authors/id/T/TO/TOKUHIROM/Test-TCP-2.02.tar.gz ... OK
Unpacking Test-TCP-2.02.tar.gz
Test-TCP-2.02/Build.PL
Test-TCP-2.02/Changes
Test-TCP-2.02/LICENSE
Test-TCP-2.02/META.json
Test-TCP-2.02/README.md
Test-TCP-2.02/cpanfile
Test-TCP-2.02/lib/Net/EmptyPort.pm
Test-TCP-2.02/lib/Test/TCP.pm
Test-TCP-2.02/lib/Test/TCP/CheckPort.pm
Test-TCP-2.02/t/00_compile.t
Test-TCP-2.02/t/01_simple.t
Test-TCP-2.02/t/02_abrt.t
Test-TCP-2.02/t/03_return_when_sigterm.t
Test-TCP-2.02/t/04_die.t
Test-TCP-2.02/t/05_sigint.t
Test-TCP-2.02/t/06_nest.t
Test-TCP-2.02/t/07_optional.t
Test-TCP-2.02/t/08_exit.t
Test-TCP-2.02/t/09_fork.t
Test-TCP-2.02/t/10_oo.t
Test-TCP-2.02/t/11_net_empty_port.t
Test-TCP-2.02/t/12_pass_wait_port_options.t
Test-TCP-2.02/t/13_undef_port.t
Test-TCP-2.02/t/Server.pm
Test-TCP-2.02/xt/02_perlcritic.t
Test-TCP-2.02/xt/04_dependents.t
Test-TCP-2.02/xt/author/11_net_emptyport.t
Test-TCP-2.02/META.yml
Test-TCP-2.02/MANIFEST
Entering Test-TCP-2.02
Checking configure dependencies from META.json
Checking if you have Module::Build 0.36 ... Yes (0.4205)
Running Build.PL
Configuring Test-TCP-2.02 ... Created MYMETA.yml and MYMETA.json
Creating new 'Build' script for 'Test-TCP' version '2.02'
, or } expected while parsing object/hash, at character offset 138 (before ""generated_by" : "Mo...") at /home/kevin/perl5/perlbrew/perls/perl-5.8.4/lib/site_perl/5.8.4/Parse/CPAN/Meta.pm line 52.
 at /home/kevin/perl5/perlbrew/perls/perl-5.8.4/lib/site_perl/5.8.4/CPAN/Meta.pm line 300.
 at Build.PL line 55.
N/A
Checking dependencies from MYMETA.json ...
Checking if you have ExtUtils::CBuilder 0 ... Yes (0.280216)
Building and testing Test-TCP-2.02 ... Building Test-TCP
t/00_compile.t ................. 1/1 # Test::More: 1.001003
t/00_compile.t ................. ok   
t/01_simple.t .................. ok     
t/02_abrt.t .................... ok   
t/03_return_when_sigterm.t ..... ok   
t/04_die.t ..................... ok   
t/05_sigint.t .................. skipped: Perl<5.8.8 does not supports ${^CHILD_ERROR_NATIVE}
t/06_nest.t .................... ok   
t/07_optional.t ................ ok   
t/08_exit.t .................... ok   
t/09_fork.t .................... ok   
t/10_oo.t ...................... ok     
t/11_net_empty_port.t .......... ok   
t/12_pass_wait_port_options.t .. ok    
t/13_undef_port.t .............. ok     
All tests successful.
Files=14, Tests=138,  5 wallclock secs ( 0.08 usr  0.06 sys +  1.41 cusr  0.18 csys =  1.73 CPU)
Result: PASS
Building Test-TCP
Installing /home/kevin/perl5/perlbrew/perls/perl-5.8.4/lib/site_perl/5.8.4/Test/TCP.pm
Installing /home/kevin/perl5/perlbrew/perls/perl-5.8.4/lib/site_perl/5.8.4/Test/TCP/CheckPort.pm
Installing /home/kevin/perl5/perlbrew/perls/perl-5.8.4/lib/site_perl/5.8.4/Net/EmptyPort.pm
Installing /home/kevin/perl5/perlbrew/perls/perl-5.8.4/man/man3/Net::EmptyPort.3
Installing /home/kevin/perl5/perlbrew/perls/perl-5.8.4/man/man3/Test::TCP.3
Installing /home/kevin/perl5/perlbrew/perls/perl-5.8.4/man/man3/Test::TCP::CheckPort.3
OK
Successfully installed Test-TCP-2.02
Installing /home/kevin/perl5/perlbrew/perls/perl-5.8.4/lib/site_perl/5.8.4/i686-linux-thread-multi/.meta/Test-TCP-2.02/install.json
Installing /home/kevin/perl5/perlbrew/perls/perl-5.8.4/lib/site_perl/5.8.4/i686-linux-thread-multi/.meta/Test-TCP-2.02/MYMETA.json
Expiring 4 work directories.
1 distribution installed

Re-release Test::TCP as 2.20 to resolve installation issues

Test::TCP on CPAN has outdated bundled dependencies in inc folder. So re-releasing the same version (or current master which has some cosmetic fixes) would fix a lot of issues, as seen by my NML/Test-TCP-2.19_01-TRIAL unofficial package:

I rely on Test::TCP in production, it's a test dependency of AnyEvent::Gearman. So if you don't have time (and it seems you don't) I want to become a co-maintainer of Test::TCP to release it on CPAN. My handle is NML if it wasn't obvious from the links.

Fails tests without '.' in @INC

On 5.25.10 with -Ddefault_inc_excludes_dot

PERL_DL_NONLAZY=1 "/home/kent/perl5/perlbrew/perls/5.25.10-nossp-sdbm-nopmc-nodot/bin/perl5.25.10" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
Can't locate t/Server.pm in @INC (you may need to install the t::Server module) (@INC contains: /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/perl5/perlbrew/perls/5.25.10-nossp-sdbm-nopmc-nodot/lib/site_perl/5.25.10/x86_64-linux /home/kent/perl5/perlbrew/perls/5.25.10-nossp-sdbm-nopmc-nodot/lib/site_perl/5.25.10 /home/kent/perl5/perlbrew/perls/5.25.10-nossp-sdbm-nopmc-nodot/lib/5.25.10/x86_64-linux /home/kent/perl5/perlbrew/perls/5.25.10-nossp-sdbm-nopmc-nodot/lib/5.25.10) at t/03_return_when_sigterm.t line 5.
BEGIN failed--compilation aborted at t/03_return_when_sigterm.t line 5.
# Looks like your test exited with 2 before it could output anything.
t/03_return_when_sigterm.t ..... 
Dubious, test returned 2 (wstat 512, 0x200)
Failed 2/2 subtests 
# Test::More: 1.302073
t/00_compile.t ................. ok
Can't locate t/Server.pm in @INC (you may need to install the t::Server module) (@INC contains: /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/perl5/perlbrew/perls/5.25.10-nossp-sdbm-nopmc-nodot/lib/site_perl/5.25.10/x86_64-linux /home/kent/perl5/perlbrew/perls/5.25.10-nossp-sdbm-nopmc-nodot/lib/site_perl/5.25.10 /home/kent/perl5/perlbrew/perls/5.25.10-nossp-sdbm-nopmc-nodot/lib/5.25.10/x86_64-linux /home/kent/perl5/perlbrew/perls/5.25.10-nossp-sdbm-nopmc-nodot/lib/5.25.10) at t/02_abrt.t line 7.
BEGIN failed--compilation aborted at t/02_abrt.t line 7.
t/02_abrt.t .................... 
Dubious, test returned 2 (wstat 512, 0x200)
No subtests run 
Can't locate t/Server.pm in @INC (you may need to install the t::Server module) (@INC contains: /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/perl5/perlbrew/perls/5.25.10-nossp-sdbm-nopmc-nodot/lib/site_perl/5.25.10/x86_64-linux /home/kent/perl5/perlbrew/perls/5.25.10-nossp-sdbm-nopmc-nodot/lib/site_perl/5.25.10 /home/kent/perl5/perlbrew/perls/5.25.10-nossp-sdbm-nopmc-nodot/lib/5.25.10/x86_64-linux /home/kent/perl5/perlbrew/perls/5.25.10-nossp-sdbm-nopmc-nodot/lib/5.25.10) at t/01_simple.t line 7.
BEGIN failed--compilation aborted at t/01_simple.t line 7.
t/01_simple.t .................. 
Dubious, test returned 2 (wstat 512, 0x200)
No subtests run 
Can't locate t/Server.pm in @INC (you may need to install the t::Server module) (@INC contains: /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/perl5/perlbrew/perls/5.25.10-nossp-sdbm-nopmc-nodot/lib/site_perl/5.25.10/x86_64-linux /home/kent/perl5/perlbrew/perls/5.25.10-nossp-sdbm-nopmc-nodot/lib/site_perl/5.25.10 /home/kent/perl5/perlbrew/perls/5.25.10-nossp-sdbm-nopmc-nodot/lib/5.25.10/x86_64-linux /home/kent/perl5/perlbrew/perls/5.25.10-nossp-sdbm-nopmc-nodot/lib/5.25.10) at t/06_nest.t line 5.
BEGIN failed--compilation aborted at t/06_nest.t line 5.
# Looks like your test exited with 2 before it could output anything.
t/06_nest.t .................... 
Dubious, test returned 2 (wstat 512, 0x200)
Failed 1/1 subtests 
t/07_optional.t ................ ok
Can't locate t/Server.pm in @INC (you may need to install the t::Server module) (@INC contains: /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/perl5/perlbrew/perls/5.25.10-nossp-sdbm-nopmc-nodot/lib/site_perl/5.25.10/x86_64-linux /home/kent/perl5/perlbrew/perls/5.25.10-nossp-sdbm-nopmc-nodot/lib/site_perl/5.25.10 /home/kent/perl5/perlbrew/perls/5.25.10-nossp-sdbm-nopmc-nodot/lib/5.25.10/x86_64-linux /home/kent/perl5/perlbrew/perls/5.25.10-nossp-sdbm-nopmc-nodot/lib/5.25.10) at t/09_fork.t line 4.
BEGIN failed--compilation aborted at t/09_fork.t line 4.
# Looks like your test exited with 2 before it could output anything.
t/09_fork.t .................... 
Dubious, test returned 2 (wstat 512, 0x200)
Failed 6/6 subtests 
Can't locate t/Server.pm in @INC (you may need to install the t::Server module) (@INC contains: /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/perl5/perlbrew/perls/5.25.10-nossp-sdbm-nopmc-nodot/lib/site_perl/5.25.10/x86_64-linux /home/kent/perl5/perlbrew/perls/5.25.10-nossp-sdbm-nopmc-nodot/lib/site_perl/5.25.10 /home/kent/perl5/perlbrew/perls/5.25.10-nossp-sdbm-nopmc-nodot/lib/5.25.10/x86_64-linux /home/kent/perl5/perlbrew/perls/5.25.10-nossp-sdbm-nopmc-nodot/lib/5.25.10) at t/04_die.t line 6.
BEGIN failed--compilation aborted at t/04_die.t line 6.
# Looks like your test exited with 2 before it could output anything.
t/04_die.t ..................... 
Dubious, test returned 2 (wstat 512, 0x200)
Failed 3/3 subtests 
Can't locate t/Server.pm in @INC (you may need to install the t::Server module) (@INC contains: /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/perl5/perlbrew/perls/5.25.10-nossp-sdbm-nopmc-nodot/lib/site_perl/5.25.10/x86_64-linux /home/kent/perl5/perlbrew/perls/5.25.10-nossp-sdbm-nopmc-nodot/lib/site_perl/5.25.10 /home/kent/perl5/perlbrew/perls/5.25.10-nossp-sdbm-nopmc-nodot/lib/5.25.10/x86_64-linux /home/kent/perl5/perlbrew/perls/5.25.10-nossp-sdbm-nopmc-nodot/lib/5.25.10) at t/08_exit.t line 7.
BEGIN failed--compilation aborted at t/08_exit.t line 7.
# Looks like your test exited with 2 before it could output anything.
t/08_exit.t .................... 
Dubious, test returned 2 (wstat 512, 0x200)
Failed 5/5 subtests 
Can't locate t/Server.pm in @INC (you may need to install the t::Server module) (@INC contains: /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/perl5/perlbrew/perls/5.25.10-nossp-sdbm-nopmc-nodot/lib/site_perl/5.25.10/x86_64-linux /home/kent/perl5/perlbrew/perls/5.25.10-nossp-sdbm-nopmc-nodot/lib/site_perl/5.25.10 /home/kent/perl5/perlbrew/perls/5.25.10-nossp-sdbm-nopmc-nodot/lib/5.25.10/x86_64-linux /home/kent/perl5/perlbrew/perls/5.25.10-nossp-sdbm-nopmc-nodot/lib/5.25.10) at t/13_undef_port.t line 6.
BEGIN failed--compilation aborted at t/13_undef_port.t line 6.
# Looks like your test exited with 2 before it could output anything.
t/13_undef_port.t .............. 
Dubious, test returned 2 (wstat 512, 0x200)
Failed 22/22 subtests 
Can't locate t/Server.pm in @INC (you may need to install the t::Server module) (@INC contains: /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/perl5/perlbrew/perls/5.25.10-nossp-sdbm-nopmc-nodot/lib/site_perl/5.25.10/x86_64-linux /home/kent/perl5/perlbrew/perls/5.25.10-nossp-sdbm-nopmc-nodot/lib/site_perl/5.25.10 /home/kent/perl5/perlbrew/perls/5.25.10-nossp-sdbm-nopmc-nodot/lib/5.25.10/x86_64-linux /home/kent/perl5/perlbrew/perls/5.25.10-nossp-sdbm-nopmc-nodot/lib/5.25.10) at t/12_pass_wait_port_options.t line 7.
BEGIN failed--compilation aborted at t/12_pass_wait_port_options.t line 7.
t/12_pass_wait_port_options.t .. 
Dubious, test returned 2 (wstat 512, 0x200)
No subtests run 
Can't locate t/Server.pm in @INC (you may need to install the t::Server module) (@INC contains: /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/lib /home/kent/.cpanm/work/1488802154.20749/Test-TCP-2.17/blib/arch /home/kent/perl5/perlbrew/perls/5.25.10-nossp-sdbm-nopmc-nodot/lib/site_perl/5.25.10/x86_64-linux /home/kent/perl5/perlbrew/perls/5.25.10-nossp-sdbm-nopmc-nodot/lib/site_perl/5.25.10 /home/kent/perl5/perlbrew/perls/5.25.10-nossp-sdbm-nopmc-nodot/lib/5.25.10/x86_64-linux /home/kent/perl5/perlbrew/perls/5.25.10-nossp-sdbm-nopmc-nodot/lib/5.25.10) at t/10_oo.t line 6.
BEGIN failed--compilation aborted at t/10_oo.t line 6.
# Looks like your test exited with 2 before it could output anything.
t/10_oo.t ...................... 
Dubious, test returned 2 (wstat 512, 0x200)
Failed 22/22 subtests 
t/14_listen.t .................. ok
    # found an empty IPv6 port
t/11_net_empty_port.t .......... ok
# $Config{sig_name}: ZERO HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS NUM32 NUM33 RTMIN NUM35 NUM36 NUM37 NUM38 NUM39 NUM40 NUM41 NUM42 NUM43 NUM44 NUM45 NUM46 NUM47 NUM48 NUM49 NUM50 NUM51 NUM52 NUM53 NUM54 NUM55 NUM56 NUM57 NUM58 NUM59 NUM60 NUM61 NUM62 NUM63 RTMAX IOT CLD POLL UNUSED 
# CHILD_ERROR_NATIVE: 2
# $?: 2
t/05_sigint.t .................. ok

Test Summary Report
-------------------
t/03_return_when_sigterm.t   (Wstat: 512 Tests: 0 Failed: 0)
  Non-zero exit status: 2
  Parse errors: Bad plan.  You planned 2 tests but ran 0.
t/02_abrt.t                  (Wstat: 512 Tests: 0 Failed: 0)
  Non-zero exit status: 2
  Parse errors: No plan found in TAP output
t/01_simple.t                (Wstat: 512 Tests: 0 Failed: 0)
  Non-zero exit status: 2
  Parse errors: No plan found in TAP output
t/06_nest.t                  (Wstat: 512 Tests: 0 Failed: 0)
  Non-zero exit status: 2
  Parse errors: Bad plan.  You planned 1 tests but ran 0.
t/09_fork.t                  (Wstat: 512 Tests: 0 Failed: 0)
  Non-zero exit status: 2
  Parse errors: Bad plan.  You planned 6 tests but ran 0.
t/04_die.t                   (Wstat: 512 Tests: 0 Failed: 0)
  Non-zero exit status: 2
  Parse errors: Bad plan.  You planned 3 tests but ran 0.
t/08_exit.t                  (Wstat: 512 Tests: 0 Failed: 0)
  Non-zero exit status: 2
  Parse errors: Bad plan.  You planned 5 tests but ran 0.
t/13_undef_port.t            (Wstat: 512 Tests: 0 Failed: 0)
  Non-zero exit status: 2
  Parse errors: Bad plan.  You planned 22 tests but ran 0.
t/12_pass_wait_port_options.t (Wstat: 512 Tests: 0 Failed: 0)
  Non-zero exit status: 2
  Parse errors: No plan found in TAP output
t/10_oo.t                    (Wstat: 512 Tests: 0 Failed: 0)
  Non-zero exit status: 2
  Parse errors: Bad plan.  You planned 22 tests but ran 0.
Files=15, Tests=14,  6 wallclock secs ( 0.06 usr  0.03 sys +  2.11 cusr  0.51 csys =  2.71 CPU)
Result: FAIL
Failed 10/15 test programs. 0/14 subtests failed.
make: *** [Makefile:857: test_dynamic] Error 255

Allow passing Blocking option to allow non-blocking sockets on Win32

Apparently on Windows you must set non-blocking mode during socket creation. So Blocking => 1 is what must be used. However, Net::EmptyPort::listen_socket only passes 2 hardcoded options through.

I'm not sure how it can be fixed without breaking backward compatibility though. Also, with the 0 port trick you essentially don't need listen_socket() in the first place.

Time race in t/12_pass_wait_port_options.t

The t/12_pass_wait_port_options.t sets various time outs. Some tests can fail if the TCP server process does not start listening on the TCP socket in time:

ok 11 - test case for sharedfork
cannot open port: 50984 at /home/petr/Test-TCP/lib/Test/TCP.pm line 51.
# Tests were run but no plan was declared and done_testing() was not seen.
# Looks like your test exited with 111 just after 11.
Dubious, test returned 111 (wstat 28416, 0x6f00)
All 11 subtests passed 

Test Summary Report
-------------------
t/12_pass_wait_port_options.t (Wstat: 28416 Tests: 11 Failed: 0)

This can be reproduced by adding "sleep 10;" above t::Server->new() call.

Windows - Undefined subroutine &Errno::WSAECONNRESET

This only happens on Windows on StrawberryPerl v5.20.3.3, works on newer perls. So I think some Win32 package is outdated and doesn't contain Errno::WSAECONNRESET yet:

https://ci.appveyor.com/project/nponeccop/test-tcp-b19yn/builds/28055306/job/2s12hms94jqpa1r8#L498

Undefined subroutine &Errno::WSAECONNRESET called at C:\projects\test-tcp-b19yn\blib\lib/Net/EmptyPort.pm line 116.
    # Child (udp-wait-port) exited without calling finalize(

Note that the build log also contains a list of outdated packages at line 198

Tests fail when . not in @INC (perl 5.26 and above)

Getting errors like: Can't locate t/Server.pm in @INC

The easiest thing is to do use lib '.'; in all of the failing tests.

02:55:46 28629 ERROR [463]: + PERL_USE_UNSAFE_INC=0
02:55:46 28629 ERROR [463]: + /usr/bin/make test
02:55:46 28629 ERROR [463]: PERL_DL_NONLAZY=1 "/usr/local/cpanel/3rdparty/perl/528/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
02:55:46 28629 ERROR [463]: # Test::More: 1.302140
02:55:46 28629 ERROR [463]: t/00_compile.t ................. ok
02:55:46 28629 ERROR [463]: Can't locate t/Server.pm in @INC (you may need to install the t::Server module) (@INC contains: /home/rpmbuild/rpm-build/BUILD/Test-TCP-2.19/blib/lib /home/rpmbuild/rpm-build/BUILD/Test-TCP-2.19/blib/arch /usr/local/cpanel /usr/local/cpanel/3rdparty/perl/528/lib/perl5/cpanel_lib/x86_64-linux-64int /usr/local/cpanel/3rdparty/perl/528/lib/perl5/cpanel_lib /usr/local/cpanel/3rdparty/perl/528/lib/perl5/5.28.0/x86_64-linux-64int /usr/local/cpanel/3rdparty/perl/528/lib/perl5/5.28.0 /opt/cpanel/perl5/528/site_lib/x86_64-linux-64int /opt/cpanel/perl5/528/site_lib) at t/01_simple.t line 7.
02:55:46 28629 ERROR [463]: BEGIN failed--compilation aborted at t/01_simple.t line 7.
02:55:46 28629 ERROR [463]: t/01_simple.t .................. 
02:55:46 28629 ERROR [463]: Dubious, test returned 2 (wstat 512, 0x200)
02:55:46 28629 ERROR [463]: No subtests run 
02:55:46 28629 ERROR [463]: Can't locate t/Server.pm in @INC (you may need to install the t::Server module) (@INC contains: /home/rpmbuild/rpm-build/BUILD/Test-TCP-2.19/blib/lib /home/rpmbuild/rpm-build/BUILD/Test-TCP-2.19/blib/arch /usr/local/cpanel /usr/local/cpanel/3rdparty/perl/528/lib/perl5/cpanel_lib/x86_64-linux-64int /usr/local/cpanel/3rdparty/perl/528/lib/perl5/cpanel_lib /usr/local/cpanel/3rdparty/perl/528/lib/perl5/5.28.0/x86_64-linux-64int /usr/local/cpanel/3rdparty/perl/528/lib/perl5/5.28.0 /opt/cpanel/perl5/528/site_lib/x86_64-linux-64int /opt/cpanel/perl5/528/site_lib) at t/02_abrt.t line 7.
02:55:46 28629 ERROR [463]: BEGIN failed--compilation aborted at t/02_abrt.t line 7.
02:55:46 28629 ERROR [463]: t/02_abrt.t .................... 
02:55:46 28629 ERROR [463]: Dubious, test returned 2 (wstat 512, 0x200)
02:55:46 28629 ERROR [463]: No subtests run 
02:55:46 28629 ERROR [463]: Can't locate t/Server.pm in @INC (you may need to install the t::Server module) (@INC contains: /home/rpmbuild/rpm-build/BUILD/Test-TCP-2.19/blib/lib /home/rpmbuild/rpm-build/BUILD/Test-TCP-2.19/blib/arch /usr/local/cpanel /usr/local/cpanel/3rdparty/perl/528/lib/perl5/cpanel_lib/x86_64-linux-64int /usr/local/cpanel/3rdparty/perl/528/lib/perl5/cpanel_lib /usr/local/cpanel/3rdparty/perl/528/lib/perl5/5.28.0/x86_64-linux-64int /usr/local/cpanel/3rdparty/perl/528/lib/perl5/5.28.0 /opt/cpanel/perl5/528/site_lib/x86_64-linux-64int /opt/cpanel/perl5/528/site_lib) at t/03_return_when_sigterm.t line 5.
02:55:46 28629 ERROR [463]: BEGIN failed--compilation aborted at t/03_return_when_sigterm.t line 5.
02:55:46 28629 ERROR [463]: # Looks like your test exited with 2 before it could output anything.
02:55:46 28629 ERROR [463]: t/03_return_when_sigterm.t ..... 
02:55:46 28629 ERROR [463]: Dubious, test returned 2 (wstat 512, 0x200)
02:55:46 28629 ERROR [463]: Failed 2/2 subtests 
02:55:46 28629 ERROR [463]: Can't locate t/Server.pm in @INC (you may need to install the t::Server module) (@INC contains: /home/rpmbuild/rpm-build/BUILD/Test-TCP-2.19/blib/lib /home/rpmbuild/rpm-build/BUILD/Test-TCP-2.19/blib/arch /usr/local/cpanel /usr/local/cpanel/3rdparty/perl/528/lib/perl5/cpanel_lib/x86_64-linux-64int /usr/local/cpanel/3rdparty/perl/528/lib/perl5/cpanel_lib /usr/local/cpanel/3rdparty/perl/528/lib/perl5/5.28.0/x86_64-linux-64int /usr/local/cpanel/3rdparty/perl/528/lib/perl5/5.28.0 /opt/cpanel/perl5/528/site_lib/x86_64-linux-64int /opt/cpanel/perl5/528/site_lib) at t/04_die.t line 6.
02:55:46 28629 ERROR [463]: BEGIN failed--compilation aborted at t/04_die.t line 6.
02:55:46 28629 ERROR [463]: # Looks like your test exited with 2 before it could output anything.
02:55:46 28629 ERROR [463]: t/04_die.t ..................... 
02:55:46 28629 ERROR [463]: Dubious, test returned 2 (wstat 512, 0x200)
02:55:46 28629 ERROR [463]: Failed 9/9 subtests 
02:55:46 28629 ERROR [463]: # $Config{sig_name}: ZERO HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS NUM32 NUM33 RTMIN NUM35 NUM36 NUM37 NUM38 NUM39 NUM40 NUM41 NUM42 NUM43 NUM44 NUM45 NUM46 NUM47 NUM48 NUM49 NUM50 NUM51 NUM52 NUM53 NUM54 NUM55 NUM56 NUM57 NUM58 NUM59 NUM60 NUM61 NUM62 NUM63 RTMAX IOT CLD POLL UNUSED 
02:55:46 28629 ERROR [463]: # CHILD_ERROR_NATIVE: 2
02:55:46 28629 ERROR [463]: # $?: 2
02:55:46 28629 ERROR [463]: t/05_sigint.t .................. ok
02:55:46 28629 ERROR [463]: Can't locate t/Server.pm in @INC (you may need to install the t::Server module) (@INC contains: /home/rpmbuild/rpm-build/BUILD/Test-TCP-2.19/blib/lib /home/rpmbuild/rpm-build/BUILD/Test-TCP-2.19/blib/arch /usr/local/cpanel /usr/local/cpanel/3rdparty/perl/528/lib/perl5/cpanel_lib/x86_64-linux-64int /usr/local/cpanel/3rdparty/perl/528/lib/perl5/cpanel_lib /usr/local/cpanel/3rdparty/perl/528/lib/perl5/5.28.0/x86_64-linux-64int /usr/local/cpanel/3rdparty/perl/528/lib/perl5/5.28.0 /opt/cpanel/perl5/528/site_lib/x86_64-linux-64int /opt/cpanel/perl5/528/site_lib) at t/06_nest.t line 5.
02:55:46 28629 ERROR [463]: BEGIN failed--compilation aborted at t/06_nest.t line 5.
02:55:46 28629 ERROR [463]: # Looks like your test exited with 2 before it could output anything.
02:55:46 28629 ERROR [463]: t/06_nest.t .................... 
02:55:46 28629 ERROR [463]: Dubious, test returned 2 (wstat 512, 0x200)
02:55:46 28629 ERROR [463]: Failed 1/1 subtests 
02:55:46 28629 ERROR [463]: t/07_optional.t ................ ok
02:55:46 28629 ERROR [463]: Can't locate t/Server.pm in @INC (you may need to install the t::Server module) (@INC contains: /home/rpmbuild/rpm-build/BUILD/Test-TCP-2.19/blib/lib /home/rpmbuild/rpm-build/BUILD/Test-TCP-2.19/blib/arch /usr/local/cpanel /usr/local/cpanel/3rdparty/perl/528/lib/perl5/cpanel_lib/x86_64-linux-64int /usr/local/cpanel/3rdparty/perl/528/lib/perl5/cpanel_lib /usr/local/cpanel/3rdparty/perl/528/lib/perl5/5.28.0/x86_64-linux-64int /usr/local/cpanel/3rdparty/perl/528/lib/perl5/5.28.0 /opt/cpanel/perl5/528/site_lib/x86_64-linux-64int /opt/cpanel/perl5/528/site_lib) at t/08_exit.t line 7.
02:55:46 28629 ERROR [463]: BEGIN failed--compilation aborted at t/08_exit.t line 7.
02:55:46 28629 ERROR [463]: # Looks like your test exited with 2 before it could output anything.
02:55:46 28629 ERROR [463]: t/08_exit.t .................... 
02:55:46 28629 ERROR [463]: Dubious, test returned 2 (wstat 512, 0x200)
02:55:46 28629 ERROR [463]: Failed 5/5 subtests 
02:55:46 28629 ERROR [463]: Can't locate t/Server.pm in @INC (you may need to install the t::Server module) (@INC contains: /home/rpmbuild/rpm-build/BUILD/Test-TCP-2.19/blib/lib /home/rpmbuild/rpm-build/BUILD/Test-TCP-2.19/blib/arch /usr/local/cpanel /usr/local/cpanel/3rdparty/perl/528/lib/perl5/cpanel_lib/x86_64-linux-64int /usr/local/cpanel/3rdparty/perl/528/lib/perl5/cpanel_lib /usr/local/cpanel/3rdparty/perl/528/lib/perl5/5.28.0/x86_64-linux-64int /usr/local/cpanel/3rdparty/perl/528/lib/perl5/5.28.0 /opt/cpanel/perl5/528/site_lib/x86_64-linux-64int /opt/cpanel/perl5/528/site_lib) at t/09_fork.t line 4.
02:55:46 28629 ERROR [463]: BEGIN failed--compilation aborted at t/09_fork.t line 4.
02:55:46 28629 ERROR [463]: # Looks like your test exited with 2 before it could output anything.
02:55:46 28629 ERROR [463]: t/09_fork.t .................... 
02:55:46 28629 ERROR [463]: Dubious, test returned 2 (wstat 512, 0x200)
02:55:46 28629 ERROR [463]: Failed 6/6 subtests 
02:55:46 28629 ERROR [463]: Can't locate t/Server.pm in @INC (you may need to install the t::Server module) (@INC contains: /home/rpmbuild/rpm-build/BUILD/Test-TCP-2.19/blib/lib /home/rpmbuild/rpm-build/BUILD/Test-TCP-2.19/blib/arch /usr/local/cpanel /usr/local/cpanel/3rdparty/perl/528/lib/perl5/cpanel_lib/x86_64-linux-64int /usr/local/cpanel/3rdparty/perl/528/lib/perl5/cpanel_lib /usr/local/cpanel/3rdparty/perl/528/lib/perl5/5.28.0/x86_64-linux-64int /usr/local/cpanel/3rdparty/perl/528/lib/perl5/5.28.0 /opt/cpanel/perl5/528/site_lib/x86_64-linux-64int /opt/cpanel/perl5/528/site_lib) at t/10_oo.t line 6.
02:55:46 28629 ERROR [463]: BEGIN failed--compilation aborted at t/10_oo.t line 6.
02:55:46 28629 ERROR [463]: # Looks like your test exited with 2 before it could output anything.
02:55:46 28629 ERROR [463]: t/10_oo.t ...................... 
02:55:46 28629 ERROR [463]: Dubious, test returned 2 (wstat 512, 0x200)
02:55:46 28629 ERROR [463]: Failed 24/24 subtests 
02:55:46 28629 ERROR [463]:     # found an empty IPv6 port
02:55:46 28629 ERROR [463]: t/11_net_empty_port.t .......... ok
02:55:46 28629 ERROR [463]: Can't locate t/Server.pm in @INC (you may need to install the t::Server module) (@INC contains: /home/rpmbuild/rpm-build/BUILD/Test-TCP-2.19/blib/lib /home/rpmbuild/rpm-build/BUILD/Test-TCP-2.19/blib/arch /usr/local/cpanel /usr/local/cpanel/3rdparty/perl/528/lib/perl5/cpanel_lib/x86_64-linux-64int /usr/local/cpanel/3rdparty/perl/528/lib/perl5/cpanel_lib /usr/local/cpanel/3rdparty/perl/528/lib/perl5/5.28.0/x86_64-linux-64int /usr/local/cpanel/3rdparty/perl/528/lib/perl5/5.28.0 /opt/cpanel/perl5/528/site_lib/x86_64-linux-64int /opt/cpanel/perl5/528/site_lib) at t/12_pass_wait_port_options.t line 7.
02:55:46 28629 ERROR [463]: BEGIN failed--compilation aborted at t/12_pass_wait_port_options.t line 7.
02:55:46 28629 ERROR [463]: t/12_pass_wait_port_options.t .. 
02:55:46 28629 ERROR [463]: Dubious, test returned 2 (wstat 512, 0x200)
02:55:46 28629 ERROR [463]: No subtests run 
02:55:46 28629 ERROR [463]: Can't locate t/Server.pm in @INC (you may need to install the t::Server module) (@INC contains: /home/rpmbuild/rpm-build/BUILD/Test-TCP-2.19/blib/lib /home/rpmbuild/rpm-build/BUILD/Test-TCP-2.19/blib/arch /usr/local/cpanel /usr/local/cpanel/3rdparty/perl/528/lib/perl5/cpanel_lib/x86_64-linux-64int /usr/local/cpanel/3rdparty/perl/528/lib/perl5/cpanel_lib /usr/local/cpanel/3rdparty/perl/528/lib/perl5/5.28.0/x86_64-linux-64int /usr/local/cpanel/3rdparty/perl/528/lib/perl5/5.28.0 /opt/cpanel/perl5/528/site_lib/x86_64-linux-64int /opt/cpanel/perl5/528/site_lib) at t/13_undef_port.t line 6.
02:55:46 28629 ERROR [463]: BEGIN failed--compilation aborted at t/13_undef_port.t line 6.
02:55:46 28629 ERROR [463]: # Looks like your test exited with 2 before it could output anything.
02:55:46 28629 ERROR [463]: t/13_undef_port.t .............. 
02:55:46 28629 ERROR [463]: Dubious, test returned 2 (wstat 512, 0x200)
02:55:46 28629 ERROR [463]: Failed 22/22 subtests 
02:55:46 28629 ERROR [463]: t/14_listen.t .................. ok
02:55:46 28629 ERROR [463]: 
02:55:46 28629 ERROR [463]: Test Summary Report
02:55:46 28629 ERROR [463]: -------------------
02:55:46 28629 ERROR [463]: t/01_simple.t                (Wstat: 512 Tests: 0 Failed: 0)
02:55:46 28629 ERROR [463]:   Non-zero exit status: 2
02:55:46 28629 ERROR [463]:   Parse errors: No plan found in TAP output
02:55:46 28629 ERROR [463]: t/02_abrt.t                  (Wstat: 512 Tests: 0 Failed: 0)
02:55:46 28629 ERROR [463]:   Non-zero exit status: 2
02:55:46 28629 ERROR [463]:   Parse errors: No plan found in TAP output
02:55:46 28629 ERROR [463]: t/03_return_when_sigterm.t   (Wstat: 512 Tests: 0 Failed: 0)
02:55:46 28629 ERROR [463]:   Non-zero exit status: 2
02:55:46 28629 ERROR [463]:   Parse errors: Bad plan.  You planned 2 tests but ran 0.
02:55:46 28629 ERROR [463]: t/04_die.t                   (Wstat: 512 Tests: 0 Failed: 0)
02:55:46 28629 ERROR [463]:   Non-zero exit status: 2
02:55:46 28629 ERROR [463]:   Parse errors: Bad plan.  You planned 9 tests but ran 0.
02:55:46 28629 ERROR [463]: t/06_nest.t                  (Wstat: 512 Tests: 0 Failed: 0)
02:55:46 28629 ERROR [463]:   Non-zero exit status: 2
02:55:46 28629 ERROR [463]:   Parse errors: Bad plan.  You planned 1 tests but ran 0.
02:55:46 28629 ERROR [463]: t/08_exit.t                  (Wstat: 512 Tests: 0 Failed: 0)
02:55:46 28629 ERROR [463]:   Non-zero exit status: 2
02:55:46 28629 ERROR [463]:   Parse errors: Bad plan.  You planned 5 tests but ran 0.
02:55:46 28629 ERROR [463]: t/09_fork.t                  (Wstat: 512 Tests: 0 Failed: 0)
02:55:46 28629 ERROR [463]:   Non-zero exit status: 2
02:55:46 28629 ERROR [463]:   Parse errors: Bad plan.  You planned 6 tests but ran 0.
02:55:46 28629 ERROR [463]: t/10_oo.t                    (Wstat: 512 Tests: 0 Failed: 0)
02:55:46 28629 ERROR [463]:   Non-zero exit status: 2
02:55:46 28629 ERROR [463]:   Parse errors: Bad plan.  You planned 24 tests but ran 0.
02:55:46 28629 ERROR [463]: t/12_pass_wait_port_options.t (Wstat: 512 Tests: 0 Failed: 0)
02:55:46 28629 ERROR [463]:   Non-zero exit status: 2
02:55:46 28629 ERROR [463]:   Parse errors: No plan found in TAP output
02:55:46 28629 ERROR [463]: t/13_undef_port.t            (Wstat: 512 Tests: 0 Failed: 0)
02:55:46 28629 ERROR [463]:   Non-zero exit status: 2
02:55:46 28629 ERROR [463]:   Parse errors: Bad plan.  You planned 22 tests but ran 0.
02:55:46 28629 ERROR [463]: Files=15, Tests=25, 25 wallclock secs ( 0.09 usr  0.02 sys +  1.69 cusr  0.27 csys =  2.07 CPU)
02:55:46 28629 ERROR [463]: Result: FAIL
02:55:46 28629 ERROR [463]: Failed 10/15 test programs. 0/25 subtests failed.
02:55:46 28629 ERROR [463]: make: *** [test_dynamic] Error 255

Tests fail in Strawberry Perl 5.20.2 on Windows 7

Tests fail in 64-bit Strawberry Perl 5.20.2 on Windows 7 Professional. Here is the build log generated by cpanm --test-only Test::TCP, run as administrator:

cpanm (App::cpanminus) 1.7027 on perl 5.020002 built for MSWin32-x64-multi-thread
Work directory is C:\Users\cgdadmin/.cpanm/work/1429212415.6136
You have make C:\Strawberry\c\bin\dmake.exe
You have LWP 6.13
Falling back to Archive::Tar 2.04
Searching Test::TCP on cpanmetadb ...
--> Working on Test::TCP
Fetching http://www.cpan.org/authors/id/K/KA/KAZUHO/Test-TCP-2.11.tar.gz
-> OK
Unpacking Test-TCP-2.11.tar.gz
Entering Test-TCP-2.11
Checking configure dependencies from META.json
Checking if you have ExtUtils::MakeMaker 6.64 ... Yes (7.04)
Configuring Test-TCP-2.11
Running Makefile.PL
cp META.json MYMETA.json
cp META.yml MYMETA.yml
Checking if your kit is complete...
Looks good
Generating a dmake-style Makefile
Writing Makefile for Test::TCP
-> OK
Checking dependencies from MYMETA.json ...
Checking if you have Time::HiRes 0 ... Yes (1.9726)
Checking if you have Socket 0 ... Yes (2.018)
Checking if you have Test::More 0.98 ... Yes (1.001014)
Checking if you have IO::Socket::INET 0 ... Yes (1.35)
Checking if you have File::Temp 0 ... Yes (0.2304)
Checking if you have Test::SharedFork 0.29 ... Yes (0.29)
Checking if you have IO::Socket::IP 0 ... Yes (0.36)
Building and testing Test-TCP-2.11
cp lib/Net/EmptyPort.pm blib\lib\Net\EmptyPort.pm
cp lib/Test/TCP/CheckPort.pm blib\lib\Test\TCP\CheckPort.pm
cp lib/Test/TCP.pm blib\lib\Test\TCP.pm
"C:\Strawberry\perl\bin\perl.exe" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib\lib', 'blib\arch')" t/*.t
# Test::More: 1.001014
t/00_compile.t ................. ok
cannot open port: ::1:51112 at C:\Users\cgdadmin\.cpanm\work\1429212415.6136\Test-TCP-2.11\blib\lib/Test/TCP.pm line 54.
    # Child (v6) exited without calling finalize()

#   Failed test 'v6'
#   at C:/Strawberry/perl/lib/Test/Builder.pm line 279.
# Tests were run but no plan was declared and done_testing() was not seen.
# Looks like your test exited with 255 just after 2.
t/01_simple.t .................. 
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 1/2 subtests 
t/02_abrt.t .................... skipped: win32 doesn't support embedded function named dump()
t/03_return_when_sigterm.t ..... ok
t/04_die.t ..................... ok
t/05_sigint.t .................. skipped: this test requires SIGUSR1
t/06_nest.t .................... ok
t/07_optional.t ................ ok
t/08_exit.t .................... ok
t/09_fork.t .................... ok
t/10_oo.t ...................... ok

    #   Failed test 'port is open'
    #   at t/11_net_empty_port.t line 22.
    # Looks like you failed 1 test of 4.

#   Failed test 'v6'
#   at t/11_net_empty_port.t line 37.
# Looks like you failed 1 test of 4.
t/11_net_empty_port.t .......... 
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/4 subtests 
t/12_pass_wait_port_options.t .. ok
t/13_undef_port.t .............. ok

Test Summary Report
-------------------
t/01_simple.t                (Wstat: 65280 Tests: 2 Failed: 1)
  Failed test:  2
  Non-zero exit status: 255
  Parse errors: No plan found in TAP output
t/11_net_empty_port.t        (Wstat: 256 Tests: 4 Failed: 1)
  Failed test:  4
  Non-zero exit status: 1
Files=14, Tests=117, 87 wallclock secs ( 0.11 usr +  0.02 sys =  0.13 CPU)
Result: FAIL
Failed 2/14 test programs. 2/117 subtests failed.
dmake.exe:  Error code 255, while making 'test_dynamic'
-> FAIL Testing Test::TCP failed. See C:\Users\cgdadmin\.cpanm\work\1429212415.6136\build.log for details. Retry with --force to force install it.

Perl version details:

Summary of my perl5 (revision 5 version 20 subversion 2) configuration:

  Platform:
    osname=MSWin32, osvers=6.3, archname=MSWin32-x64-multi-thread
    uname='Win32 strawberry-perl 5.20.2.1 #1 Sat Feb 21 18:04:11 2015 x64'
    config_args='undef'
    hint=recommended, useposix=true, d_sigaction=undef
    useithreads=define, usemultiplicity=define
    use64bitint=define, use64bitall=undef, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='gcc', ccflags =' -s -O2 -DWIN32 -DWIN64 -DCONSERVATIVE  -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLI
CIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fwrapv -fno-strict-aliasing -mms-bitfields',
    optimize='-s -O2',
    cppflags='-DWIN32'
    ccversion='', gccversion='4.8.3', gccosandvers=''
    intsize=4, longsize=4, ptrsize=8, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
    ivtype='long long', ivsize=8, nvtype='double', nvsize=8, Off_t='long long', lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='g++.exe', ldflags ='-s -L"C:\strawberry\perl\lib\CORE" -L"C:\strawberry\c\lib"'
    libpth=C:\strawberry\c\lib C:\strawberry\c\x86_64-w64-mingw32\lib C:\strawberry\c\lib\gcc\x86_64
-w64-mingw32\4.8.3
    libs=-lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -
loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32
    perllibs=-lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole
32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32
    libc=, so=dll, useshrplib=true, libperl=libperl520.a
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_win32.xs, dlext=xs.dll, d_dlsymun=undef, ccdlflags=' '
    cccdlflags=' ', lddlflags='-mdll -s -L"C:\strawberry\perl\lib\CORE" -L"C:\strawberry\c\lib"'


Characteristics of this binary (from libperl): 
  Compile-time options: HAS_TIMES HAVE_INTERP_INTERN MULTIPLICITY
                        PERLIO_LAYERS PERL_DONT_CREATE_GVSV
                        PERL_HASH_FUNC_ONE_AT_A_TIME_HARD
                        PERL_IMPLICIT_CONTEXT PERL_IMPLICIT_SYS
                        PERL_MALLOC_WRAP PERL_NEW_COPY_ON_WRITE
                        PERL_PRESERVE_IVUV USE_64_BIT_INT USE_ITHREADS
                        USE_LARGE_FILES USE_LOCALE USE_LOCALE_COLLATE
                        USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_PERLIO
                        USE_PERL_ATOF
  Built under MSWin32
  Compiled at Feb 21 2015 18:08:23
  %ENV:
    PERL_MM_USE_DEFAULT="0"
  @INC:
    C:/strawberry/perl/site/lib
    C:/strawberry/perl/vendor/lib
    C:/strawberry/perl/lib
    .

Test-TCP-2.22_01-TRIAL: On Windows 8.1, t/HTTP-Server-PSGI/harakiri.t (Plack 1.0047) seems to hang

Hello,

When I try to install Plack 1.0047 under Strawberry Perl 5.16.3 on Windows 8.1, It seems to me that Test-TCP hangs as follows.

cpan Plack

(snip)

Running make test
Skip blib\lib\auto\share\dist\Plack\baybridge.jpg (unchanged)
Skip blib\lib\auto\share\dist\Plack\face.jpg (unchanged)
C:\Strawberry\perl\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib\lib', 'blib\arch')" t/*.t t/HTTP-M
essage-PSGI/*.t t/HTTP-Server-PSGI/*.t t/Plack-Builder/*.t t/Plack-HTTPParser-PP/*.t t/Plack-Handler/*.t t/Plack-Loader/
*.t t/Plack-MIME/*.t t/Plack-Middleware/*.t t/Plack-Middleware/cascade/*.t t/Plack-Middleware/recursive/*.t t/Plack-Midd
leware/stacktrace/*.t t/Plack-Request/*.t t/Plack-Response/*.t t/Plack-Runner/*.t t/Plack-TempBuffer/*.t t/Plack-Test/*.
t t/Plack-Util/*.t
t/author-pod-syntax.t ................................ skipped: these tests are for testing by the author
t/HTTP-Message-PSGI/content_length.t ................. ok
t/HTTP-Message-PSGI/empty_streamed_response.t ........ ok
t/HTTP-Message-PSGI/host.t ........................... ok
t/HTTP-Message-PSGI/path_info.t ...................... ok
t/HTTP-Message-PSGI/unknown_response.t ............... ok
t/HTTP-Message-PSGI/utf8_req.t ....................... ok
[Test::TCP] Child process does not block(PID: -7164, PPID: 5528) at C:\home\pianokey\perl5\lib\perl5/Test/TCP.pm line 103.

(hangs)

[Environment]

Windows 8.1 (64bit)
Strawberry Perl 5.16.3 (64bit)

Apache::LogFormat::Compiler   0.36
Cookie::Baker                 0.11
Devel::StackTrace             2.04
Devel::StackTrace::AsHTML     0.15
File::ShareDir                1.03
Filesys::Notify::Simple       0.14
Hash::MultiValue              0.16
HTTP::Entity::Parser          0.22
HTTP::Headers::Fast           0.22
HTTP::Message                 6.18
HTTP::Tiny                    0.076
parent                        0.225
Pod::Usage                    1.61
Stream::Buffered              0.03
Try::Tiny                     0.12
URI                           1.60
WWW::Form::UrlEncoded         0.26

ExtUtils::MakeMaker           6.64
Test::More                    1.302170
Test::Requires                0.06
File::ShareDir::Install       0.13

Thank you,

SIGTERM in destructor does not kill process on RHEL 7

I discovered this problem while installing Furl on a RHEL 7 machine using Perl 5.18.0.

t/100_low/22_keep_alive_http10.t ................ 1/?
Building and testing Furl-3.05 ... FAIL
! Timed out (> 1800s). Use --verbose to retry.
Terminated

Using the functional interface (test_tcp()) like Furl's t/100_low/22_keep_alive_http10.t does will cause the test to hang indefinitely in the destructor:

#Test/TCP.pm

19 my $TERMSIG = $^O eq 'MSWin32' ? 'KILL' : 'TERM';

 96 sub stop {
 97     my $self = shift;
...
113         kill $TERMSIG => $self->{pid};
...
119     LOOP: while (1) {
120         my $kid = waitpid( $self->{pid}, 0 ); # does not pass this point
...
132     }
133     undef $self->{pid};
134 }

Modifying the stop() function so it uses SIGKILL instead of SIGTERM (as was done with 'MSWin32') will terminate the process... but I am not sure why the process is not responding to SIGTERM.

#Test/TCP.pm

113         kill 'KILL' => $self->{pid};

getting IPV6-related test failures

t/01_simple.t .................. 1/? Your vendor has not defined Socket macro IPV6_V6ONLY, used at C:/strawberry/perl/site/lib/IO/Socket/IP.pm line 615
    # Child (v6) exited without calling finalize()

#   Failed test 'v6'
#   at C:/strawberry/perl/site/lib/Test/Builder.pm line 279.
# Tests were run but no plan was declared and done_testing() was not seen.
# Looks like your test exited with 9 just after 2.
t/01_simple.t .................. Dubious, test returned 9 (wstat 2304, 0x900)

Any idea what that's about?

ExtUtils::MakeMaker version

I noticed that the recent switch to EUMM requires version 6.64. Is there a specific need to use 6.64 or will earlier version(s) work correctly also?

Test::TCP installation issue

Information about a bug in the perl module Test::TCP. My system is Windows 7 Professional, Service Pack 1. I am using Strawberry Perl version 5.24.1 built for MSWin32-x64-multi-thread. The output when running cpan Test::TCP in a command window with administrator privileges is attached:


Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. Alle Rechte vorbehalten.

C:\windows\system32>cpan Test::TCP
Loading internal null logger. Install Log::Log4perl for logging messages
CPAN: CPAN::SQLite loaded ok (v0.211)
Database was generated on Wed, 10 May 2017 08:52:13 GMT

Running install for module 'Test::TCP'
CPAN: Digest::SHA loaded ok (v5.96)
CPAN: Compress::Zlib loaded ok (v2.07)
Checksum for C:\STRAWB~1\cpan\sources\authors\id\T\TO\TOKUHIROM\Test-TCP-2.18.ta
r.gz ok
CPAN: Archive::Tar loaded ok (v2.24)
CPAN: YAML::XS loaded ok (v0.63)
CPAN: CPAN::Meta::Requirements loaded ok (v2.140)
CPAN: Parse::CPAN::Meta loaded ok (v2.150010)
CPAN: CPAN::Meta loaded ok (v2.150010)
CPAN: Module::CoreList loaded ok (v5.20170114_24)
Configuring T/TO/TOKUHIROM/Test-TCP-2.18.tar.gz with Makefile.PL
Checking if your kit is complete...
Looks good
Generating a dmake-style Makefile
Writing Makefile for Test::TCP
Writing MYMETA.yml and MYMETA.json
TOKUHIROM/Test-TCP-2.18.tar.gz
C:\Strawberry\perl\bin\perl.exe Makefile.PL -- OK
Running make for T/TO/TOKUHIROM/Test-TCP-2.18.tar.gz
cp lib/Test/TCP/CheckPort.pm blib\lib\Test\TCP\CheckPort.pm
cp lib/Net/EmptyPort.pm blib\lib\Net\EmptyPort.pm
cp lib/Test/TCP.pm blib\lib\Test\TCP.pm
TOKUHIROM/Test-TCP-2.18.tar.gz
C:\STRAWB~1\c\bin\dmake.exe -- OK
Running make test
"C:\Strawberry\perl\bin\perl.exe" "-MExtUtils::Command::MM" "-MTest::Harness" "-
e" "undef *Test::Harness::Switches; test_harness(0, 'blib\lib', 'blib\arch')" t/
*.t
t/00_compile.t ................. No such signal: SIGSYS at C:/Strawberry/perl/li
b/Test2/API/Instance.pm line 312.
t/00_compile.t ................. 1/1 # Test::More: 1.302075
t/00_compile.t ................. ok
t/01_simple.t .................. No such signal: SIGSYS at C:/Strawberry/perl/li
b/Test2/API/Instance.pm line 312.
t/01_simple.t .................. ok
t/02_abrt.t .................... No such signal: SIGSYS at C:/Strawberry/perl/li
b/Test2/API/Instance.pm line 312.
t/02_abrt.t .................... skipped: win32 doesn't support embedded functio
n named dump()
t/03_return_when_sigterm.t ..... No such signal: SIGSYS at C:/Strawberry/perl/li
b/Test2/API/Instance.pm line 312.
t/03_return_when_sigterm.t ..... ok
t/04_die.t ..................... No such signal: SIGSYS at C:/Strawberry/perl/li
b/Test2/API/Instance.pm line 312.
t/04_die.t ..................... ok
t/05_sigint.t .................. No such signal: SIGSYS at C:/Strawberry/perl/li
b/Test2/API/Instance.pm line 312.
t/05_sigint.t .................. skipped: this test requires SIGUSR1
t/06_nest.t .................... No such signal: SIGSYS at C:/Strawberry/perl/li
b/Test2/API/Instance.pm line 312.
t/06_nest.t .................... ok
t/07_optional.t ................ 1/2 No such signal: SIGSYS at C:/Strawberry/per
l/lib/Test2/API/Instance.pm line 312.
t/07_optional.t ................ ok
t/08_exit.t .................... No such signal: SIGSYS at C:/Strawberry/perl/li
b/Test2/API/Instance.pm line 312.
t/08_exit.t .................... ok
t/09_fork.t .................... No such signal: SIGSYS at C:/Strawberry/perl/li
b/Test2/API/Instance.pm line 312.
t/09_fork.t .................... ok
t/10_oo.t ...................... No such signal: SIGSYS at C:/Strawberry/perl/li
b/Test2/API/Instance.pm line 312.
t/10_oo.t ...................... ok
t/11_net_empty_port.t .......... 2/?     # found an empty IPv6 port
t/11_net_empty_port.t .......... 11/? Use of uninitialized value $port in concat
enation (.) or string at C:\STRAWB~1\cpan\build\Test-TCP-2.18-21\blib\lib/Net/Em
ptyPort.pm line 134.
Use of uninitialized value $port in concatenation (.) or string at C:\STRAWB~1\c
pan\build\Test-TCP-2.18-21\blib\lib/Net/EmptyPort.pm line 134.
Use of uninitialized value $port in concatenation (.) or string at C:\STRAWB~1\c
pan\build\Test-TCP-2.18-21\blib\lib/Net/EmptyPort.pm line 134.
Use of uninitialized value $port in concatenation (.) or string at C:\STRAWB~1\c
pan\build\Test-TCP-2.18-21\blib\lib/Net/EmptyPort.pm line 134.
Use of uninitialized value $port in concatenation (.) or string at C:\STRAWB~1\c
pan\build\Test-TCP-2.18-21\blib\lib/Net/EmptyPort.pm line 134.
Use of uninitialized value $port in concatenation (.) or string at C:\STRAWB~1\c
pan\build\Test-TCP-2.18-21\blib\lib/Net/EmptyPort.pm line 134.
Use of uninitialized value $port in concatenation (.) or string at C:\STRAWB~1\c
pan\build\Test-TCP-2.18-21\blib\lib/Net/EmptyPort.pm line 134.
Use of uninitialized value $port in concatenation (.) or string at C:\STRAWB~1\c
pan\build\Test-TCP-2.18-21\blib\lib/Net/EmptyPort.pm line 134.
Use of uninitialized value $port in concatenation (.) or string at C:\STRAWB~1\c
pan\build\Test-TCP-2.18-21\blib\lib/Net/EmptyPort.pm line 134.
Use of uninitialized value $port in concatenation (.) or string at C:\STRAWB~1\c
pan\build\Test-TCP-2.18-21\blib\lib/Net/EmptyPort.pm line 134.
Use of uninitialized value $port in concatenation (.) or string at C:\STRAWB~1\c
pan\build\Test-TCP-2.18-21\blib\lib/Net/EmptyPort.pm line 134.
Use of uninitialized value $port in concatenation (.) or string at C:\STRAWB~1\c
pan\build\Test-TCP-2.18-21\blib\lib/Net/EmptyPort.pm line 134.
Use of uninitialized value $port in concatenation (.) or string at C:\STRAWB~1\c
pan\build\Test-TCP-2.18-21\blib\lib/Net/EmptyPort.pm line 134.
Use of uninitialized value $port in concatenation (.) or string at C:\STRAWB~1\c
pan\build\Test-TCP-2.18-21\blib\lib/Net/EmptyPort.pm line 134.

t/11_net_empty_port.t .......... 12/? #   Failed test 'No args to wait_port is f
atal'
#   at t/11_net_empty_port.t line 79.
#                   ''
#     doesn't match '(?^:Expected .PeerService.)'
t/11_net_empty_port.t .......... 15/? # Looks like you failed 1 test of 15.
t/11_net_empty_port.t .......... Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/15 subtests
t/12_pass_wait_port_options.t .. No such signal: SIGSYS at C:/Strawberry/perl/li
b/Test2/API/Instance.pm line 312.
t/12_pass_wait_port_options.t .. ok
t/13_undef_port.t .............. No such signal: SIGSYS at C:/Strawberry/perl/li
b/Test2/API/Instance.pm line 312.
t/13_undef_port.t .............. ok
t/14_listen.t .................. No such signal: SIGSYS at C:/Strawberry/perl/li
b/Test2/API/Instance.pm line 312.
t/14_listen.t .................. ok

Test Summary Report
-------------------
t/11_net_empty_port.t        (Wstat: 256 Tests: 15 Failed: 1)
Failed test:  12
Non-zero exit status: 1
Files=15, Tests=144, 116 wallclock secs ( 0.09 usr +  0.01 sys =  0.11 CPU)
Result: FAIL
Failed 1/15 test programs. 1/144 subtests failed.
dmake.exe:  Error code 255, while making 'test_dynamic'
TOKUHIROM/Test-TCP-2.18.tar.gz
C:\STRAWB~1\c\bin\dmake.exe test -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:
reports TOKUHIROM/Test-TCP-2.18.tar.gz
Stopping: 'install' failed for 'Test::TCP'.

C:\windows\system32>

Roadmap to 0.20

I published an RC to CPAN, so you all are encouraged to test it with cpanp t NML/Test-TCP-2.19_01-TRIAL.tar.gz while having CPANPLUS::Test::Reporter installed. This version isn't installed when you install Test::TCP so such preview versions are safe.

Attempt to fill the missing boxes here: http://matrix.cpantesters.org/?dist=Test-TCP%202.19_01-TRIAL

So far we seem greener than 2.19: http://matrix.cpantesters.org/?dist=Test-TCP%202.19 but maybe it's because we had few testers, and most bugs of Test::TCP are heisenbugs (happen seldom)

In my opinion we are ready for 2.20 CPAN release

You can see the differences here: 2.19...master

The only user-visible change is

However

  1. Many our old heisenbugs were caused by our deps such as Test::Simple, which have progressed since
  2. The fix is really critical for newer perls

Cache::KyotoTycoon test fails with Test::TCP version 1.13 or later

ktserver(I confirmed Kyoto Tycoon 0.9.40, Kyoto Cabinet 1.2.52) doesn't allow using port number > 32767.
Test::TCP(1.13 or later) chooses port >= 50000, So, test fails.

% perl -Ilib t/live/001_basic.t
2012-05-18T22:34:14.632023+09:00: [SYSTEM]: ================ [START]: pid=32197
2012-05-18T22:34:14.632133+09:00: [SYSTEM]: opening a database: path=:
2012-05-18T22:34:14.632302+09:00: [SYSTEM]: starting the server: expr=:50989
2012-05-18T22:34:14.632324+09:00: [ERROR]: socket error: expr=:50989 msg=invalid address expression
2012-05-18T22:34:15.132683+09:00: [SYSTEM]: closing a database: path=:
2012-05-18T22:34:15.138876+09:00: [SYSTEM]: ================ [FINISH]: pid=32197
cannot open port: 50989 at /usr/local/share/perl/5.10.1/Test/TCP.pm line 85.

use port 0 rather than Net::EmptyPort

from #plack:

13:56 < ether> hmm, it looks like Test::TCP is looking for an empty port.. but because this is an active server, the port it selected becomes unavailable before it can start the test
13:56 < ether> at least, this is what it looks like
13:56 < ether> perhaps there could be a way to disable tests that actively use the network?
13:57 < ether> or, loop until a free port is really found
13:57 < leedo> ether: yeah, i'm confused by Test::TCP doesn't bind to 0. i think that chooses a random open port
13:57 < leedo> maybe it isn't cross platform, though
13:59 < leedo> last i looked it did a while loop looking for open ports
14:19 < sri> this works pretty well in mojolicious so far for finding a free port https://github.com/kraih/mojo/blob/master/lib/Mojo/IOLoop/Server.pm#L100
14:20 < sri> pretty sure it actually predates Test::TCP
14:22 < sri> think there has been exactly one bug report over the years, and that was some broken version of cygwin... (more broken than usual)
14:24 < sri> (mojolicious always runs a few thousand tests that actively use the network)
14:26 < sri> oops, i misunderstood the problem... ignore me :)
14:26 < sri> or kinda...
14:27 < sri> bind to random port has the advantage that the operating system puts a cooldown on it, so it's not reused right away
14:27 < sri> misunderstood the problem... but the solution is still valid ;p
14:29 < sri> Net::EmptyPort is just weird
14:34 < leedo> yes, i'd be curious to see the reason for some of that

t/05_sigint.t fails on perl 5.8.8 or earlier

The diag output is

# $Config{sig_name}: ZERO HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM URG STOP TSTP CONT CHLD TTIN TTOU IO XCPU XFSZ VTALRM PROF WINCH INFO USR1 USR2 IOT
Use of uninitialized value in concatenation (.) or string at t/05_sigint.t line 22.
# CHILD_ERROR_NATIVE:
# $?: 2

and there is no ${^CHILD_ERROR_NATIVE} documented in 5.8.8 perlvar, only $?, because this variable was introduced in 5.8.9 and 5.9.4 (i.e. right after 5.8.8).

The following patch works around that:

--- 1/t/05_sigint.t.orig
+++ 2/t/05_sigint.t
@@ -22,8 +22,9 @@ if ($pid > 0) {
     diag "CHILD_ERROR_NATIVE: " . ${^CHILD_ERROR_NATIVE};
     diag "\$?: " . $?;

-    ok POSIX::WIFSIGNALED(${^CHILD_ERROR_NATIVE});
-    is [split / /, $Config{sig_name}]->[POSIX::WTERMSIG(${^CHILD_ERROR_NATIVE})], 'INT', "sigint";
+    my $child_err = $] gt '5.008008' ? ${^CHILD_ERROR_NATIVE} : $?;
+    ok POSIX::WIFSIGNALED($child_err);
+    is [split / /, $Config{sig_name}]->[POSIX::WTERMSIG($child_err)], 'INT', "sigint";
 #   ok $killed_server, "really killed";
 } elsif ($pid == 0) {
 #   $SIG{CHLD} = sub {

Failed test 'No max_wait to wait_port'

Appears to be a heisenbug:

t/09_fork.t .................... ok
t/10_oo.t ...................... ok
    # found an empty IPv6 port

#   Failed test 'No max_wait to wait_port'
#   at t/11_net_empty_port.t line 80.
# Looks like you failed 1 test of 16.
t/11_net_empty_port.t .......... 
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/16 subtests 
t/12_pass_wait_port_options.t .. ok

An older report is http://www.cpantesters.org/cpan/report/ddf86c0e-44cb-11e8-92d2-d60699617338 but it still happens with the current HEAD

t/05_sigint.t fails on Haiku

The relevant failure is:

The error message is:

# $Config{sig_name}: ZERO HUP INT QUIT ILL CHLD ABRT PIPE FPE KILL STOP SEGV CONT TSTP ALRM TERM TTIN TTOU USR1 USR2 WINCH NUM21 TRAP POLL PROF SYS URG VTALRM XCPU XFSZ BUS NUM31 NUM32 RTMIN NUM34 NUM35 NUM36 NUM37 NUM38 NUM39 RTMAX NUM41 NUM42 NUM43 NUM44 NUM45 NUM46 NUM47 NUM48 NUM49 NUM50 NUM51 NUM52 NUM53 NUM54 NUM55 NUM56 NUM57 NUM58 NUM59 NUM60 NUM61 NUM62 NUM63 NUM64 
# CHILD_ERROR_NATIVE: 512
# $?: 2

#   Failed test at t/05_sigint.t line 25.

#   Failed test 'sigint'
#   at t/05_sigint.t line 26.
#          got: 'ZERO'
#     expected: 'INT'
# Looks like you failed 2 tests of 2.
t/05_sigint.t .................. 
Dubious, test returned 2 (wstat 512, 0x200)
Failed 2/2 subtests 

The version is not the official one, but signal handling is the same, and the changes there has been merged into 2.20

Problems with testing in parallel

I'm not sure what's going on, but it seems like the open-port detection is failing (or having a race) or something. Here was an exchange I had with Andreas König:

Hi, Andreas.

I'm getting lots of errors like this one:

http://www.cpantesters.org/cpan/report/dd7e07de-ca6e-11e2-969b-f637989cd64d

Can you help me understand what's going on?

I'm pretty sure, that it is because I'm running smoker in parallel. I
have since run some of these tests again, without concurrency, and they
all succeeded. One time I also could reproduce fails when running
in parallel.

Any ideas?

Regards,
David

Net::EmptyPort::wait_port doesn't work as advertised

As far as I can tell, Net::EmptyPort::wait_port doesn't work as documented. The main logic is:

while ( $retry-- ) {
    if ($^O eq 'MSWin32' ? `$^X -MTest::TCP::CheckPort -echeck_port $port $proto` : check_port( $port, $proto )) {
        return 1;
    }
    Time::HiRes::sleep($sleep);
}
return 0;

That is, it returns true if check_port returns true, and false if check_port returns false.

But the documentation for check_port says:

Returns true if it is in use (i.e. if the port is NOT free).

... while the documentation for wait_port says:

Return true if the port is available, false otherwise.

So which is correct? The code or the documentation?

(By the way, one of the Starman tests is failing for me because it seems to rely on wait_port working as documented, not as coded.)

t/11_net_empty_port.t fails on Cygwin on pre-release 5.31

CPAN Testers:

    # found an empty IPv6 port

    #   Failed test 'port is down'
    #   at t/11_net_empty_port.t line 88.
    # Looks like you failed 1 test of 2.

#   Failed test 'udp-wait-port'
#   at t/11_net_empty_port.t line 96.
# Looks like you failed 1 test of 16.
t/11_net_empty_port.t .......... 
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/16 subtests

Note that tests on Cygwin are rare, so we don't have any reports (neither successes nor failures) for many combinations of perl and module versions.

Test::TCP fails to install on Windows 7 64-bit

Test::TCP fails to install on Windows 7 Ultimate 64-bit on perl v5.22.0

cpanm (App::cpanminus) 1.7036 on perl 5.022000 built for MSWin32-x64-multi-thread
Work directory is C:\Users\azawawi/.cpanm/work/1435228423.6632
You have make C:\Strawberry\c\bin\dmake.exe
You have LWP 6.13
Falling back to Archive::Tar 2.04
Searching Test::TCP () on cpanmetadb ...
--> Working on Test::TCP
Fetching http://www.cpan.org/authors/id/T/TO/TOKUHIROM/Test-TCP-2.12.tar.gz
-> OK
Unpacking Test-TCP-2.12.tar.gz
Entering Test-TCP-2.12
Checking configure dependencies from META.json
Checking if you have ExtUtils::MakeMaker 6.58 ... Yes (7.04_01)
Configuring Test-TCP-2.12
Running Makefile.PL
Checking if your kit is complete...
Looks good
Generating a dmake-style Makefile
Writing Makefile for Test::TCP
Writing MYMETA.yml and MYMETA.json
-> OK
Checking dependencies from MYMETA.json ...
Checking if you have IO::Socket::IP 0 ... Yes (0.37)
Checking if you have Test::More 0.98 ... Yes (1.001014)
Checking if you have Test::SharedFork 0.29 ... Yes (0.33)
Checking if you have File::Temp 0 ... Yes (0.2304)
Checking if you have Time::HiRes 0 ... Yes (1.9726)
Checking if you have Socket 0 ... Yes (2.020)
Checking if you have IO::Socket::INET 0 ... Yes (1.35)
Building and testing Test-TCP-2.12
cp lib/Test/TCP.pm blib\lib\Test\TCP.pm
cp lib/Net/EmptyPort.pm blib\lib\Net\EmptyPort.pm
cp lib/Test/TCP/CheckPort.pm blib\lib\Test\TCP\CheckPort.pm
"C:\Strawberry\perl\bin\perl.exe" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib\lib', 'blib\arch')" t/*.t
# Test::More: 1.001014
t/00_compile.t ................. ok
cannot open port: ::1:51417 at C:\Users\azawawi\.cpanm\work\1435228423.6632\Test-TCP-2.12\blib\lib/Test/TCP.pm line 54.
    # Child (v6) exited without calling finalize()

#   Failed test 'v6'
#   at C:/Strawberry/perl/lib/Test/Builder.pm line 279.
# Tests were run but no plan was declared and done_testing() was not seen.
# Looks like your test exited with 255 just after 2.
t/01_simple.t .................. 
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 1/2 subtests 
t/02_abrt.t .................... skipped: win32 doesn't support embedded function named dump()
t/03_return_when_sigterm.t ..... ok
t/04_die.t ..................... ok
t/05_sigint.t .................. skipped: this test requires SIGUSR1
t/06_nest.t .................... ok
t/07_optional.t ................ ok
t/08_exit.t .................... ok
t/09_fork.t .................... ok
t/10_oo.t ...................... ok

    #   Failed test 'port is open'
    #   at t/11_net_empty_port.t line 22.
    # Looks like you failed 1 test of 4.

#   Failed test 'v6'
#   at t/11_net_empty_port.t line 37.
# Looks like you failed 1 test of 4.
t/11_net_empty_port.t .......... 
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/4 subtests 
t/12_pass_wait_port_options.t .. ok
t/13_undef_port.t .............. ok

Test Summary Report
-------------------
t/01_simple.t                (Wstat: 65280 Tests: 2 Failed: 1)
  Failed test:  2
  Non-zero exit status: 255
  Parse errors: No plan found in TAP output
t/11_net_empty_port.t        (Wstat: 256 Tests: 4 Failed: 1)
  Failed test:  4
  Non-zero exit status: 1
Files=14, Tests=117, 86 wallclock secs ( 0.11 usr +  0.00 sys =  0.11 CPU)
Result: FAIL
Failed 2/14 test programs. 2/117 subtests failed.
dmake.exe:  Error code 255, while making 'test_dynamic'
-> FAIL Installing Test::TCP failed. See C:\Users\azawawi\.cpanm\work\1435228423.6632\build.log for details. Retry with --force to force install it.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.