Provided by: libtest-unixsock-perl_0.4-2_all
NAME
Test::UNIXSock - testing UNIX domain socket program
SYNOPSIS
use Test::UNIXSock; my $server = Test::UNIXSock->new( code => sub { my $path = shift; ... }, ); my $client = MyClient->new( sock => $server->path ); undef $server; # kill child process on DESTROY Using memcached: use Test::UNIXSock; my $memcached = Test::UNIXSock->new( code => sub { my $path = shift; exec $bin, '-s' => $path; die "cannot execute $bin: $!"; }, ); my $memd = Cache::Memcached->new({servers => [$memcached->path]}); ... And functional interface is available: use Test::UNIXSock; test_unix_sock( client => sub { my ($path, $server_pid) = @_; # send request to the server }, server => sub { my $path = shift; # run server }, );
DESCRIPTION
Test::UNIXSock is a test utility to test UNIX domain socket server programs. This is based on Test::TCP.
METHODS
test_unixsock Functional interface. test_unixsock( client => sub { my $path = shift; # send request to the server }, server => sub { my $path = shift; # run server }, # optional path => "/tmp/mytest.sock", # if not specified, create a sock in tmpdir max_wait => 3, # seconds ); wait_unix_sock wait_unix_sock({ path => $path }); Waits for a particular path is available for connect.
Object Oriented interface interface
my $server = Test::UNIXSock->new(%args); Create new instance of Test::UNIXSock. 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->($pid)". 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 $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
See also Test::TCP FAQ section.
AUTHOR
Fujiwara Shunichiro <fujiwara.shunichiro@gmail.com>
SEE ALSO
Test::TCP
LICENSE
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. This module is based on Test::TCP. copyright (c) 2013 by Tokuhiro Matsuno <tokuhirom@gmail.com>.