NAME

Test::TCP::Multi - Test Using Multiple Servers/Clients

SYNOPSIS

use Test::MultiTCP;

test_multi_tcp(
    server1 => sub {
        my ($port, $data_hash) = @_;
    },
    server2 => sub { ... },
    server3 => sub { ... },
    client1 => sub {
        my ($data_hash) = @_;
    },
    client2 => sub { ... },
    client3 => sub { ... }
);

WARNING

This code is mostly a copy of Test::TCP, but the portions that I wrote are eh... a HACK. Don't use unless you can debug things yourself!

DESCRIPTION

Test::TCP allows you to run client/server tests. With Test::TCP::Multi, you can have multiple servers and clients.

SERVERS

Any key that starts with the string "server" (case-insensitive) is considered to be a server. Test::TCP::Multi will attempt to find an open port for any of these entries.

Server callbacks should expect two arguments, the port number you should use, and a hashref containing pids of each entry, and a port number (if the entry is a server)

UNLIKE Test::TCP, YOU HAVE TO KILL THE SERVERS YOURSELF! This is because there's no way for Test::TCP::Multi to know if you're really done with the servers or not. Simply do something like

kill_proc($data_hash->{ your_server_name }->{pid});

CLIENTS

Any key that starts with the string "client" (case-insensitive) is considered to be a client.

Server callbacks should expect two arguments, the port number you should use, and a hashref containing pids of each entry, and a port number (if the entry is a server)

AUTHOR

The important bits by Tokuhiro Matsuno (Test::TCP)

The hacked up stuff by Daisuke Maki <daisuke@endeworks.jp>

LICENSE

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

See http://www.perl.com/perl/misc/Artistic.html