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},# optionalpath => "/tmp/mytest.sock", # if not specified, create a sock in tmpdirmax_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_waitseconds 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 <[email protected]>
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 <[email protected]>.