table of contents
Test::UNIXSock(3pm) | User Contributed Perl Documentation | Test::UNIXSock(3pm) |
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>.
2022-10-16 | perl v5.34.0 |